Spaces:
Sleeping
Sleeping
File size: 1,549 Bytes
bf4e6ef ded59e5 bf4e6ef 85b071b bf4e6ef ded59e5 bf4e6ef e92b8de 533f7a7 b7bff66 e92b8de 533f7a7 bf4e6ef 533f7a7 ded59e5 e92b8de 535ef75 ded59e5 b7bff66 535ef75 e92b8de 535ef75 b7bff66 e92b8de ded59e5 b7bff66 ded59e5 533f7a7 b7bff66 ded59e5 |
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 |
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)
|