Sabrás
- Crea un entorno virtual de Python aislado e instala las dependencias de LangChain, Ollama y Chroma
- Ejecuta un modelo local con Ollama e invócalo desde Python con una cadena de prompts de LangChain
- Crea un bucle interactivo de preguntas que envíe lo que escribe el usuario a través de una cadena de modelos
- Incrusta las filas de un CSV como documentos en un almacén vectorial Chroma persistente usando un modelo de embeddings local
- Implementa la generación aumentada por recuperación (RAG) pasando los documentos recuperados al prompt antes de que el modelo responda
Conviene saber antes
- Sintaxis básica de Python, incluidas funciones, bucles y diccionarios
- Comodidad usando una terminal y la línea de comandos
- Familiaridad con VS Code u otro editor de código
- Comprensión básica de los archivos CSV
Temario
7 lecciones
- 1
Demostración del asistente local de reseñas terminado Gratis
Vas a ver por primera vez la aplicación terminada: un programa de terminal que responde preguntas leyendo un CSV de reseñas de restaurantes. Funciona totalmente en tu propio ordenador, sin ninguna cuenta de nube de pago.
2 de código2 pasos de construcción1 ejercicio3 preguntas - 2
Configura la carpeta del proyecto y el entorno virtual Beyond Pass
Vas a crear una carpeta de proyecto, un entorno virtual de Python aislado dentro de ella, activarlo e instalar las bibliotecas que necesita el agente. Preparar esto primero mantiene los paquetes de tu proyecto separados del resto de tu ordenador.
1 de código6 pasos de construcción2 ejercicios3 preguntas - 3
[60] Instala Ollama y descarga un modelo de chat y un modelo de embeddings Beyond Pass
[61] Instalas Ollama, que ejecuta modelos de IA en tu propio ordenador, y después descargas dos modelos: un modelo de chat (llama3.2) y un modelo de embeddings (mxbai-embed-large). Confirmas que ambos están disponibles antes de escribir código.
1 de código4 pasos de construcción2 ejercicios3 preguntas - 4
[47] Invoca un modelo local con una cadena de prompts de LangChain Beyond Pass
[48] Vas a conectar un script de Python a un modelo que se ejecuta en tu propio ordenador a través de Ollama, usando LangChain. Escribirás una plantilla de prompt con marcadores de posición y la unirás al modelo en una cadena que podrás invocar.
1 de código6 pasos de construcción3 ejercicios3 preguntas - 5
[44] Add an interactive question loop Beyond Pass
[45] You will wrap the chain in a while True loop so the user can keep asking questions until they type q. You will learn how input(), break and chain.invoke() work together to make a simple question-and-answer program.
1 de código6 pasos de construcción3 ejercicios3 preguntas - 6
Carga el CSV y crea un almacén vectorial Chroma persistente Beyond Pass
Vas a convertir cada fila de un CSV de reseñas de restaurantes en un Document, transformar el texto en vectores con un modelo de embeddings local de Ollama y guardarlos en una base de datos Chroma persistente que se construye solo una vez. También verás por qué importan los IDs, los metadatos y la comprobación de si la base de datos ya existe.
1 de código4 pasos de construcción3 ejercicios3 preguntas - 7
[30] Crea un retriever e integra RAG en la cadena. Beyond Pass
[31] Conviertes el almacén vectorial de Chroma en un retriever que obtiene las reseñas más relevantes para una pregunta. Después pasas esas reseñas al prompt para que el LLM local responda usando tus propios datos.
1 de código5 pasos de construcción3 ejercicios3 preguntas
Vista previa gratis · La lección 1 completa
Demostración del asistente local de reseñas terminado
Vas a ver por primera vez la aplicación terminada: un programa de terminal que responde preguntas leyendo un CSV de reseñas de restaurantes. Funciona totalmente en tu propio ordenador, sin ninguna cuenta de nube de pago.
Escribe los comandos de la lección, rompe cosas y descubre por qué.
Dibuja y escribe junto al vídeo.
La idea
Este capítulo es una vista previa. Antes de escribir cualquier código, el vídeo te muestra el producto terminado para que sepas qué vas a construir. La aplicación es un pequeño programa de Python que se ejecuta desde el símbolo del sistema. Te hace una pregunta, busca en un archivo de reseñas falsas de pizzerías y responde con lo que ha encontrado.
Los datos están en un archivo CSV llamado realistic_restaurant_reviews.csv. Un CSV es una tabla de texto plano en la que cada línea es una fila y las comas separan las columnas. Aquí las columnas son Title, Date, Rating y Review. Una reseña podría decir 'Best pizza in town' con una fecha, una valoración sobre cinco y un texto largo que describe la pizza.
La idea que hay detrás de la aplicación se llama generación aumentada por recuperación, o RAG para abreviar. El programa primero recupera del archivo las reseñas relevantes para tu pregunta y después se las entrega a un modelo de lenguaje, que escribe la respuesta. El modelo no necesita saber nada de este restaurante de antemano; solo ve los fragmentos que encontró la búsqueda.
Todas las herramientas son gratuitas y se ejecutan en local. El vídeo usa Ollama para ejecutar un modelo de lenguaje en tu máquina, LangChain para conectar las piezas y ChromaDB como base de datos vectorial que encuentra las reseñas relevantes. No se necesita una cuenta de OpenAI ni ningún servicio en la nube.
En la demostración, el usuario pregunta '¿qué tal es la calidad de la pizza?'. El agente recupera las reseñas que coinciden y escribe una conclusión que señala que la respuesta es difícil de valorar solo con las reseñas. Luego el usuario pregunta '¿hay opciones veganas?' y el agente señala una pizza vegana mencionada en una reseña, citando los metadatos de la reseña. La respuesta depende de las reseñas del archivo, así que solo es tan buena como los datos.
Puntos clave
- La aplicación terminada responde preguntas sobre reseñas de restaurantes a partir de un CSV local. 0:00
- RAG significa recuperar información relevante de un archivo y dársela al modelo antes de que responda. 0:12
- Todo es gratuito y se ejecuta en tu propio ordenador: no necesitas ninguna cuenta de OpenAI ni en la nube. 0:24
- Las herramientas son Ollama (modelo local), LangChain (conecta las piezas) y ChromaDB (base de datos de búsqueda vectorial). 0:36
- La aplicación se ejecuta desde el símbolo del sistema con python main.py y sigue pidiendo preguntas hasta que escribas q. 0:59
Código de la pantalla
Title,Date,Rating,Review
Best pizza in town,2024-03-15,5,"The crust was perfectly crispy on the outside and chewy inside. Their signature pepperoni pizza had the perfect ratio of sauce to cheese, and the pepperoni curled up into little cups of deliciousness. Will definitely be back!"
Disappointed with service,2024-02-20,2,"While the pizza itself was decent, we waited over an hour for delivery despite being told it would be 30 minutes. When it finally arrived, it was barely warm. The flavors were good but the experience ruined it."Abre el archivo con cualquier editor de texto para ver las filas; no hace falta ejecutar código en este capítulo.
C:\Users\User\Desktop\Local Ai Agent>python main.py
--------------------
Ask your question here (q to quit):En una terminal dentro de la carpeta de tu proyecto, escribe python main.py y pulsa Intro.
Construye a la vez en la terminal de práctica
- Abre una terminal y entra en la carpeta de tu proyecto (el vídeo usa una carpeta llamada Local Ai Agent en el Escritorio). Deberías ver: Ahora el símbolo del sistema muestra la carpeta Escritorio.
$ cd Desktop C:\Users\User>cd Desktop C:\Users\User\Desktop>
- Ejecuta la aplicación con python main.py. El vídeo lo muestra como avance, así que puede que todavía no tengas el archivo; este paso muestra cómo se ve el programa terminado al arrancar. Deberías ver: El programa imprime una línea de guiones y espera tu pregunta.
$ python main.py -------------------- Ask your question here (q to quit):
Rómpelo a propósito
$ python main.py python: can't open file 'main.py': [Errno 2] No such file or directoryPor qué: Python solo puede ejecutar un archivo que exista en la carpeta en la que estás. Comprueba que hiciste cd a la carpeta del proyecto donde se guardó main.py.
$ cd Local Ai Agent The system cannot find the path specified.Por qué: Los nombres de carpeta con espacios deben ir entre comillas, así que usa cd "Local Ai Agent".
Ojo
- La aplicación no es un chatbot general: responde a partir de las reseñas del archivo, así que las preguntas que las reseñas no cubren tendrán respuestas débiles. 0:24
- Los modelos locales se ejecutan en tu propio hardware, así que las respuestas pueden ser más lentas que las de un servicio en la nube. 0:59
Práctica
Con tus propias palabras, explica qué significa generación aumentada por recuperación, usando como ejemplo las reseñas de pizzerías.
Solución
- Recuperación: encontrar en el CSV las reseñas que coinciden con la pregunta, por ejemplo, reseñas que mencionan vegano.
- Generación aumentada: entregar esas reseñas al modelo de lenguaje para que escriba una respuesta basada en ellas.
RAG primero busca en un documento los fragmentos relevantes para una pregunta (recuperación) y luego pasa esos fragmentos a un modelo de lenguaje que escribe la respuesta (generación). Por ejemplo, cuando se le pregunta por opciones veganas, la aplicación encuentra las reseñas que mencionan comida vegana y el modelo responde usándolas.
En tu bloc de notas
En tu cuaderno de notas, dibuja tres cajas con las etiquetas 'Reseñas CSV', 'Reseñas relevantes' y 'Respuesta del modelo', con flechas entre ellas. Escribe una frase debajo de cada flecha describiendo lo que ocurre.
Test
¿Qué usa la aplicación para responder preguntas sobre el restaurante?
- Solo su propio conocimiento integrado sobre pizza
- Reseñas relevantes recuperadas del archivo CSV, dadas a un modelo
- Una cuenta de pago de OpenAI en la nube
- Una búsqueda web en internet
Mostrar la respuesta
B. Reseñas relevantes recuperadas del archivo CSV, dadas a un modelo · La aplicación recupera las reseñas relevantes del CSV y se las pasa a un modelo local (RAG).
0:19 ver el momento¿Qué herramienta es la base de datos de búsqueda vectorial en este proyecto?
- Ollama
- LangChain
- ChromaDB
- Sublime Text
Mostrar la respuesta
C. ChromaDB · ChromaDB es la base de datos vectorial; Ollama ejecuta el modelo y LangChain conecta las partes.
0:08 ver el momento¿Cómo se sale de la aplicación?
- Pulsa Ctrl+Alt+Supr
- Escribe q en el indicador de preguntas
- Escribe exit en el archivo CSV
- Cierra la ventana de Sublime Text
Mostrar la respuesta
B. Escribe q en el indicador de preguntas · El indicador dice 'q to quit', así que escribir q termina el programa.
1:18 ver el momento
Lecciones 2–7
Se abren con Beyond Pass: todas las lecciones de todos los cursos, completas. Un solo pago: 14,99 $ por 90 días o 29 $ por un año. Sin suscripción.
Hecho por Beyond a partir del vídeo «How to Build a Local AI Agent With Python (Ollama, LangChain & RAG)» de Tech With Tim. El vídeo se reproduce en el propio reproductor de YouTube. Míralo en YouTube · Todas las lecciones
