File size: 2,097 Bytes
bf063d6
1905d28
 
bf063d6
1905d28
bf063d6
69e63c7
bf063d6
 
1905d28
bf063d6
1905d28
 
69e63c7
1905d28
69e63c7
 
1905d28
69e63c7
05a8a66
 
 
 
1905d28
05a8a66
1905d28
 
05a8a66
1905d28
05a8a66
1905d28
 
69e63c7
 
05a8a66
1905d28
 
69e63c7
05a8a66
1905d28
69e63c7
1905d28
69e63c7
 
 
 
05a8a66
 
 
baa5f9b
1b70718
1905d28
 
69e63c7
1905d28
69e63c7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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()