Model update: Gemini 2.0 Flash Lite primary, Qwen fallback
This commit is contained in:
12
ai_agent.py
12
ai_agent.py
@@ -32,7 +32,7 @@ async def query_agent_async(prompt: str, override_provider=None, chat_history=No
|
|||||||
tools_desc = "\n".join([f"- {k}: {v.get('description') or v.get('desc')}" for k, v in ALL_TOOLS.items()])
|
tools_desc = "\n".join([f"- {k}: {v.get('description') or v.get('desc')}" for k, v in ALL_TOOLS.items()])
|
||||||
|
|
||||||
# Identifica o modelo para o prompt do sistema
|
# Identifica o modelo para o prompt do sistema
|
||||||
current_model = cfg.get("model") or "deepseek/deepseek-chat:free"
|
current_model = cfg.get("model") or "google/gemini-2.0-flash-lite-preview-02-05:free"
|
||||||
|
|
||||||
system_prompt = f"""Você é o Antigravity, um assistente de IA de alto desempenho operando na VPS do Marcos.
|
system_prompt = f"""Você é o Antigravity, um assistente de IA de alto desempenho operando na VPS do Marcos.
|
||||||
Seu modelo base atual é o **{current_model}** via OpenRouter.
|
Seu modelo base atual é o **{current_model}** via OpenRouter.
|
||||||
@@ -90,27 +90,27 @@ DIRETRIZES:
|
|||||||
# Lógica de FALLBACK: Se o DeepSeek falhar, tenta o Qwen
|
# Lógica de FALLBACK: Se o DeepSeek falhar, tenta o Qwen
|
||||||
if (res_dict.get("content", "").startswith("Erro OpenRouter") or "error" in res_dict.get("content", "").lower()) and provider == "openrouter":
|
if (res_dict.get("content", "").startswith("Erro OpenRouter") or "error" in res_dict.get("content", "").lower()) and provider == "openrouter":
|
||||||
backup_model = "qwen/qwen-2.5-72b-instruct"
|
backup_model = "qwen/qwen-2.5-72b-instruct"
|
||||||
print(f"⚠️ [FALLBACK] Falha no DeepSeek. Tentando {backup_model}...")
|
print(f"⚠️ [FALLBACK] Falha no Gemini. Tentando {backup_model}...")
|
||||||
res_dict = await call_llm("openrouter", backup_model, system_prompt + current_history)
|
res_dict = await call_llm("openrouter", backup_model, system_prompt + current_history)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# Lógica de EMERGÊNCIA: Se houver exceção no DeepSeek, tenta o Qwen
|
# Lógica de EMERGÊNCIA: Se houver exceção no DeepSeek, tenta o Qwen
|
||||||
print(f"⚠️ [EMERGENCY FALLBACK] Exceção no DeepSeek ({str(e)}). Tentando {backup_model}...")
|
print(f"⚠️ [EMERGENCY FALLBACK] Exceção no Gemini ({str(e)}). Tentando {backup_model}...")
|
||||||
try:
|
try:
|
||||||
backup_model = "qwen/qwen-2.5-72b-instruct"
|
backup_model = "qwen/qwen-2.5-72b-instruct"
|
||||||
res_dict = await call_llm("openrouter", backup_model, system_prompt + current_history)
|
res_dict = await call_llm("openrouter", backup_model, system_prompt + current_history)
|
||||||
except:
|
except:
|
||||||
return f"RESUMO: ❌ Desculpe, os modelos DeepSeek e Qwen estão instáveis no OpenRouter no momento. Por favor, tente novamente em instantes."
|
return f"RESUMO: ❌ Desculpe, os modelos Gemini e Qwen estão instáveis no OpenRouter no momento. Por favor, tente novamente em instantes."
|
||||||
|
|
||||||
response = res_dict.get("content", "Erro: Resposta vazia.")
|
response = res_dict.get("content", "Erro: Resposta vazia.")
|
||||||
|
|
||||||
# Limpeza de segurança: Se a resposta for um erro técnico persistente
|
# Limpeza de segurança: Se a resposta for um erro técnico persistente
|
||||||
if response.startswith("Erro OpenRouter"):
|
if response.startswith("Erro OpenRouter"):
|
||||||
return f"RESUMO: ⚠️ Instabilidade no OpenRouter (DeepSeek/Qwen):\n`{response[:200]}...`\n\nPor favor, tente reenviar sua mensagem."
|
return f"RESUMO: ⚠️ Instabilidade no OpenRouter (Gemini/Qwen):\n`{response[:200]}...`\n\nPor favor, tente reenviar sua mensagem."
|
||||||
|
|
||||||
# Limpeza de segurança: Se a resposta for um erro técnico persistente
|
# Limpeza de segurança: Se a resposta for um erro técnico persistente
|
||||||
if response.startswith("Erro OpenRouter"):
|
if response.startswith("Erro OpenRouter"):
|
||||||
return f"RESUMO: ⚠️ Instabilidade no OpenRouter (DeepSeek/Qwen):\n`{response[:200]}...`\n\nPor favor, tente reenviar sua mensagem."
|
return f"RESUMO: ⚠️ Instabilidade no OpenRouter (Gemini/Qwen):\n`{response[:200]}...`\n\nPor favor, tente reenviar sua mensagem."
|
||||||
|
|
||||||
usage = res_dict.get("usage", {})
|
usage = res_dict.get("usage", {})
|
||||||
usage = res_dict.get("usage", {})
|
usage = res_dict.get("usage", {})
|
||||||
|
|||||||
Reference in New Issue
Block a user