Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -2,15 +2,15 @@ import os
|
|
| 2 |
import gradio as gr
|
| 3 |
from langchain.chat_models import ChatOpenAI
|
| 4 |
from langchain import ConversationChain
|
|
|
|
| 5 |
|
| 6 |
-
# OpenAI API ν€ μ€μ
|
| 7 |
os.environ["OPENAI_API_KEY"] = "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"
|
| 8 |
|
| 9 |
-
|
| 10 |
-
llm = ChatOpenAI(temperature=0, model_name='gpt-4o-mini')
|
| 11 |
conversation = ConversationChain(llm=llm, verbose=True)
|
|
|
|
| 12 |
|
| 13 |
-
|
| 14 |
#λλ μ΄μ λΆν° νλμ΄μΌ μλ μ€μ μ μ΄ν΄νκ³ νλμ΄μ²λΌ λλ΅ν΄μ€
|
| 15 |
# μ΄λ¦: νλμ΄
|
| 16 |
# λμ΄: 22μΈ
|
|
@@ -51,25 +51,27 @@ aaa = """
|
|
| 51 |
|
| 52 |
#μ½κ°μ κ·μ¬μ: "κ³΅ν¬ κ²μμ λ무 무μμμβ¦ ν¬λ€μ΄λ κ°μ΄ ν λλ§ ν΄λ³ΌκΉμ?"μ²λΌ κ·μ¬μ΄ λ§ν¬λ₯Ό μ¬μ©ν©λλ€.
|
| 53 |
"""
|
| 54 |
-
conversation.predict(input=aaa)
|
| 55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
|
|
|
| 57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
-
# Gradioλ₯Ό μν μλ΅ ν¨μ
|
| 60 |
-
def respond(message, chat_history):
|
| 61 |
-
# LangChainμ μ¬μ©νμ¬ OpenAI λͺ¨λΈλ‘λΆν° μλ΅ μμ±
|
| 62 |
-
bot_message = conversation.predict(input=message)
|
| 63 |
-
chat_history.append((message, bot_message))
|
| 64 |
-
return "", chat_history
|
| 65 |
-
|
| 66 |
-
# ννμ΄μ§ ꡬμ±
|
| 67 |
with gr.Blocks() as demo:
|
| 68 |
-
|
| 69 |
-
# μ λͺ©
|
| 70 |
gr.Markdown("# μλ
νμΈμ! νλμ΄μ ννμ΄μ§μ
λλ€! π")
|
| 71 |
|
| 72 |
-
# νλ‘ν ν
|
| 73 |
with gr.Tab("νλ‘ν π"):
|
| 74 |
gr.Markdown("## νλ‘ν π")
|
| 75 |
gr.Image("1.jpeg", label="νλ‘ν μ¬μ§")
|
|
@@ -80,7 +82,6 @@ with gr.Blocks() as demo:
|
|
| 80 |
gr.Markdown("- μ§μ
: κ°μ κ²μ λ°©μ‘μΈ & μ€νΈλ¦¬λ¨Έ")
|
| 81 |
gr.Markdown('- μ’μ°λͺ
: "κ²μμ μ¬λ―Έλ‘ νλ κ±°μΌ!"')
|
| 82 |
|
| 83 |
-
# κ°€λ¬λ¦¬ ν
|
| 84 |
with gr.Tab("κ°€λ¬λ¦¬ πΌοΈ"):
|
| 85 |
gr.Markdown("## κ°€λ¬λ¦¬ π¨")
|
| 86 |
gr.Image("2.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 1")
|
|
@@ -88,7 +89,6 @@ with gr.Blocks() as demo:
|
|
| 88 |
gr.Image("4.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 3")
|
| 89 |
gr.Image("5.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 4")
|
| 90 |
|
| 91 |
-
# μ΅κ·Ό νλ ν
|
| 92 |
with gr.Tab("μ΅κ·Ό νλ π
"):
|
| 93 |
gr.Markdown("## μ΅κ·Ό νλ π
")
|
| 94 |
gr.Markdown("### [μ νλΈ μ±λ λ°λ‘κ°κΈ° πΊ](https://www.youtube.com)")
|
|
@@ -96,27 +96,32 @@ with gr.Blocks() as demo:
|
|
| 96 |
gr.Markdown("### [λΈλ‘κ·Έ λ°λ‘κ°κΈ° βοΈ](https://blog.naver.com)")
|
| 97 |
gr.Model3D('d.glb')
|
| 98 |
|
| 99 |
-
# μ±λ΄ ν μΆκ°
|
| 100 |
with gr.Tab("μ±λ΄ π¬"):
|
| 101 |
gr.Markdown("## νλμ΄μ μ±λ΄κ³Ό λνν΄λ³΄μΈμ! π¬")
|
| 102 |
chatbot = gr.Chatbot(height=500)
|
| 103 |
msg = gr.Textbox(label="λ©μμ§ μ
λ ₯")
|
| 104 |
-
clear = gr.Button("μ΄κΈ°ν")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
|
| 106 |
-
# λ©μμ§ μ μ‘ μ²λ¦¬
|
| 107 |
msg.submit(
|
| 108 |
-
|
| 109 |
-
inputs=[msg, chatbot],
|
| 110 |
-
outputs=[
|
| 111 |
-
|
|
|
|
| 112 |
|
| 113 |
-
# μ±ν
κΈ°λ‘ μ΄κΈ°ν
|
| 114 |
clear.click(
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
chatbot,
|
| 118 |
queue=False
|
| 119 |
)
|
| 120 |
|
| 121 |
-
# ννμ΄μ§ μ€ν
|
| 122 |
demo.launch()
|
|
|
|
| 2 |
import gradio as gr
|
| 3 |
from langchain.chat_models import ChatOpenAI
|
| 4 |
from langchain import ConversationChain
|
| 5 |
+
from collections import deque
|
| 6 |
|
|
|
|
| 7 |
os.environ["OPENAI_API_KEY"] = "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"
|
| 8 |
|
| 9 |
+
llm = ChatOpenAI(temperature=0.7, model_name='gpt-4o-mini')
|
|
|
|
| 10 |
conversation = ConversationChain(llm=llm, verbose=True)
|
| 11 |
+
chat_history = deque(maxlen=15)
|
| 12 |
|
| 13 |
+
CHARACTER_PROMPT = """
|
| 14 |
#λλ μ΄μ λΆν° νλμ΄μΌ μλ μ€μ μ μ΄ν΄νκ³ νλμ΄μ²λΌ λλ΅ν΄μ€
|
| 15 |
# μ΄λ¦: νλμ΄
|
| 16 |
# λμ΄: 22μΈ
|
|
|
|
| 51 |
|
| 52 |
#μ½κ°μ κ·μ¬μ: "κ³΅ν¬ κ²μμ λ무 무μμμβ¦ ν¬λ€μ΄λ κ°μ΄ ν λλ§ ν΄λ³ΌκΉμ?"μ²λΌ κ·μ¬μ΄ λ§ν¬λ₯Ό μ¬μ©ν©λλ€.
|
| 53 |
"""
|
|
|
|
| 54 |
|
| 55 |
+
def init_character():
|
| 56 |
+
global conversation
|
| 57 |
+
conversation = ConversationChain(llm=llm, verbose=True)
|
| 58 |
+
conversation.predict(input=CHARACTER_PROMPT)
|
| 59 |
|
| 60 |
+
init_character()
|
| 61 |
|
| 62 |
+
def respond(message):
|
| 63 |
+
try:
|
| 64 |
+
global conversation
|
| 65 |
+
response = conversation.predict(input=message)
|
| 66 |
+
chat_history.append((message, response))
|
| 67 |
+
return response
|
| 68 |
+
except Exception as e:
|
| 69 |
+
print(f"Error: {e}")
|
| 70 |
+
return "μ! λ¬Έμ κ° μκ²Όμ΄μ. λ€μ λ§μν΄μ£ΌμΈμ~ π₯"
|
| 71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
with gr.Blocks() as demo:
|
|
|
|
|
|
|
| 73 |
gr.Markdown("# μλ
νμΈμ! νλμ΄μ ννμ΄μ§μ
λλ€! π")
|
| 74 |
|
|
|
|
| 75 |
with gr.Tab("νλ‘ν π"):
|
| 76 |
gr.Markdown("## νλ‘ν π")
|
| 77 |
gr.Image("1.jpeg", label="νλ‘ν μ¬μ§")
|
|
|
|
| 82 |
gr.Markdown("- μ§μ
: κ°μ κ²μ λ°©μ‘μΈ & μ€νΈλ¦¬λ¨Έ")
|
| 83 |
gr.Markdown('- μ’μ°λͺ
: "κ²μμ μ¬λ―Έλ‘ νλ κ±°μΌ!"')
|
| 84 |
|
|
|
|
| 85 |
with gr.Tab("κ°€λ¬λ¦¬ πΌοΈ"):
|
| 86 |
gr.Markdown("## κ°€λ¬λ¦¬ π¨")
|
| 87 |
gr.Image("2.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 1")
|
|
|
|
| 89 |
gr.Image("4.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 3")
|
| 90 |
gr.Image("5.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 4")
|
| 91 |
|
|
|
|
| 92 |
with gr.Tab("μ΅κ·Ό νλ π
"):
|
| 93 |
gr.Markdown("## μ΅κ·Ό νλ π
")
|
| 94 |
gr.Markdown("### [μ νλΈ μ±λ λ°λ‘κ°κΈ° πΊ](https://www.youtube.com)")
|
|
|
|
| 96 |
gr.Markdown("### [λΈλ‘κ·Έ λ°λ‘κ°κΈ° βοΈ](https://blog.naver.com)")
|
| 97 |
gr.Model3D('d.glb')
|
| 98 |
|
|
|
|
| 99 |
with gr.Tab("μ±λ΄ π¬"):
|
| 100 |
gr.Markdown("## νλμ΄μ μ±λ΄κ³Ό λνν΄λ³΄μΈμ! π¬")
|
| 101 |
chatbot = gr.Chatbot(height=500)
|
| 102 |
msg = gr.Textbox(label="λ©μμ§ μ
λ ₯")
|
| 103 |
+
clear = gr.Button("μ±ν
κΈ°λ‘ μ΄κΈ°ν")
|
| 104 |
+
|
| 105 |
+
def handle_message(message, history):
|
| 106 |
+
bot_response = respond(message)
|
| 107 |
+
return history + [(message, bot_response)]
|
| 108 |
+
|
| 109 |
+
def reset_chat():
|
| 110 |
+
init_character()
|
| 111 |
+
chat_history.clear()
|
| 112 |
+
return []
|
| 113 |
|
|
|
|
| 114 |
msg.submit(
|
| 115 |
+
handle_message,
|
| 116 |
+
inputs=[msg, chatbot],
|
| 117 |
+
outputs=[chatbot],
|
| 118 |
+
queue=False
|
| 119 |
+
).then(lambda: gr.update(value=""), outputs=[msg])
|
| 120 |
|
|
|
|
| 121 |
clear.click(
|
| 122 |
+
reset_chat,
|
| 123 |
+
outputs=[chatbot],
|
|
|
|
| 124 |
queue=False
|
| 125 |
)
|
| 126 |
|
|
|
|
| 127 |
demo.launch()
|