# agent/llm.py from typing import List, Dict, Any import requests from .config import settings class DeepSeekClient: def __init__( self, api_key: str | None = None, base_url: str | None = None, model: str | None = None, ): self.api_key = api_key or settings.deepseek_api_key self.base_url = base_url or settings.deepseek_base_url self.model = model or settings.model def complete(self, messages: List[Dict[str, Any]]) -> str: """ messages: liste de dicts {role: 'system'|'user'|'assistant', content: str} Retourne content (str) du premier choix. """ if not self.api_key: return "Erreur côté agent : DEEPSEEK_API_KEY manquant dans l'environnement backend." url = f"{self.base_url}/v1/chat/completions" headers = { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json", } payload = { "model": self.model, "messages": messages, "temperature": settings.temperature, } resp = requests.post(url, headers=headers, json=payload, timeout=60) resp.raise_for_status() data = resp.json() print("DeepSeek response:", data) return data["choices"][0]["message"]["content"]