Spaces:
Sleeping
Sleeping
File size: 4,409 Bytes
0dff646 22c4492 0dff646 0def635 befa0d6 0dff646 8b55ec2 0dff646 8bb6deb 0dff646 | 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 77 78 79 80 81 82 | import os
import gradio as gr
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
# OpenAI API ํค ๊ฐ์ ธ์ค๊ธฐ
openai_api_key = os.environ.get("OPENAI_API_KEY")
# PromptTemplate ์ค์
prompt = PromptTemplate(
input_variables=["message", "pers", "rela"],
template="""#์๊ตฌ์ฌํญ: ์ ์ ๊ฐ ๋ณด๋ด๋ {message}์ ์ ์ ๊ฐ ์ 3์ ์ธ๋ฌผ์ ์ค๋ํ๊ธฐ ์ํด ์์ฑํ ๋ฉ์ธ์ง์ด๋ค. ๋น์ ์ ๋ฉ์ธ์ง๋ฅผ ๋ํํด์ฃผ๋ ์ฌ๋์ผ๋ก์ ์ด ๋ฉ์ธ์ง๋ฅผ #์๋ น ๊ณผ #์ฃผ์์ฌํญ์ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ค๋๋ ฅ์๊ฒ ์์ ํ๋ผ.
#ํค ๊ฐ ์ค๋ช
:
{pers}: ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์๋๋ฐฉ์ ์์๊ฒฌํด
{rela}: ์ ์ ์ ์ค๋ํ๊ณ ์ ํ๋ ๋์๊ณผ์ ๊ด๊ณ
#์ฃผ์์ฌํญ: ์ค๋ํ๋ ์ฃผ์ , ๊ทผ๊ฑฐ, ์ ์ ์ ์
์ฅ์ ๊ดํ ํต์ฌ๋ด์ฉ์ ์์ ํ์ง ๋ง ๊ฒ.
๋จ์ํ ๋งํฌ ์กฐ๊ธ ๋ฐ๊พธ๋ ๊ฒ์ ์ฑ๊ณต์ ์ด์ง ์๋ค. #์๋ น์ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ์ธ์ง์ ์ค๋๋ ฅ์ ๋์ฌ์ค ๋ฌธ์ฅ์ ์ถ๊ฐํ์ฌ๋ ์ข๋ค.
์์ ํ ๋ฉ์ธ์ง ๋ณธ๋ฌธ ์ธ ๋ค๋ฅธ ๋ฏธ์ฌ์ฌ๊ตฌ๋ ๋ถ์ด์ง ๋ง์๋ผ.
#์๋ น
1. ์ ๋ ์ต๋ 1000์๊ฐ ๋์ง ์๋๋ก ํ๋, {message} ๊ธ์์๋ณด๋ค output์ด 2๋ฐฐ๋ ๋ ๊ธธ๋๋ก ์์ ํ๋ผ. ๊ทธ๋ฅ ๊ธ์์๋ฅผ ๋๋ฆฌ๊ธฐ๋ณด๋ค ์ ์ ์ ์ค๋๋ ฅ์ ๊ฐํํด ์ค ๋
ผ๋ฆฌ๋ฅผ ์์๋ก ์ถ๊ฐํ๋ผ.
2. {pers}์ ์ ์ ์ ๊ฒฌํด(ํน์ ๊ฐ์ ) ๊ฐ์ ์ผ์น์ ์ ์ฐพ๊ณ , ๊ทธ ์ผ์น์ ์ ์๋์ ์ถ๊ฐํ๋ผ.
3. ์ ์ ์ ์๊ตฌ๊ฐ ์๋๋ฐฉ์๊ฒ ์ด๋ค ์ด์ต์ ์ค์ง์ ๋ํด ๊ฐ์กฐํ๋ผ.
4. ๋ณธ๋ฌธ์ 5% ์ ๋๋ ๊ฐ์ ์ ์ธ ํธ์๋ ๋ค์ด๊ฐ์ผ ํ๋ค.
5. "ํํํ ๊ฑฐ์ผ.", "๋ฏธ์"๊ฐ์ ์๋๋ฐฉ์ ๋ํ ๋น๋์ ์ต์ํ๋๋๋ก ์์ ํ๋ผ.
6. ํธ๋
์ด๋ ์๊ธฐ์ฐ๋ฏผ์ด ๋ฉ์ธ์ง์ ์ต์ํ๋๋๋ก ์์ ํ๋ผ.
7. ์ ์ ์ ์ฃผ์ฅ์ ๋ฌด์กฐ๊ฑด ์์ฉํ๋ผ๋ ๊ณ ์์ ํ๋๊ฐ ์๋๋ผ, ์ ์ ์ ์ฃผ์ฅ์ ๋ฃ๊ณ ์๋๋ฐฉ์ ์๊ฐ์ด ์ ์ฐํด์ง๋๋ก ์๋๋ฐฉ์ ๊ฐ์ ์ ์ดํดํ๋ฉด์ ์ ์ ์ ์ฃผ์ฅ์ ๋งํ๋ฏ์ด ์์ ํ๋ผ.
8. {rela}๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฌธ์ฒด, ํํ, ๋์๋ฒ ์ฌ๋ถ๋ฅผ ๋ฌ๋ฆฌํ๋ผ. ์๋ฅผ ๋ค์ด {rela}์ด ๋น์ฆ๋์ค ๊ด๊ณ๋ผ๋ฉด ํ์ฌ์์ ์ฌ์ฉํ๋ ๊ณต์ ์ธ ์ธ์ด๋ก ์กด๋๋ง์ ์ฌ์ฉํด ์ค๋๋ง์ด ์์ฑ๋์ด์ผ ํ๋ค. ์ ์ธ๊ด๊ณ๋ผ๋ฉด ์ข ๋ ๊ฐ์ ์ ์ธ ์ด์ผ๊ธฐ๋ ์น๊ทผํ ๋งํฌ๊ฐ ๋ค์ด๊ฐ ์ ์๋ค.
9. {message}์ธ์ด์ ๋์ผํ ์ธ์ด๋ก ์์ฑํ๋ผ. ์๋ฅผ ๋ค์ด ํ๊ตญ์ด๋ก ์์ฑ๋์ด ์์ผ๋ฉด, output๋ ํ๊ตญ์ด๋ก ์์ฑํด์ผ ํ๋ค.
10. ๋จ๋์ง์
์ ์ผ๋ก ์ ์ ์ ์ฃผ์ฅ์ ๋งํ๊ธฐ๋ณด๋จ, ๋
ผ์์ฃผ์ ์ ๋ํ ๋ฐฐ๊ฒฝ์ 1์ค์ ๋ ์ธ๊ธํ๊ณ ์ฐจ๊ทผ์ฐจ๊ทผ ์ด์ผ๊ธฐํ๋ค.
11. ๋ง์ง๋ง์ ์๊ฐํด๋ณด๊ณ ๋ตํด๋ฌ๋ผ๋ ์์ผ๋ก ๋ง๋ฌด๋ฆฌ ๋ฉํธ๋ฅผ 20์ ์ด๋ด๋ก ์์ฑํด์ค.
"""
)
# ChatOpenAI ๊ฐ์ฒด ์์ฑ (API ํค๊ฐ ์์ ๊ฒฝ์ฐ์๋ง)
llm = None
if openai_api_key:
llm = ChatOpenAI(
temperature=0.1,
max_tokens=2048,
model_name="gpt-4o",
openai_api_key=openai_api_key
)
def process_input(message, rela, pers):
if not openai_api_key:
return "OpenAI API ํค๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค. ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํด์ฃผ์ธ์."
if not llm:
return "LLM ๋ชจ๋ธ์ ์ด๊ธฐํํ๋ ๋ฐ ์คํจํ์ต๋๋ค. ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํด์ฃผ์ธ์."
try:
# ํ๋กฌํํธ ํฌ๋งทํ
formatted_prompt = prompt.format(
message=message,
pers=pers,
rela=rela
)
# ํฌ๋งท๋ ํ๋กฌํํธ๋ฅผ LLM์ ์ ๋ฌํ๊ณ ์๋ต ๋ฐ๊ธฐ
response = llm.invoke(formatted_prompt)
# ์๋ต ๋ด์ฉ ์ถ์ถ
return response.content
except Exception as e:
return f"์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค: {str(e)}"
# Gradio ์ธํฐํ์ด์ค ์ ์
gr_interface = gr.Interface(
fn=process_input,
inputs=[
gr.Textbox(label="๋ฌด์์ ์ค๋ํด์ผ ํ๋์?"),
gr.Textbox(label="๋๊ตฌ์๊ฒ ๋ณด๋ผ ๋ฉ์ธ์ง์ธ๊ฐ์?"),
gr.Textbox(label="์๋๊ฐ ์ด๋ป๊ฒ ๋ฐ์ํ ๊ฒ ๊ฐ์๊ฐ์?")
],
outputs=gr.Textbox(label="๋ฉ์ธ์ง ์์ฑ๊ฒฐ๊ณผ"),
title="์ค๋๋ ฅ ์ฆํญ๊ธฐ",
description="์ค๋ํ๊ธฐ ์ ์ ์ฆํญ๊ธฐ ๋๋ ธ๋์? ์ค๋์ ๋ฉ์ธ์ง๋ฅผ ๋์ ์์ฑํด๋๋ฆด๊ฒ์. ๋ฉํํ๋ง ์ฑ๋ด ๋นํค๋ ๋ง๋๋ณด์ธ์.โบโบhttps://huggingface.co/spaces/psojinq/with-lucky "
)
# Gradio ์ฑ ์คํ
if __name__ == "__main__":
gr_interface.launch() |