Resumen Breve
Este video te enseña cómo construir un agente de IA desde cero en Python, utilizando frameworks populares como Langchain. Aprenderás a usar diferentes LLMs como Claude o GPT, a dar acceso al agente a varias herramientas y a estructurar la salida del agente para usarla en tu código.
- Construcción de un agente de IA desde cero en Python.
- Uso de frameworks como Langchain.
- Integración de LLMs como Claude o GPT.
- Acceso del agente a herramientas y estructuración de la salida.
Descripción General
El video introduce la creación de un agente de IA en Python, mostrando cómo construir un asistente de investigación que puede acceder a herramientas como Wikipedia y Google Search. El agente puede recibir una consulta, buscar información relevante y guardar los resultados en un archivo de texto. El tutorial es amigable para principiantes y cubre el uso de frameworks como Langchain y diferentes LLMs como Claude o GPT.
Demostración del Agente
Se presenta una demostración de un asistente de investigación que responde a consultas y guarda la información en un archivo de texto. El agente utiliza herramientas como Wikipedia y Google Search para buscar información. Se muestra el proceso de pensamiento del agente y el resultado final, que incluye un tema, un resumen y las fuentes utilizadas.
Configuración/Requisitos
Para seguir el tutorial, necesitas Python 3.10 o superior, un editor de código como Visual Studio Code y algunas dependencias de Python. Se explica cómo crear un archivo requirements.txt
con las dependencias necesarias y cómo crear un entorno virtual para instalar estas dependencias. Se proporcionan comandos para instalar las dependencias globalmente o en un entorno virtual.
Configuración Básica del Código/Importaciones
Se crean tres archivos: main.py
para la lógica principal, tools.py
para las herramientas y .env
para las credenciales de la API. En main.py
, se importan las bibliotecas necesarias, como load_dotenv
, BaseModel
de Pydantic, y ChatOpenAI
o ChatAnthropic
de Langchain. Se carga el archivo .env
para acceder a las credenciales de la API.
Usando Claude o GPT
Se explica cómo seleccionar un LLM, ya sea ChatOpenAI
o ChatAnthropic
, y cómo especificar el modelo a utilizar. Para ChatOpenAI
, se pueden usar modelos como GPT-3.5 Turbo o GPT-4. Para ChatAnthropic
, se recomienda el modelo Claude 3-5 Sonnet. Se indica que es necesario proporcionar una clave de API para usar estos LLMs.
Obteniendo Tu Clave de API
Se explica cómo obtener las claves de API para OpenAI y Anthropic. Para OpenAI, se debe ir a platform.openai.com/api-keys
y generar una nueva clave. Para Anthropic, se debe ir a console.anthropic.com/settings/keys
y crear una clave. Se advierte no compartir estas claves con nadie.
Funcionalidad Básica de LLM
Se muestra cómo invocar el LLM para probar si está funcionando correctamente. Se utiliza el método invoke
del LLM para enviar una consulta y se imprime la respuesta. Se menciona la importancia de ejecutar el código Python desde dentro del entorno virtual.
Salida Estructurada/Modelos
Se introduce el concepto de plantillas de prompt y analizadores de salida para estructurar la salida del LLM. Se crea una clase Python llamada ResearchResponse
que hereda de BaseModel
de Pydantic. Esta clase define los campos que se esperan en la respuesta del LLM, como topic
, summary
, sources
y tools_used
. Se crea un analizador de salida Pydantic para convertir la salida del LLM en un objeto Python.
Plantillas de Prompt
Se crea una plantilla de prompt utilizando ChatPromptTemplate.from_messages
. La plantilla incluye un mensaje del sistema que indica al LLM que actúe como un asistente de investigación y que formatee la salida según el modelo definido. Se utiliza partial
para completar parcialmente el prompt con las instrucciones de formato.
Creando y Ejecutando el Agente
Se crea un agente utilizando la función create_tool_calling_agent
de Langchain. Se pasa el LLM, el prompt y una lista vacía de herramientas al agente. Se crea un ejecutor de agente utilizando AgentExecutor
para ejecutar el agente. Se invoca el ejecutor de agente con una consulta y se imprime la respuesta sin procesar.
Análisis de Salida
Se explica cómo utilizar el analizador para convertir la respuesta sin procesar del LLM en un objeto Python estructurado. Se utiliza el método parse
del analizador para analizar la salida y se accede a los campos del objeto Python. Se añade un bloque try-except
para manejar posibles errores de análisis.
Añadiendo Herramientas Preconstruidas
Se muestra cómo añadir herramientas al agente. Se importan herramientas preconstruidas de Langchain Community, como WikipediaRun
y DuckDuckGoSearchRun
. Se crea una herramienta de búsqueda utilizando DuckDuckGoSearchRun
y se añade a la lista de herramientas del agente. Se actualiza el agente y el ejecutor de agente con la lista de herramientas.
Llamada de Herramientas Personalizadas
Se explica cómo crear una herramienta personalizada. Se define una función Python llamada save_to_txt
que guarda los datos de la investigación en un archivo de texto. Se envuelve esta función como una herramienta utilizando la clase Tool
de Langchain. Se añade la herramienta personalizada a la lista de herramientas del agente. Se actualiza el agente y el ejecutor de agente con la lista de herramientas. Se instruye al modelo a guardar la información en un archivo.