chatbot6 / app.py
amasood's picture
Update app.py
2880eb4 verified
import os
import gradio as gr
from mistralai import Mistral
# Fetch the API key from environment variables (set in Hugging Face secrets)
api_key = os.getenv("MISTRAL_API_KEY")
if not api_key:
raise ValueError("⚠️ Missing MISTRAL_API_KEY. Please set it in the Space settings.")
client = Mistral(api_key=api_key)
def chat_with_mistral(user_input, history):
"""Handles chat with Mistral LLM."""
try:
messages = [{"role": "system", "content": "You are a helpful medical assistant specialized in skin and acne care."}]
for human, ai in history:
messages.append({"role": "user", "content": human})
messages.append({"role": "assistant", "content": ai})
messages.append({"role": "user", "content": user_input})
response = client.chat.complete(
model="mistral-medium",
messages=messages
)
reply = response.choices[0].message.content
history.append((user_input, reply))
return history, ""
except Exception as e:
error_msg = f"⚠️ API error occurred: {str(e)}"
history.append((user_input, error_msg))
return history, ""
with gr.Blocks() as demo:
gr.Markdown("## 💬 Mistral Chatbot — Skin & Acne Specialist")
chatbot = gr.Chatbot(height=500)
msg = gr.Textbox(label="Ask your question here:")
clear = gr.ClearButton([msg, chatbot])
msg.submit(chat_with_mistral, [msg, chatbot], [chatbot, msg])
demo.launch()