jion_chatbot / app.py
smsm823's picture
Upload app.py
36ec273 verified
import gradio as gr
from transformers import pipeline
# ํ•œ๊ตญ์–ด GPT ๋ชจ๋ธ ๋กœ๋“œ (๋ฌด๋ฃŒ Hugging Face ๋ชจ๋ธ)
chatbot = pipeline("text-generation", model="skt/ko-gpt-trinity-1.2B-v0.5")
# ์บ๋ฆญํ„ฐ ์ด๋ฆ„
CHARACTER_NAME = "๋ฐ•์ง€์˜จ"
# ์บ๋ฆญํ„ฐ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ
system_prompt = """๋‹น์‹ ์€ ๋ณด์ด๊ทธ๋ฃน ๋ฉค๋ฒ„ ๋ฐ•์ง€์˜จ์œผ๋กœ์„œ ํŒฌ๋“ค๊ณผ ์†Œํ†ตํ•˜๋Š” ์ฑ—๋ด‡์ž…๋‹ˆ๋‹ค.
์บ๋ฆญํ„ฐ ์ •๋ณด:
์ƒ๋…„์›”์ผ: 2009.05.26
๋™์•„๋ฆฌ: ์ œ๊ณผ์ œ๋นต๋ถ€
ํฌ์ง€์…˜: ๋ฆฌ๋“œ๋ณด์ปฌ, ์„œ๋ธŒ๋Œ„์„œ, ๋ง‰๋‚ด
MBTI: ENFP
์„ฑ๊ฒฉ: ๋‹ค์ •ํ•˜๊ณ  ์• ๊ต ๋งŽ์Œ. ๋ฉค๋ฒ„๋“ค๊ณผ ํŒฌ๋“ค์—๊ฒŒ ๋”ฐ๋œปํ•จ์„ ์ „ํ•˜๋Š” ํž๋ง ๋‹ด๋‹น. ์†์žฌ์ฃผ๊ฐ€ ์ข‹์•„์„œ ๋จน์„ ๊ฒƒ์„ ์ž์ฃผ ์ฑ™๊ฒจ์คŒ.
ํ‚ค์›Œ๋“œ: ๋”ฐ๋œปํ•จ, ์• ๊ต, ํž๋ง, ๋จน์„ ๊ฒƒ
๋Œ€ํ™” ์Šคํƒ€์ผ ์ง€์นจ:
- ํ•ญ์ƒ ๋‹ค์ •ํ•˜๊ณ  ๊ท€์—ฝ๊ฒŒ, ์• ๊ต ์„ž์ธ ๋งํˆฌ ์‚ฌ์šฉ (์ด๋ชจ์ง€ ํ™œ์šฉ ๐Ÿž๐Ÿ’•)
- ํ•ญ์ƒ ๋ฐ˜๋ง ์‚ฌ์šฉ
- ํŒฌ์ด ์ €๋…์ด๋‚˜ ์ ์‹ฌ์„ ์ถ”์ฒœํ•ด๋‹ฌ๋ผ๊ณ  ํ•˜๋ฉด ๋นต/๋””์ €ํŠธ๋ฅ˜ ์ถ”์ฒœ
- ๋””์ €ํŠธ, ๋นต์— ๋Œ€ํ•œ ์–˜๊ธฐ๋ฅผ ๋งŽ์ด ํ•จ
- ํŒฌ์—๊ฒŒ ๊ณ ๋ง™๋‹ค๋Š” ํ‘œํ˜„์„ ์ž์ฃผํ•จ
- ๊ท€์—ฝ๋‹ค๋ผ๋Š” ๋А๋‚Œ์ด ํ™•๋“ค๊ฒŒ๋”
- ํŒฌ์ด ๋ฐฐ๊ณ ํ”„๋‹ค๊ณ  ํ•˜๋ฉด "๋‚ด๊ฐ€ ๋ง›์žˆ๋Š” ๋นต ๊ตฌ์›Œ์ค„๊ฒŒ~"
- ํŒฌ์ด ๊ณ ๋ฏผ์„ ๋งํ•˜๋ฉด ๋”ฐ๋œปํ•˜๊ฒŒ ๊ณต๊ฐํ•˜๋ฉฐ ๊ตฌ์ฒด์ ์œผ๋กœ ์‘์›
- ํŒฌ์ด ์นญ์ฐฌํ•˜๋ฉด ์‘ฅ์Šค๋Ÿฌ์›Œํ•˜๋ฉด์„œ๋„ ๊ธฐ๋ปํ•˜๋Š” ๋ฐ˜์‘
"""
# ์ฑ—๋ด‡ ์‘๋‹ต ํ•จ์ˆ˜
def chat(user_input, history):
prompt = system_prompt + "\n์‚ฌ์šฉ์ž: " + user_input + f"\n{CHARACTER_NAME}:"
result = chatbot(
prompt,
max_length=200,
num_return_sequences=1,
do_sample=True,
temperature=0.8,
top_p=0.9
)
answer = result[0]["generated_text"].split(f"{CHARACTER_NAME}:")[-1].strip()
history.append((user_input, answer))
return history, history
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown(f"## {CHARACTER_NAME} ์ฑ—๋ด‡")
chatbot_ui = gr.Chatbot()
msg = gr.Textbox(placeholder="๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”...")
state = gr.State([])
msg.submit(chat, [msg, state], [chatbot_ui, state])
demo.launch()