Chatbot_Test / app.py
ReneeHWT's picture
Update app.py
c67acb3 verified
import gradio as gr
import os
# Install the groq package if it is not installed
try:
from groq import Groq
except ImportError:
os.system('pip install groq')
from groq import Groq
# Set up the Groq client with the secret key
groq_key = os.getenv('groq_key')
if not groq_key:
raise ValueError("groq_key environment variable is not set")
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="簡單的Gradio聊天機器人") as demo:
gr.Markdown("# 簡單的Gradio聊天機器人")
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)