File size: 2,690 Bytes
b6fb650 69ac6f8 9e67c31 b6fb650 9e67c31 b6fb650 089bfdd 4e06a3b 9e67c31 b6fb650 05565cb 9e67c31 05565cb 9e67c31 05565cb 69ac6f8 05565cb 69ac6f8 b6fb650 05565cb b6fb650 05565cb b6fb650 05565cb b6fb650 05565cb b6fb650 089bfdd 05565cb b6fb650 9e67c31 b6fb650 69ac6f8 b6fb650 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
from huggingface_hub import InferenceClient
import json
import os
# Hugging Face ๋ชจ๋ธ ์ค์
MODEL_ID = "skt/kogpt2-base-v2" # ํ๊ตญ์ด ๋ชจ๋ธ ID
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๋ ๊น์ ํต์ฐฐ์ ์ถ๊ฐํ๋ผ."
# Hugging Face API ํธ์ถ
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)}"}
# Hugging Face ์คํ ํ๊ฒฝ์์์ ์์ฒญ ์ฒ๋ฆฌ
if __name__ == "__main__":
# Hugging Face๋ `request` ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฏ๋ก, ์๋์ ๊ฐ์ด ๋์ฒด
# ์ค์ ํ๊ฒฝ์์๋ `request` ๋์ ํ๊ฒฝ ๋ณ์๋ ์
๋ ฅ๊ฐ์ ์ฌ์ฉํด์ผ ํจ
import sys
if len(sys.argv) < 2:
print("Usage: python app.py <request_data>")
sys.exit(1)
# ์์ฒญ ๋ฐ์ดํฐ ํ์ฑ (์: {"prompt_key": "yin_sae_shen"})
request_data = json.loads(sys.argv[1])
result = handle_request(request_data)
print(json.dumps(result))
|