Une passerelle robuste et professionnelle pour gérer plusieurs moteurs LLM locaux (Ollama, LocalAI, llama.cpp) avec cache, fallback et récupération de données externes.
- Interface unifiée pour plusieurs moteurs LLM
- Système de fallback automatique si un moteur tombe en panne
- Mise en cache pour éviter les requêtes répétées
- Récupération externe de données du web
- Templates de prompts pour différentes tâches
- Architecture modulaire et extensible
-
Installer les dépendances:
bundle install
-
S'assurer que les services LLM sont en cours d'exécution:
- Ollama:
ollama serve
(port par défaut 11434) - LocalAI: Serveur LocalAI (port par défaut 8080)
- llama.cpp: Serveur llama.cpp (port par défaut 8080)
- Ollama:
-
Démarrer le serveur Rails:
rails server
Endpoint: POST /api/v1/llm/generate
Paramètres:
query
: La requête principaletask
: Template à utiliser (:summary, :qa, :generation, :classification) (défaut: :generation)sources
: Tableau d'URLs pour récupérer des données (optionnel)
Exemple avec curl:
curl -X POST http://localhost:3000/api/v1/llm/generate \
-H "Content-Type: application/json" \
-d '{
"query": "Qu'\''est-ce que l'\''intelligence artificielle?",
"task": "generation"
}'
Réponse:
{
"result": "L'intelligence artificielle (IA) désigne les systèmes conçus pour imiter l'intelligence humaine..."
}
- Gateway: Point d'entrée principal coordonnant les composants
- Adapters: Interface pour chaque moteur LLM (Ollama, LocalAI, llama.cpp)
- Cache: Évite les requêtes répétées
- Fetcher: Récupère des données du web
- Templates: Modèles de prompts pour différentes tâches
- Model Registry: Configuration et gestion des modèles
Consultez DOCUMENTATION.md pour plus de détails techniques et d'exemples.
Un fichier Docker et docker-compose sont fournis pour faciliter le déploiement:
docker-compose up -d
Ce projet est un prototype modulaire conçu pour être facilement étendu. Vous pouvez ajouter:
- De nouveaux adaptateurs LLM
- Des fetchers pour d'autres sources de données
- Des templates de prompts supplémentaires