Roy es una alternativa ligera a autogen
para desarrollar sistemas avanzados de múltiples agentes utilizando modelos de lenguaje. Su objetivo es simplificar y democratizar el desarrollo de la inteligencia colectiva emergente.
Agnóstico del modelo : utilice cualquier LLM, no se requieren API externas. El valor predeterminado es un modelo de asistente-codificador-python cuantificado de 4 bits para mayor eficiencia.
Modular y componible : Roy descompone las interacciones de los agentes en bloques de construcción reutilizables: creación de plantillas, recuperación, generación y ejecución.
Transparente y personalizable : cada método tiene un propósito claro. Cambie componentes fácilmente o agregue nuevas capacidades.
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 ()
Utilice plantillas para estructurar conversaciones y proporcionar contexto.
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 ))
Potenciar la generación con conocimientos relevantes.
s = 'Create a text to image generator.'
r = roy . retrieve ( s , n_topk = 3 , src = 'huggingface' )
[ roy . generate ( s ) for s in r ]
Los agentes colaboran en bucles estrechos para refinar iterativamente los resultados según las especificaciones.
# 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 )
Compare e itere fácilmente la arquitectura de su modelo:
Componentes de intercambio : modelos de lenguaje, formatos de mensajes, arquitecturas de agentes, etc.
Prueba en diversas tareas : aritmética, codificación Python, HumanEval de OpenAI, etc.
Cuantificar mejoras : vea cómo cada cambio afecta el rendimiento general.
from human_eval import evaluate
evaluate ( roy . generate )
Roy tiene como objetivo facilitar el surgimiento de sistemas multiagente complejos y adaptativos. Se inspira en conceptos biológicos y de inteligencia artificial para permitir la coordinación descentralizada y el aprendizaje continuo.
Supervivencia del más apto : evalúe periódicamente y retenga selectivamente a los agentes de alto rendimiento en función de su precisión, velocidad, etc. Los agentes se adaptan a través de interacciones con sus pares.
Combinación de expertos : designe la experiencia de los agentes, reúna dinámicamente equipos de especialistas y dirija las tareas a los expertos óptimos. Perfeccione y aumente continuamente a los expertos.
Estos mecanismos facilitan el surgimiento de colectivos de agentes capaces, adaptables y eficientes.
Primitivas flexibles para construir ecosistemas de agentes.
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 desarrollo activo. Agradecemos las contribuciones: ¡siéntete libre de abrir problemas y relaciones públicas!
Si este proyecto te resultó útil o interesante y quieres apoyar más de estos experimentos, ¡no dudes en invitarme a un café!