Stability: CPU fix with psutil interval and LLM timeouts
This commit is contained in:
35
ai_agent.py
35
ai_agent.py
@@ -11,21 +11,30 @@ def get_llm_response(prompt: str, provider: str, cfg: dict) -> str:
|
||||
api_key = cfg.get("gemini_api_key") or os.getenv("GEMINI_API_KEY")
|
||||
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key={api_key}"
|
||||
payload = {"contents": [{"parts": [{"text": prompt}]}]}
|
||||
res = requests.post(url, json=payload)
|
||||
if res.status_code == 200:
|
||||
return res.json()["candidates"][0]["content"]["parts"][0]["text"]
|
||||
return f"Erro Gemini: {res.text}"
|
||||
try:
|
||||
res = requests.post(url, json=payload, timeout=30)
|
||||
if res.status_code == 200:
|
||||
data = res.json()
|
||||
if "candidates" in data and len(data["candidates"]) > 0:
|
||||
return data["candidates"][0]["content"]["parts"][0]["text"]
|
||||
return f"Erro Gemini (Dados Vazios): {res.text}"
|
||||
return f"Erro Gemini (Status {res.status_code}): {res.text}"
|
||||
except Exception as e:
|
||||
return f"Erro de Conexão Gemini: {str(e)}"
|
||||
|
||||
elif provider == "ollama":
|
||||
ollama_host = os.getenv("OLLAMA_HOST", "http://ollama-lw4s8g4gc8gss4gkc4gg0wk4:11434")
|
||||
res = requests.post(f"{ollama_host}/api/generate", json={
|
||||
"model": os.getenv("OLLAMA_MODEL", "qwen2.5-coder:1.5b"),
|
||||
"prompt": prompt,
|
||||
"stream": False
|
||||
})
|
||||
if res.status_code == 200:
|
||||
return res.json().get("response", "")
|
||||
return f"Erro Ollama: {res.text}"
|
||||
try:
|
||||
res = requests.post(f"{ollama_host}/api/generate", json={
|
||||
"model": os.getenv("OLLAMA_MODEL", "qwen2.5-coder:1.5b"),
|
||||
"prompt": prompt,
|
||||
"stream": False
|
||||
}, timeout=30)
|
||||
if res.status_code == 200:
|
||||
return res.json().get("response", "")
|
||||
return f"Erro Ollama (Status {res.status_code}): {res.text}"
|
||||
except Exception as e:
|
||||
return f"Erro de Conexão Ollama: {str(e)}"
|
||||
|
||||
return "Provedor desconhecido."
|
||||
|
||||
@@ -92,6 +101,8 @@ Resposta: A memória RAM está operando com 20% de uso.
|
||||
print(f"--- INICIANDO AGENTE ({provider}) ---")
|
||||
|
||||
for i in range(max_loops):
|
||||
import time
|
||||
time.sleep(0.5) # Respiro para a CPU
|
||||
print(f"\n[LOOP {i+1}/{max_loops}]")
|
||||
full_prompt = system_prompt + current_iteration_history
|
||||
response = get_llm_response(full_prompt, provider, cfg)
|
||||
|
||||
Reference in New Issue
Block a user