Spaces:
Sleeping
Sleeping
import openai | |
import gradio as gr | |
import os | |
import time | |
client = openai.OpenAI(api_key=os.environ['OPENAI_API_KEY']) | |
# 建立「男友」聊天機器人函數 | |
def boyfriend_chatbot(user_input, history): | |
history = history or [] | |
# 加入系統提示,設定角色 | |
messages = [{ | |
"role": "system", | |
"content": "你是一個溫柔、貼心的男友,總是關心對方的感受,給予支持和鼓勵,用輕鬆、暖心的語氣回應。" | |
}] | |
# history 是一串角色訊息(dict),可直接 append | |
for msg in history: | |
if msg.get("role") in ["user", "assistant"]: | |
messages.append(msg) | |
# 加入當前使用者訊息 | |
messages.append({"role": "user", "content": user_input}) | |
try: | |
completion = client.chat.completions.create( | |
model="gpt-4o-mini", | |
messages=messages, | |
temperature=0.7 | |
) | |
response = completion.choices[0].message.content.strip() | |
except Exception as e: | |
yield f"❌ 發生錯誤(API 回應失敗):{str(e)}" | |
return | |
try: | |
for i in range(1, len(response) + 1): | |
yield response[:i] | |
time.sleep(0.03) | |
except Exception as e: | |
yield f"⚠️ 顯示訊息時發生錯誤:{str(e)}" | |
# 建立 Gradio 介面 | |
chat_interface = gr.ChatInterface( | |
boyfriend_chatbot, | |
chatbot=gr.Chatbot(type="messages"), | |
type="messages", | |
title="💕 貼心男友聊天機器人 💕" | |
) | |
# 啟動介面 | |
chat_interface.launch(share=True) | |