EduTechTeam's picture
Update app.py
533f7a7 verified
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)