Este proyecto es un pequeño resumen de AutoGen. Integra el servidor proxy LiteLLM para brindarle fácil acceso a cualquier LLM (propietario o de código abierto), sin tener que abandonar la comodidad de su terminal.
Utiliza las bibliotecas Rich y Prompt_Toolkit para colorear las entradas/salidas, lo que hace que la lectura de respuestas grandes en una terminal simple sea un poco más digerible:
Entrada: Salida
Esta sección proporciona instrucciones sobre cómo configurar su entorno de desarrollo para trabajar en este proyecto.
Antes de comenzar, asegúrese de tener instalado pyenv
o conda
en su sistema para administrar las versiones y entornos de Python.
Este proyecto está probado con Python 3.11.8
. Se recomienda utilizar esta versión específica para evitar problemas de compatibilidad.
Si está utilizando pyenv
, puede instalar Python 3.11.8
y configurarlo como la versión local para el proyecto usando los siguientes comandos:
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
Si prefieres conda
, crea un nuevo entorno con Python 3.11.8
usando el siguiente comando:
conda create --name myenv python=3.11.8
conda activate myenv
Reemplace myenv
con un nombre de su elección para el entorno.
Una vez que tenga configurada la versión correcta de Python, instale las dependencias del proyecto ejecutando:
pip install -e .
Si también planea configurar y utilizar la interfaz de usuario del panel proxy de Litellm, que ofrece un seguimiento de costos y estadísticas de uso claras, instale las dependencias adicionales a través de:
pip install -e ' .[proxy] '
Copie el archivo .env.secrets.example
para crear su propio archivo .env.secrets
y complete sus claves API específicas para los servicios que planea usar, como OpenAI, MistralAI, modelos Anthropic u otros.
cp .env.secrets.example .env.secrets
Edite el archivo .env.secrets
con su editor de texto preferido y actualice las claves API según sea necesario.
Primero necesita configurar una base de datos postgres para almacenar información de uso de litellm. La forma más sencilla de hacerlo es crear una instancia de Superbase postgres gratuita alojada en AWS.
Una vez que la base de datos esté lista para usar, asegúrese de poder conectarse a ella.
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
Si la conexión se realiza correctamente, simplemente configure la variable de entorno DATABASE_URL
en su archivo .env.secrets
y estará listo para comenzar. La próxima vez que inicie el servidor litellm, se conectará automáticamente a la base de datos.
Con estos pasos, debería estar listo para trabajar en el proyecto y ejecutar las aplicaciones.
Ejecute el siguiente comando
python setup.py fix
python setup.py review --file path/to/file
Uno de los puntos fuertes de LiteLLM es que ofrece una interfaz unificada para llamar a varios LLM, entre otras funciones interesantes. En este contexto, utilizamos para ampliar las capacidades de AutoGen para usar otros modelos de IA (que actualmente no es compatible de fábrica, pero es un WIP).
python setup.py litellm
Autogen también ofrece una interfaz de usuario ordenada.
El siguiente comando inicia la aplicación AGS y hace que la interfaz de usuario esté disponible en http://localhost:8083. La base de datos AGS sqlite junto con otros artefactos relacionados se almacenan en src/ui
.
python setup.py ui
De forma predeterminada, las solicitudes del modelo OpenAI no se enrutan a través de litellm. Esto se debe a que, si solo utiliza este proveedor de LLM, no tiene sentido agregar una capa adicional porque puede monitorear fácilmente los costos en https://platform.openai.com/usage. Sin embargo, si utiliza varios proveedores de LLM, tiene sentido tener todos los datos agregados en un único panel -> LiteLLM UI
.
Si el servidor proxy LiteLLM está en funcionamiento, todas las solicitudes de openai se enrutarán automáticamente a través del proxy.
Pasos:
Después de configurar el entorno y la configuración, puede ejecutar las aplicaciones dentro del directorio src/applications/
.
La ejecución de una aplicación crea una nueva sesión de conversación basada en el flujo definido en esa aplicación.
Hay 2 aplicaciones de conversación genéricas:
start_conversation.py
inicia una conversación simple con un agente seleccionado de una lista de agentes especializados predefinidos.start_curated_conversation.py
agrega una IA crítica a la conversación que revisa las afirmaciones del agente principal Se pueden agregar nuevos agentes personalizados en el archivo de definición de agentes agents/custom_agents.py
.
Puede modificar el message
dentro de cada aplicación o ejecutar el script e ingresar su mensaje en la línea de comando (recomendado). Las indicaciones tienen soporte para varias líneas, por lo que Enter
simplemente inserta una nueva línea. Para enviar el mensaje, presione (Meta|Esc)+Enter
.
python chef.py
La aplicación chef.py
demuestra cómo utilizar agentes para facilitar una conversación sobre cocina. Muestra la configuración de un chat grupal con múltiples agentes y el inicio de un chat con una consulta de usuario.
ollama run codellama
litellm_config.yml
para que contenga las nuevas referencias del modelo local o referencias a cualquier otro servicio API como Mistral AI.Otros modelos populares: https://huggingface.co/WizardLM