Chat01 / app.py
Trabalhoemcasa's picture
Update app.py
1b70718 verified
import os
import gradio as gr
from mistralai.client import MistralClient
# --- Configuração da API da Mistral ---
api_key = os.environ.get("CHAT01")
mistral_client = None
if not api_key:
print("AVISO: A chave da API Mistral (CHAT01) não está configurada nas variáveis de ambiente.")
else:
try:
mistral_client = MistralClient(api_key=api_key)
print("✅ Cliente Mistral inicializado com sucesso!")
except Exception as e:
print(f"❌ ERRO ao inicializar o cliente Mistral: {e}")
mistral_client = None
# --- Função de resposta do chatbot ---
def chatbot_response(messages):
"""
messages: lista de mensagens no formato [{role: "user", content: "..."}, {role: "assistant", content: "..."}]
"""
if mistral_client is None:
return {"role": "assistant", "content": "⚠️ Serviço de IA indisponível. Verifique a chave da API."}
try:
print(f"📤 Enviando para a API: {messages[-1]['content'][:50]}...")
chat_response = mistral_client.chat(
model="mistral-large-latest",
messages=messages
)
resposta_bot = chat_response.choices[0].message["content"]
print(f"📥 Resposta recebida: {resposta_bot[:50]}...")
return {"role": "assistant", "content": resposta_bot}
except Exception as e:
print(f"❌ ERRO ao chamar a API da Mistral: {e}")
return {"role": "assistant", "content": f"Erro ao processar sua solicitação: {e}"}
# --- Interface do Gradio ---
interface = gr.ChatInterface(
fn=chatbot_response,
title="🤖 Meu Chatbot com Mistral AI",
description="Converse com um modelo da Mistral AI em tempo real!",
examples=[
[{"role": "user", "content": "Qual a capital do Brasil?"}],
[{"role": "user", "content": "Explique o que é inteligência artificial."}],
[{"role": "user", "content": "Sugira 3 nomes para um cachorro."}],
],
chatbot=gr.Chatbot() # <--- Corrigido aqui, removido "type"
)
# --- Lançamento da aplicação ---
if __name__ == "__main__":
interface.launch()