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()