akira / debug_mistral.py
akra35567's picture
Upload 19 files
bc6d235 verified
import os
from pathlib import Path
def debug_mistral_key():
print("--- Debug Detalhado Mistral Key ---")
# Tenta ler do environment primeiro
key = os.getenv("MISTRAL_API_KEY", "")
if not key:
# Tenta ler do .env manualmente para ver o que tem lá
env_path = Path(".env")
if env_path.exists():
with open(env_path, "r", encoding="utf-8") as f:
for line in f:
if line.strip().startswith("MISTRAL_API_KEY="):
key = line.strip().split("=", 1)[1]
print("Encontrada no .env via leitura manual.")
break
if not key:
print("❌ Chave não encontrada em lugar nenhum.")
return
print(f"Comprimento da chave: {len(key)}")
print(f"Primeiros 4 caracteres: {key[:4]}")
print(f"Últimos 4 caracteres: {key[-4:]}")
# Verifica caracteres invisíveis ou espaços
if key != key.strip():
print("⚠️ A chave tem espaços no início ou fim!")
import unicodedata
print(f"Representação da chave (primeiros 10): {[hex(ord(c)) for c in key[:10]]}")
# Limpeza da chave antes de usar
clean_key = key.strip().replace('"', '').replace("'", "")
# Teste de conexão simples com modelo ultra-básico
import requests
url = "https://api.mistral.ai/v1/models"
headers = {"Authorization": f"Bearer {clean_key}"}
try:
print("\nTestando listagem de modelos (Endpoint /v1/models)...")
res = requests.get(url, headers=headers, timeout=10)
print(f"Status: {res.status_code}")
if res.status_code == 200:
models = res.json().get('data', [])
print(f"✅ Sucesso! Modelos disponíveis: {[m['id'] for m in models[:5]]}")
else:
print(f"❌ Falha: {res.text}")
except Exception as e:
print(f"💥 Erro: {e}")
if __name__ == "__main__":
debug_mistral_key()