mirror of
https://github.com/Ladebeze66/AIagent.git
synced 2025-12-15 19:26:49 +01:00
87 lines
2.7 KiB
Python
87 lines
2.7 KiB
Python
import json
|
|
from typing import Dict, List, Any, Optional, Union
|
|
from .llm import LLM
|
|
|
|
class DeepSeek(LLM):
|
|
"""
|
|
Classe pour l'intégration avec l'API DeepSeek
|
|
Cette classe hérite de la classe de base LLM
|
|
"""
|
|
|
|
def __init__(self):
|
|
"""
|
|
Initialisation des attributs spécifiques à DeepSeek
|
|
"""
|
|
super().__init__()
|
|
|
|
# Attributs spécifiques à DeepSeek
|
|
self.frequency_penalty: int = 0
|
|
self.max_tokens: int = 4096
|
|
self.presence_penalty: int = 0
|
|
self.logprobs: bool = False
|
|
self.top_logprobs: int = 0
|
|
self.tool_choice: str = ""
|
|
|
|
# Initialisation par défaut
|
|
self.Modele = "deepseek-chat"
|
|
self.frequency_penalty = 0
|
|
self.max_tokens = 4096
|
|
self.presence_penalty = 0
|
|
self.o_top_p = 1
|
|
self.logprobs = False
|
|
self.top_logprobs = 0
|
|
self.tool_choice = ""
|
|
|
|
def urlBase(self) -> str:
|
|
"""
|
|
Retourne l'URL de base de l'API DeepSeek
|
|
"""
|
|
return "https://api.deepseek.com/"
|
|
|
|
def cleAPI(self) -> str:
|
|
"""
|
|
Retourne la clé API DeepSeek
|
|
"""
|
|
return "sk-d359d9236ca84a5986f889631832d1e6"
|
|
|
|
def urlFonction(self) -> str:
|
|
"""
|
|
Retourne l'URL de la fonction par défaut pour DeepSeek
|
|
"""
|
|
return "chat/completions"
|
|
|
|
def model_list(self) -> List[str]:
|
|
"""
|
|
Retourne la liste des modèles disponibles pour DeepSeek
|
|
"""
|
|
return ["deepseek-chat", "deepseek-reasoner"]
|
|
|
|
def _even_LLM_POST(self, question: str) -> None:
|
|
"""
|
|
Préparation du contenu de la requête pour DeepSeek
|
|
"""
|
|
self._Contenu["messages"] = [
|
|
{"role": "system", "content": self.prompt_system},
|
|
{"role": "user", "content": question}
|
|
]
|
|
|
|
self._Contenu["stream"] = self._stream
|
|
self._Contenu["frequency_penalty"] = self.frequency_penalty
|
|
self._Contenu["max_tokens"] = self.max_tokens
|
|
self._Contenu["presence_penalty"] = self.presence_penalty
|
|
|
|
# Ajout des logprobs si activés
|
|
if self.logprobs:
|
|
self._Contenu["logprobs"] = self.logprobs
|
|
self._Contenu["top_logprobs"] = self.top_logprobs
|
|
|
|
# Ajout du tool_choice si défini
|
|
if self.tool_choice:
|
|
self._Contenu["tool_choice"] = self.tool_choice
|
|
|
|
def _interrogerRetourneReponse(self, reponse: str) -> str:
|
|
"""
|
|
Extraction de la réponse à partir du JSON retourné par DeepSeek
|
|
"""
|
|
data = json.loads(reponse)
|
|
return data["choices"][0]["message"]["content"] |