mirror of
https://github.com/Ladebeze66/ragflow_preprocess.git
synced 2026-02-04 05:30:26 +01:00
77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Classe de base pour tous les agents LLM
|
|
"""
|
|
|
|
from typing import List, Dict, Any, Optional
|
|
|
|
class LLMBaseAgent:
|
|
"""
|
|
Classe de base pour tous les agents LLM. Fournit des méthodes communes
|
|
pour interagir avec différents modèles de langage.
|
|
"""
|
|
|
|
def __init__(self, model_name: str, endpoint: str = "http://217.182.105.173:11434", **config):
|
|
"""
|
|
Initialise un agent LLM
|
|
|
|
Args:
|
|
model_name (str): Nom du modèle à utiliser
|
|
endpoint (str): URL de l'API Ollama ou autre endpoint
|
|
**config: Paramètres de configuration supplémentaires
|
|
- temperature (float): Température pour la génération (défaut: 0.2)
|
|
- top_p (float): Valeur top_p (défaut: 0.95)
|
|
- top_k (int): Valeur top_k (défaut: 40)
|
|
- max_tokens (int): Nombre maximal de tokens à générer (défaut: 1024)
|
|
- language (str): Langue pour les prompts ("fr" ou "en")
|
|
"""
|
|
self.model_name = model_name
|
|
self.endpoint = endpoint
|
|
|
|
# Paramètres par défaut
|
|
self.config = {
|
|
"temperature": 0.2,
|
|
"top_p": 0.95,
|
|
"top_k": 40,
|
|
"max_tokens": 1024,
|
|
"language": "fr"
|
|
}
|
|
|
|
# Mise à jour avec les paramètres fournis
|
|
self.config.update(config)
|
|
|
|
def generate(self, prompt: str, images: Optional[List[bytes]] = None) -> str:
|
|
"""
|
|
Génère une réponse à partir d'un prompt et d'images optionnelles
|
|
|
|
Args:
|
|
prompt (str): Le texte du prompt
|
|
images (List[bytes], optional): Liste d'images en bytes
|
|
|
|
Returns:
|
|
str: La réponse générée par le modèle
|
|
"""
|
|
raise NotImplementedError("Cette méthode doit être implémentée par les classes dérivées")
|
|
|
|
def get_params(self) -> Dict[str, Any]:
|
|
"""
|
|
Renvoie les paramètres actuels de l'agent
|
|
|
|
Returns:
|
|
Dict[str, Any]: Les paramètres de configuration
|
|
"""
|
|
return {
|
|
"modèle": self.model_name,
|
|
**self.config
|
|
}
|
|
|
|
def update_config(self, **kwargs):
|
|
"""
|
|
Met à jour la configuration de l'agent
|
|
|
|
Args:
|
|
**kwargs: Paramètres à mettre à jour
|
|
"""
|
|
self.config.update(kwargs) |