Roy est une alternative légère à autogen
pour développer des systèmes multi-agents avancés utilisant des modèles de langage. Il vise à simplifier et démocratiser le développement de l’intelligence collective émergente.
Agnostique du modèle : utilisez n'importe quel LLM, aucune API externe requise. La valeur par défaut est un modèle assistant-codeur-python quantifié 4 bits pour plus d'efficacité.
Modulaire et Composable : Roy décompose les interactions des agents en blocs de construction réutilisables : création de modèles, récupération, génération, exécution.
Transparent et personnalisable : chaque méthode a un objectif clair. Remplacez facilement les composants ou ajoutez de nouvelles fonctionnalités.
git clone https://github.com/JosefAlbers/Roy
cd Roy
pip install -r requirements.txt
pip install -U transformers optimum accelerate auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
from roy import Roy
roy = Roy ()
Utilisez des modèles pour structurer les conversations et fournir du contexte.
s = 'What date is today? Which big tech stock has the largest year-to-date gain this year? How much is the gain?'
roy . generate ( roy . format ( s ))
Améliorez la génération avec des connaissances pertinentes.
s = 'Create a text to image generator.'
r = roy . retrieve ( s , n_topk = 3 , src = 'huggingface' )
[ roy . generate ( s ) for s in r ]
Les agents collaborent en boucles étroites pour affiner de manière itérative les résultats selon les spécifications.
# Iterative multiturn chat style
s = "Create a secure and unique secret code word with a Python script that involves multiple steps to ensure the highest level of confidentiality and protection. n "
for i in range ( 2 ):
c = roy . generate ( s , prohibitions = [ 'input' ])
s += roy . execute ( c )
Comparez et itérez facilement votre architecture de modèle :
Composants d'échange : modèles de langage, formats d'invite, architectures d'agent, etc.
Test sur diverses tâches : Arithmétique, codage python, HumanEval d'OpenAI etc.
Quantifier les améliorations : découvrez comment chaque changement affecte les performances globales.
from human_eval import evaluate
evaluate ( roy . generate )
Roy vise à faciliter l’émergence de systèmes multi-agents complexes et adaptatifs. Il s'inspire des concepts de la biologie et de l'IA pour permettre une coordination décentralisée et un apprentissage continu.
Survie du plus apte - Évaluez périodiquement et retenez de manière sélective les agents les plus performants en fonction de leur précision, de leur rapidité, etc. Les agents s'adaptent grâce aux interactions avec leurs pairs.
Mélange d'experts - Désignez l'expertise des agents, rassemblez de manière dynamique des équipes de spécialistes et acheminez les tâches vers les experts optimaux. Affinez et augmentez continuellement les experts.
Ces mécanismes facilitent l’émergence de collectifs d’agents capables, adaptatifs et efficaces.
Primitives flexibles pour construire des écosystèmes d'agents.
from roy import Roys
roys = Roys ()
# AutoFeedback
roys . create ( agents = { 'Coder' : 'i = execute(generate(i))' })
roys . start ( requests = { 'i' : 'Create a mobile application that can track the health of elderly people living alone in rural areas.' })
# Retrieval Augmented Generation
roys . create (
agents = {
'Retriever' : 'r = retrieve(i)' ,
'Generator' : 'o = generate(r)' ,
})
roys . start ( requests = { 'i' : 'Create a Deutsch to English translator.' })
# Providing a custom tool to one of the agents using lambda
roys . create (
agents = {
'Coder' : 'c = generate(i)' ,
'Proxy' : 'c = custom(execute(c))' ,
},
tools = { 'custom' : lambda x : f'Modify the code to address the error encountered: n n { x } ' if 'Error' in x else None })
roys . start ( requests = { 'i' : 'Compare the year-to-date gain for META and TESLA.' })
Roy est en développement actif. Nous apprécions les contributions - n'hésitez pas à ouvrir des numéros et des relations publiques !
Si vous avez trouvé ce projet utile ou intéressant et que vous souhaitez soutenir davantage de ces expériences, n'hésitez pas à m'offrir un café !