Ce projet est un petit wrapper sur AutoGen. Il intègre le serveur proxy LiteLLM pour vous donner un accès facile à n'importe quel LLM (propriétaire ou open source), sans avoir à quitter le confort de votre terminal.
Il utilise les bibliothèques Rich et prompt_toolkit pour coloriser les entrées/sorties, ce qui rend la lecture de réponses volumineuses dans un terminal simple un peu plus digeste :
Entrée : Sortie
Cette section fournit des instructions sur la façon de configurer votre environnement de développement pour travailler sur ce projet.
Avant de commencer, assurez-vous que pyenv
ou conda
est installé sur votre système pour gérer les versions et les environnements Python.
Ce projet est testé avec Python 3.11.8
. Il est recommandé d'utiliser cette version spécifique pour éviter tout problème de compatibilité.
Si vous utilisez pyenv
, vous pouvez installer Python 3.11.8
et le définir comme version locale du projet à l'aide des commandes suivantes :
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
Si vous préférez conda
, créez un nouvel environnement avec Python 3.11.8
à l'aide de la commande suivante :
conda create --name myenv python=3.11.8
conda activate myenv
Remplacez myenv
par un nom de votre choix pour l'environnement.
Une fois que vous avez configuré la bonne version de Python, installez les dépendances du projet en exécutant :
pip install -e .
Si vous envisagez également de configurer et d'utiliser l'interface utilisateur du tableau de bord du proxy Litellm, qui offre une surveillance soignée des coûts et des statistiques d'utilisation, installez les dépendances supplémentaires via :
pip install -e ' .[proxy] '
Copiez le fichier .env.secrets.example
pour créer votre propre fichier .env.secrets
et remplissez vos clés API spécifiques pour les services que vous prévoyez d'utiliser comme OpenAI, MistralAI, les modèles Anthropic ou autres.
cp .env.secrets.example .env.secrets
Modifiez le fichier .env.secrets
avec votre éditeur de texte préféré et mettez à jour les clés API si nécessaire.
Vous devez d’abord configurer une base de données Postgres pour stocker les informations d’utilisation de Litelm. Le moyen le plus simple de procéder consiste à créer une instance postgres Superbase gratuite hébergée avec AWS.
Une fois la base de données prête à être utilisée, assurez-vous de pouvoir vous y connecter
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
Si la connexion réussit, définissez simplement la variable d'environnement DATABASE_URL
dans votre fichier .env.secrets
et vous êtes prêt à partir. La prochaine fois que vous démarrerez le serveur litellm, il se connectera automatiquement à la base de données.
Avec ces étapes, vous devriez être prêt à travailler sur le projet et à exécuter les applications.
Exécutez la commande suivante
python setup.py fix
python setup.py review --file path/to/file
L'un des points forts de LiteLLM est qu'il offre une interface unifiée pour appeler divers LLM, entre autres fonctionnalités intéressantes. Dans ce contexte, nous avons l'habitude d'étendre les capacités d'AutoGen pour utiliser d'autres modèles d'IA (qui ne sont actuellement pas pris en charge par défaut, mais sont un WIP).
python setup.py litellm
Autogen propose également une interface utilisateur soignée.
La commande suivante démarre l'application AGS et rend l'interface utilisateur disponible sur http://localhost:8083. La base de données AGS sqlite ainsi que d'autres artefacts associés sont stockés dans src/ui
.
python setup.py ui
Par défaut, les requêtes de modèle OpenAI ne sont pas acheminées via litellm. En effet, si vous utilisez uniquement ce fournisseur LLM, cela n'a pas de sens d'ajouter une couche supplémentaire car vous pouvez facilement surveiller les coûts sur https://platform.openai.com/usage. Cependant, si vous utilisez plusieurs fournisseurs LLM, il est logique de regrouper toutes les données dans un seul tableau de bord -> LiteLLM UI
.
Si le serveur proxy LiteLLM est opérationnel, toutes les requêtes openai seront automatiquement acheminées via le proxy.
Mesures:
Après avoir configuré l'environnement et la configuration, vous pouvez exécuter les applications dans le répertoire src/applications/
.
L'exécution d'une application crée une nouvelle session de conversation basée sur le flux défini dans cette application.
Il existe 2 applications de conversation génériques :
start_conversation.py
démarre une conversation simple avec un agent sélectionné parmi une liste d'agents spécialisés prédéfinis.start_curated_conversation.py
ajoute une IA critique à la conversation qui examine les affirmations de l'agent principal De nouveaux agents personnalisés peuvent être ajoutés dans le fichier de définition d'agent agents/custom_agents.py
.
Vous pouvez soit modifier le message
dans chaque application, soit exécuter le script et saisir votre invite dans la ligne de commande (recommandé). Les invites prennent en charge plusieurs lignes, donc Enter
insère simplement une nouvelle ligne. Pour soumettre l'invite, appuyez sur (Meta|Esc)+Enter
.
python chef.py
L'application chef.py
montre comment utiliser des agents pour faciliter une conversation sur la cuisine. Il montre la configuration d'une discussion de groupe avec plusieurs agents et le lancement d'une discussion avec une requête utilisateur.
ollama run codellama
litellm_config.yml
pour contenir les nouvelles références de modèle local ou les références à tout autre service API comme Mistral AI.Autres modèles populaires : https://huggingface.co/WizardLM