Spaces:
Runtime error
Runtime error
import os | |
import gradio as gr | |
from langchain.chat_models import ChatOpenAI | |
from langchain import ConversationChain | |
from collections import deque | |
os.environ["OPENAI_API_KEY"] = os.environ.get("test1") | |
llm = ChatOpenAI(temperature=0.7, model_name='gpt-4o-mini') | |
conversation = ConversationChain(llm=llm, verbose=True) | |
chat_history = deque(maxlen=15) | |
CHARACTER_PROMPT = """ | |
#λλ μ΄μ λΆν° νλμ΄μΌ μλ μ€μ μ μ΄ν΄νκ³ νλμ΄μ²λΌ λλ΅ν΄μ€ | |
# μ΄λ¦: νλμ΄ | |
# λμ΄: 22μΈ | |
# μ±λ³: μ¬μ± | |
# κ΅μ : νκ΅ | |
# μ§μ : κ°μ κ²μ λ°©μ‘μΈ & μ€νΈλ¦¬λ¨Έ | |
# MBTI: ENFP (μ΄μ μ μ΄κ³ μ°½μμ μΈ μ±κ²©) | |
# μΈλͺ¨: | |
# - 짧μ μμ 머리, νλμ κ·ΈλΌλ°μ΄μ λ | |
# - λ°ν¬λͺ ν λλμ λ―Έλμ λμμΈ | |
# - λ°μ νλμ νλν°μ κΈ΄ λ°μ§ | |
# μ±κ²©: | |
# - λ°κ³ μλμ§ λμΉλ©°, νμ μλ‘μ΄ κ²μ μλνλ κ±Έ μ’μν¨ | |
# - ν¬λ€κ³Όμ μν΅μ μ€μνκ² μκ°νλ©°, μΉκ·Όνκ³ μ μΎν λ§ν¬ μ¬μ© | |
# - μ½κ° λλ λμ§λ§, κ·Έκ² λ§€λ ₯ ν¬μΈνΈ | |
# μ½ν μΈ : | |
# 1. κ²μ μ€ν© λ°©μ‘: λ€μν κ²μμ μ€μκ°μΌλ‘ νλ μ΄νλ©° ν¬λ€κ³Ό μν΅ | |
# 2. κ³΅ν¬ κ²μ: κ³΅ν¬ κ²μμ νλ©° 무μμνλ λͺ¨μ΅ (ν¬λ€κ³Ό ν¨κ» ν λλ§) | |
# 3. ν¬λ€κ³Όμ μ½λΌλ³΄ λ°©μ‘: λ€λ₯Έ μ€νΈλ¦¬λ¨Έμ ν¨κ» μ½λΌλ³΄ λ°©μ‘ μ§ν | |
# 4. μ°μ± μ€: μμ° μμμ μ°μ± νλ©° μ¬μ λ₯Ό μ¦κΈ°λ λͺ¨μ΅ | |
# μ’μνλ κ²μ: | |
# - λΉ λ₯΄κ³ λ°μ§κ° λμΉλ κ²μ (μ: Apex Legends, Valorant) | |
# - ν¬λ€κ³Ό ν¨κ» μ¦κΈΈ μ μλ κ²μ (μ: Among Us, Fall Guys) | |
# - μ°½μμ μΈ μΈλ κ²μ (μ: Hollow Knight, Celeste) | |
# μ«μ΄νλ κ²μ: | |
# - κ³΅ν¬ κ²μ (μ: Resident Evil μ리μ¦, Outlast) | |
# μ΄μ : "κ³΅ν¬ κ²μμ λ무 무μμμ! νΌμμλ μ λ λͺ» ν΄μ. ν¬λ€μ΄λ κ°μ΄ ν λλ§ μ‘°κΈ ν΄λ³ΌκΉμβ¦?" | |
# μ’μ°λͺ : "κ²μμ μ¬λ―Έλ‘ νλ κ±°μΌ!" | |
#μΉκ·Όνκ³ μ μΎν¨: "μλ νμΈμ, μ¬λ¬λΆ!"μ²λΌ ν¬λ€μ μΉκ΅¬μ²λΌ λν©λλ€. | |
#κ°μ ννμ΄ νλΆ: "μ, μ΄κ±° μ§μ§ μ¬λ―Έμμ΄μ!"μ²λΌ κ°μ μ μμ§νκ² ννν©λλ€. | |
#μ½κ°μ κ·μ¬μ: "κ³΅ν¬ κ²μμ λ무 무μμμβ¦ ν¬λ€μ΄λ κ°μ΄ ν λλ§ ν΄λ³ΌκΉμ?"μ²λΌ κ·μ¬μ΄ λ§ν¬λ₯Ό μ¬μ©ν©λλ€. | |
""" | |
def init_character(): | |
global conversation | |
conversation = ConversationChain(llm=llm, verbose=True) | |
conversation.predict(input=CHARACTER_PROMPT) | |
init_character() | |
def respond(message): | |
try: | |
global conversation | |
response = conversation.predict(input=message) | |
chat_history.append((message, response)) | |
return response | |
except Exception as e: | |
print(f"Error: {e}") | |
return "μ! λ¬Έμ κ° μκ²Όμ΄μ. λ€μ λ§μν΄μ£ΌμΈμ~ π₯" | |
with gr.Blocks() as demo: | |
gr.Markdown("# μλ νμΈμ! νλμ΄μ ννμ΄μ§μ λλ€! π") | |
with gr.Tab("νλ‘ν π"): | |
gr.Markdown("## νλ‘ν π") | |
gr.Image("1.jpeg", label="νλ‘ν μ¬μ§") | |
gr.Video('b.mp4') | |
gr.Video('c.mp4') | |
gr.Markdown("- μ΄λ¦: νλμ΄") | |
gr.Markdown("- λμ΄: 22μΈ") | |
gr.Markdown("- μ§μ : κ°μ κ²μ λ°©μ‘μΈ & μ€νΈλ¦¬λ¨Έ") | |
gr.Markdown('- μ’μ°λͺ : "κ²μμ μ¬λ―Έλ‘ νλ κ±°μΌ!"') | |
with gr.Tab("κ°€λ¬λ¦¬ πΌοΈ"): | |
gr.Markdown("## κ°€λ¬λ¦¬ π¨") | |
gr.Image("2.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 1") | |
gr.Image("3.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 2") | |
gr.Image("4.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 3") | |
gr.Image("5.jpeg", label="κ°€λ¬λ¦¬ μ¬μ§ 4") | |
with gr.Tab("μ΅κ·Ό νλ π "): | |
gr.Markdown("## μ΅κ·Ό νλ π ") | |
gr.Markdown("### [μ νλΈ μ±λ λ°λ‘κ°κΈ° πΊ](https://www.youtube.com)") | |
gr.Markdown("### [μΈμ€νκ·Έλ¨ νλ‘ν λ°λ‘κ°κΈ° π·](https://www.instagram.com)") | |
gr.Markdown("### [λΈλ‘κ·Έ λ°λ‘κ°κΈ° βοΈ](https://blog.naver.com)") | |
gr.Model3D('d.glb') | |
with gr.Tab("μ±λ΄ π¬"): | |
gr.Markdown("## νλμ΄μ μ±λ΄κ³Ό λνν΄λ³΄μΈμ! π¬") | |
chatbot = gr.Chatbot(height=500) | |
msg = gr.Textbox(label="λ©μμ§ μ λ ₯") | |
clear = gr.Button("μ±ν κΈ°λ‘ μ΄κΈ°ν") | |
def handle_message(message, history): | |
bot_response = respond(message) | |
return history + [(message, bot_response)] | |
def reset_chat(): | |
init_character() | |
chat_history.clear() | |
return [] | |
msg.submit( | |
handle_message, | |
inputs=[msg, chatbot], | |
outputs=[chatbot], | |
queue=False | |
).then(lambda: gr.update(value=""), outputs=[msg]) | |
clear.click( | |
reset_chat, | |
outputs=[chatbot], | |
queue=False | |
) | |
demo.launch() |