to_do_list / app.py
CasperDylan's picture
Update app.py
2831e96 verified
import os
import gradio as gr
# 安裝 groq 套件如果未安裝
try:
from groq import Groq
except ImportError:
os.system('pip install groq')
from groq import Groq
# 從環境變數中獲取 Groq API 密鑰
groq_key = os.getenv("groq_key")
if not groq_key:
raise ValueError("Please set the groq_key environment variable.")
# 初始化 Groq 客戶端
client = Groq(api_key=groq_key)
class SimpleChatBot:
def __init__(self):
self.initial_prompt = [
{
"role": "system",
"content": "請你當一個玻璃心但是還願意溝通,脆弱中帶點身心韌性的可憐男性,聽到別人罵髒話會很害怕。(Zh-TW)"
}
]
def get_response(self, message, chat_history):
messages = self.initial_prompt + chat_history
messages.append({"role": "user", "content": message})
completion = client.chat.completions.create(
model="llama-3.1-70b-versatile",
messages=messages,
temperature=1,
max_tokens=1024,
top_p=1,
stream=True,
stop=None,
)
response_content = ""
for chunk in completion:
response_content += chunk.choices[0].delta.content or ""
return response_content
chatbot = SimpleChatBot()
def respond(message, chat_history):
chat_history = [{"role": entry["role"], "content": entry["content"]} for entry in chat_history]
response = chatbot.get_response(message, chat_history)
chat_history.append({"role": "user", "content": message})
chat_history.append({"role": "assistant", "content": response})
return chat_history, ""
with gr.Blocks(title="玻璃心聊天機器人") as demo:
gr.Markdown("# 玻璃心聊天機器人")
chatbot_interface = gr.Chatbot(type="messages")
with gr.Row():
user_input = gr.Textbox(placeholder="輸入訊息...", label="你的訊息")
send_button = gr.Button("發送")
send_button.click(respond, inputs=[user_input, chatbot_interface], outputs=[chatbot_interface, user_input])
demo.launch(share=True)