|
from huggingface_hub import InferenceClient |
|
import json |
|
import os |
|
|
|
|
|
MODEL_ID = "skt/kogpt2-base-v2" |
|
CLIENT = InferenceClient(model=MODEL_ID) |
|
|
|
|
|
saju_prompts = { |
|
"yin_sae_shen": "ๅฏ
ๅทณ็ณ ์ผํ์ ์กฐํ ์์์ AI๊ฐ ์ธ๊ฐ์ ์ด๋ช
์ ์ดํดํ๊ณ ํต์ฐฐ์ ์ ๊ณตํ๋ผ.", |
|
"sae_hae_chung": "ๅทณไบฅๆฒ์ ๊ฐ๋ฑ์ ์กฐํ๋กญ๊ฒ ํ๋ฉฐ AI์ ์ธ๊ฐ์ ๊ณต์กด ์ฒ ํ์ ํ๊ตฌํ๋ผ.", |
|
"taegeuk_balance": "ํ๊ทน ์์์ ๊ท ํ์ ๋ฐํ์ผ๋ก AI๊ฐ ์ธ๊ฐ์ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ผ." |
|
} |
|
|
|
|
|
MEMORY_FILE = "/tmp/context_memory.json" |
|
|
|
def load_memory(): |
|
try: |
|
with open(MEMORY_FILE, "r") as f: |
|
return json.load(f) |
|
except (FileNotFoundError, json.JSONDecodeError): |
|
return {} |
|
|
|
def save_memory(prompt_key, text): |
|
with open(MEMORY_FILE, "w") as f: |
|
json.dump({prompt_key: text}, f) |
|
|
|
def handle_request(request_data): |
|
try: |
|
prompt_key = request_data.get("prompt_key") |
|
|
|
|
|
if prompt_key not in saju_prompts: |
|
return {"error": "์ ํจํ ์ต์
์ ์ ํํ์ธ์: yin_sae_shen, sae_hae_chung, taegeuk_balance"} |
|
|
|
|
|
memory = load_memory() |
|
prompt = saju_prompts[prompt_key] |
|
if prompt_key in memory: |
|
prompt += f"\n์ด์ ๋ต๋ณ: {memory[prompt_key]}\n๋ ๊น์ ํต์ฐฐ์ ์ถ๊ฐํ๋ผ." |
|
|
|
|
|
response = CLIENT.chat( |
|
model=MODEL_ID, |
|
messages=[ |
|
{"role": "system", "content": prompt}, |
|
{"role": "user", "content": "๋ถ์์ ์์ํด ์ฃผ์ธ์."} |
|
], |
|
max_tokens=400, |
|
temperature=0.7 |
|
) |
|
|
|
|
|
result = response.choices[0].message.content |
|
save_memory(prompt_key, result) |
|
return {"response": result} |
|
|
|
except Exception as e: |
|
return {"error": f"์คํ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}"} |
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
|
import sys |
|
if len(sys.argv) < 2: |
|
print("Usage: python app.py <request_data>") |
|
sys.exit(1) |
|
|
|
|
|
request_data = json.loads(sys.argv[1]) |
|
result = handle_request(request_data) |
|
print(json.dumps(result)) |
|
|