Puede iniciar el servidor API utilizando contenedores Docker o clonación manual y construyendo este repositorio.
Configuración manual: Clone este repositorio en su máquina local e inicie el servidor de API Fast Python. Opcionalmente, instale y configure Mongo DB.
Configuración de contenedores de Dev: los contenedores de desarrollo le permiten automatizar la configuración del entorno. Use esta configuración para instalar y ejecutar servicios de contenedores en un entorno aislado con extensiones preinstaladas. También puede abrir los espacios de códigos GitHub en un entorno/navegador remoto utilizando secretos para pasar las teclas API del modelo.
Configurar un Python VirtualEnv e Instalar Dependencias
python -m venv --prompt agent-builder-api venv
source venv/bin/activate
# venv/Scripts/activate (Windows)
pip install -r requirements.txtEstablezca el nombre del modelo y la clave API en el archivo .env
OPENAI_API_KEY = " sk---- "
MODEL_NAME = " openai "Inicie el servidor en el nuevo terminal
python -m agentbuilder.mainPara la gestión de dependencia de grano fino, use poesía para elegir paquetes de dependencia en función de su proveedor de modelos LLM y características de herramienta.
Siga la guía de instrucción oficial para instalar poesía.
Elija y elija paquetes de dependencia para instalar.
poetry install --extras " openai gemini cohere anthropic mongodb vectordb langgraph "Establezca el nombre del modelo y la clave API en el archivo .env
OPENAI_API_KEY = " sk---- "
MODEL_NAME = " openai "Inicie el servidor en el nuevo terminal
poetry run start-serverNota
La poesía creará un entorno virtual para nosotros.
Por defecto, los datos se almacenan como archivos JSON. Habilite el almacenamiento en Mongo DB estableciendo URL utilizando la variable de entorno.
MONGODB_URL = " mongodb://localhost:27017/llmdb "Habilite los contenedores de desarrollo en VScode siguiendo los pasos en la documentación oficial.
Haga clic en la insignia a continuación para ejecutar los servicios en un entorno de contenedores aislado en una máquina local.
Esto clonará el repositorio e iniciará los servicios de contenedores API y Mongo DB.
Consejo
Use URL MongoDB: // MongoDB: 27017/LLMDB en Mongo DB VScode Extension para ver los datos de almacenamiento.
Ejecutar contenedores F1> Dev: adjunte a la ejecución del contenedor ... y seleccione Agent-Builder-Conseiner .
Establezca el nombre del modelo y la clave API en el archivo .env
OPENAI_API_KEY = " sk---- "
MODEL_NAME = " openai " Los paquetes de dependencia permiten instalaciones de paquetes de grano fino en función de sus requisitos. Use la variable de entorno extra_deps en el archivo Docker-compuesto para actualizar.
Install-Extra-Deps.sh script se puede usar en el modo de contenedor Dev si Docker-Compose no está disponible.
Por ejemplo, la siguiente configuración del entorno instalará dependencias para el modelo Gemini, Mongo DB, Langchain Graph y VectordB
EXTRA_DEPS : " gemini,mongodb,langgraph,vectordb " Consejo
Comience con un paquete de dependencia básico para admitir su modelo y agregue otras funciones de forma incremental
Los siguientes modelos son compatibles con su paquete de dependencia
| Modelo | Paquete de dependencia | Nombre de la llave env envado |
|---|---|---|
| Abierta ai | opadai | OPERAI_API_KEY |
| GÉMINIS | Géminis | Google_api_key |
| ADHERIRSE | adherirse | Cohere_api_key |
| Antrópico | antrópico | Anthropic_api_key |
Algunas herramientas preconfiguradas requieren dependencias adicionales o claves API para habilitarse.
| Herramienta | Paquete de dependencia | Nombre de la llave env envado |
|---|---|---|
| Internet_search | - | Tavily_api_key |
| vectorstore_search | vectordb | Embed_model_name |
Agregue herramientas o kits de herramientas personalizados utilizando el módulo de fábrica de herramientas ( AgentBuilder/Factory/Tool_Factory ).
Crea tu herramienta
AgentBuilder/Tools/My_Custom_Tool.py
from pathlib import Path
from langchain_core . tools import tool
from pydantic import BaseModel , Field
@ tool
def my_custom_tool ( a : int , b : int ):
"""Custom Tool Description"""
return a + b
my_custom_tool . name = "custom_tool_name"
my_custom_tool . description = "Custom Tool Description"
class field_inputs ( BaseModel ):
a : int = Field ( description = "First input" )
b : int = Field ( description = "Second input" )
my_custom_tool . args_schema = sum_inputs
my_custom_tool . metadata = { "file_path" : str ( Path ( __file__ ). absolute ())}Agregue su herramienta en el método get_all_tools en el módulo Tool_Factory.
AgentBuilder/Factory/Tool_Factory.py
def get_all_tools()->Sequence[BaseTool]:
return get_vectordb_tools()+ get_websearch_tools() + json_tools + [
directly_answer_tool,
weather_clothing_tool,
temperature_tool,
temperature_sensor_tool,
sum_tool,greeting_tool,
git_diff_tool,
repl_tool,
+ my_custom_tool
]Los agentes se pueden crear utilizando la interfaz de usuario de Extension o declararse en el código. Agregue sus agentes usando el módulo de fábrica de agentes ( agenteBuilder/factory/agente_factory ).
Crea tu agente
def my_agent ():
return AgentParams (
name = "my_agent" ,
preamble = "You are a powerful agent that uses tools to answer Human questions" ,
tools = [ "my_custom_tool" ],
agent_type = 'tool_calling'
)Agregue su agente en el método get_all_agents .
def get_all_agents():
return [
default_agent(),
weather_agent(),
python_agent(),
git_agent(),
+ my_agent()
]Personalice el flujo de trabajo de su agente utilizando indicaciones y gráficos personalizados. Filtre el agente usando el nombre del agente para aplicar personalizaciones.
Por ejemplo, el siguiente código aplica el flujo de trabajo de Graph Builder para el agente llamado "Graph_Agent"
def get_agent_builder ( params : AgentBuilderParams ):
agent_name = params . name
match agent_name :
case "graph_agent" :
from agentbuilder . agents . BaseGraphAgentBuilder import BaseGraphAgentBuilder
return BaseGraphAgentBuilder ( params )
case _ :
return BaseAgentBuilder ( params )Importante
El "Langgraph" del paquete de dependencia debe instalarse para BaseGraphagentBuilder.
Actualice la configuración del modelo utilizando variables de entorno.
Admite formato {proveedor}/{modelName}
Géminis
Crear claves API https://aistudio.google.com/app/apikey
MODEL_NAME = " gemini/gemini-pro "
EMBED_MODEL_NAME = " gemini/embedding-001 "
GOOGLE_API_KEY = <GOOGLE_API_KEY>Adherirse
Crear claves API https://dashboard.cohere.com/api-keys
MODEL_NAME = " cohere/command "
EMBED_MODEL_NAME = " cohere/embed-english-v3.0 "
COHERE_API_KEY = <COHERE_API_KEY>Abierta ai
Crear claves API https://platform.openai.com/docs/quickstart/account-setup
MODEL_NAME = " openai/gpt-4o "
EMBED_MODEL_NAME = " openai/text-embedding-3-large "
OPENAI_API_KEY = <OPENAI_API_KEY>Antrópico
Crear claves API https://www.anthropic.com/ y https://www.voyageai.com/
MODEL_NAME = " anthropic/claude-3-opus-20240229 "
EMBED_MODEL_NAME = " voyageai/voyage-2 "
ANTHROPIC_API_KEY = <ANTHROPIC_API_KEY>
VOYAGE_API_KEY = <VOYAGE_API_KEY>Ollama
Use modelos locales para llamadas de funciones.
Consejo
Use el tipo de agente de chat json para una mejor compatibilidad con modelos locales.
Instale Ollama y tire del modelo.
ollama pull mistral:v0.3Establecer variable de entorno.
MODEL_NAME = " ollama/mistral:v0.3 "