GabrielSchultz's picture
Update app.py
769a56c verified
import gradio as gr
import requests
import os
import random
api_key = os.getenv("apichatbotacess")
# Define the API calling function
def api_call(prompt, thread_id, model_name, chat_history):
url = "https://multimodalcompany-dev--talent-chatbot-beta-dev.modal.run"
headers = {
"key": api_key,
"Content-Type": "application/json"
}
data = {
"prompt": prompt,
"thread_id": thread_id,
"nameM": model_name,
"max_new_tokens": 4096,
"top_p": 0.95,
"temperature": 0.7,
"repetition_penalty": 1.15,
"do_sample": False,
"stream": False,
"user_id": "talent-demo-user",
"topic_id": "talent-chatbot",
"persist_data": True,
"max_chat_history_tokens": 2000,
"max_chat_history_days": 10,
"chat_history": chat_history # Include chat history
}
response = requests.post(url, headers=headers, json=data)
try:
return response.json()["message"]
except requests.exceptions.JSONDecodeError:
print("Error: Invalid JSON response")
return "Error: Invalid JSON response"
# Initialize the chat history
chat_history = []
# Gradio interface
with gr.Blocks() as demo:
model_name = gr.Dropdown(choices=["OpenAI", "Claude"], label="Select Model")
chatbot = gr.Chatbot()
msg = gr.Textbox(label="Your Message")
def respond(message, model_name):
global chat_history
# Make the API call with the current message
bot_message = api_call(message, random.randint(1, 10000), model_name, chat_history)
# Append the current message and response to chat history
chat_history.append((message, bot_message))
return "", chat_history
def reset_chat_history(model_name):
# Reset the chat history when the model_name changes
global chat_history
chat_history = []
return [], chat_history
# Link the reset function to the model_name dropdown
model_name.change(fn=reset_chat_history, inputs=model_name, outputs=[chatbot, gr.State(chat_history)])
msg.submit(fn=respond, inputs=[msg, model_name], outputs=[msg, chatbot])
demo.launch()