Crea un agente de IA (OpenAI, LlamaIndex, Pinecone y Streamlit) | David Armendariz | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Crea un agente de IA (OpenAI, LlamaIndex, Pinecone y Streamlit)

teacher avatar David Armendariz

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      INTRODUCCIÓN

      1:46

    • 2.

      Configurar el entorno de desarrollo

      15:19

    • 3.

      Obtén una clave de API de OpenAI

      3:16

    • 4.

      Comprender LlamaIndex y RAG

      3:39

    • 5.

      ¿Qué son los agentes?

      5:04

    • 6.

      Incrustaciones vectoriales

      2:37

    • 7.

      Crea una herramienta para recuperar papeles de arXiv

      8:11

    • 8.

      Crea una herramienta para descargar papeles

      3:48

    • 9.

      Definir los modelos de integración y LLM

      3:40

    • 10.

      Crea el índice y guárdalo localmente

      11:55

    • 11.

      Crea la herramienta del motor de consultas RAG

      10:33

    • 12.

      Crea e interactúa con el agente

      9:03

    • 13.

      Descarga los documentos y busca nuevos

      5:15

    • 14.

      Mejora el aviso para descargar archivos

      7:39

    • 15.

      Crea una clase para administrar el índice

      6:13

    • 16.

      Crea una clase para interactuar con el agente

      4:53

    • 17.

      Crea una interfaz de usuario de chat con Streamlit

      13:34

    • 18.

      Obtén una clave API de Pinecone

      3:09

    • 19.

      Crea un administrador de índices para Pinecone

      11:29

    • 20.

      Uso del índice de pinecone en la aplicación Streamlit

      2:42

    • 21.

      Implementa la aplicación para simplificar la nube comunitaria

      5:31

    • 22.

      Conclusión

      0:53

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

502

Estudiantes

1

Proyectos

Acerca de esta clase

¿Estás listo para sumergirte en el mundo de la IA y crear agentes poderosos con herramientas de vanguardia? Este curso está diseñado para llevarte de cero a héroe en la creación de agentes de IA inteligentes con OpenAI, LlamaIndex, Pinecone y Streamlit. Tanto si eres un principiante en la IA como un desarrollador experimentado que busca expandir tus habilidades, este curso te ofrece todo lo que necesitas para crear aplicaciones de IA interactivas y del mundo real.

Qué aprenderás:

  • Cómo usar la API de OpenAI para generar respuestas inteligentes.

  • Crea y gestiona índices de conocimiento con LlamaIndex.

  • Almacena y recupera incrustaciones vectoriales con Pinecone para búsquedas eficientes en IA.

  • Crea interfaces de usuario interactivas para tus agentes de IA con Streamlit.

  • Mejores prácticas para integrar estas herramientas para crear soluciones de IA escalables.

¿Por qué tomar este curso?

La demanda de aplicaciones impulsadas por IA está en aumento vertiginoso y comprender cómo crear agentes de IA es una habilidad que cambia el juego. Este curso proporciona experiencia práctica y práctica con casos de uso del mundo real. Al final, habrás creado un agente de IA completamente funcional listo para implementarlo y mostrarlo.

Para quién es este curso:

  • Desarrolladores e ingenieros interesados en IA y aprendizaje automático.

  • Científicos de datos que buscan explorar herramientas impulsadas por IA.

  • Emprendedores e innovadores que desean crear aplicaciones impulsadas por IA.

  • Estudiantes y profesionales que buscan experiencia práctica en el desarrollo de IA.

¡Únete ahora y libera el potencial de los agentes de IA en tus proyectos!

Conoce a tu profesor(a)

Teacher Profile Image

David Armendariz

Profesor(a)

Hi! My name is David Armendariz. I am from Ecuador.

I studied mathematics at USFQ (Universidad San Francisco de Quito). However, I love coding and that's why I transitioned to the software industry. I love to share my knowledge here in Skillshare.

I hope you enjoy my courses as much as I enjoy doing them and remember: never stop learning!

Ver perfil completo

Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. INTRODUCCIÓN: Hola, y bienvenidos a este curso, construyendo un agente de IA con Open AI, índice Lama, cono de pino y streamlt Yo soy el Vidar Mendais y seré el instructor de este curso. ¿Quién soy yo? Tengo una licenciatura en matemáticas, una maestría en ciencia de datos y analítica, con enfoque en LMS Soy un ingeniero de software apestoso con más de seis años de experiencia Tengo certificación AW, certificación Ashur y soy un entusiasta de la ciberseguridad ¿Qué vamos a hacer en este curso? Crearemos un agente LLM basado en OpenAI GPT 40 El propósito del agente será encontrar y resumir trabajos de investigación desde la plataforma de archivo y utilizaremos el marco del índice Lama para aumentar la base de conocimiento del ¿Qué vamos a aprender en este curso? Va a aprender conceptos básicos de IA como incrustaciones vectoriales, índices vectoriales, recuperación de generación aumentada o RAC, plantillas de Crum, agentes de reacción, cómo optimizar las instrucciones de los agentes, bases de datos vectoriales, índice Lama para aumentar el conocimiento, necesidad de flujo para construir una interfaz de usuario e implementarla, y las mejores prácticas de ingeniería de Python y software y ¿Qué herramientas vamos a utilizar? El agente utilizará tres herramientas, un motor de consulta de rack para obtener información de una base de conocimiento, una herramienta de búsqueda de trabajos de investigación para investigar o encontrar información sobre artículos que no tenemos en nuestra base de conocimiento y una descarga en PDF si desea descargar documentos directamente en su Espero que les guste este curso porque disfruté mucho construyéndolo. Espero poder verte en la siguiente lección. Adiós. 2. Configurar el entorno de desarrollo: Hola y bienvenidos de nuevo. En esta lección, vamos a configurar el entorno de desarrollo. Algunas cosas que hay que tener en cuenta. Vamos a usar código VS como editor de código. Vamos a crear un GidHubrpo para compartir el resultado final contigo y vamos a usar PDM, que significa Python Dependencias Manager para gestionar las dependencias del proyecto Python para gestionar las dependencias del proyecto También vamos a necesitar una clave API de IA abierta para usar sus modelos. Entonces, ¿cuáles son las dependencias que vamos a tener en este proyecto Vamos a tener Archive, que es una biblioteca para descargar los papeles de la plataforma de archivo, python punto F para gestionar las variables de entorno. En este caso, vamos a tener la clave API OpenAI. Queremos que eso sea un secreto, así que por eso vamos a usar Python Mv. Vamos a usar Notebook porque vamos a usar Jupiter Notebook y también vamos a instalar el Lemma Index, que es el framework para ayudar a construir aplicaciones LLM Entonces esta es la parte aburrida del curso, pero tenemos que hacerlo. Vamos a github.com, y esta es mi Vas a tu cuenta de GitHub. Si no tienes uno, puedes crear uno, y vamos a crear un nuevo repositorio. Entonces el nombre del repositorio, voy a llamarlo Investigador de archivo. Puedes llamarlo como quieras. Vamos a hacerlo público que pueda compartir el resultado final con ustedes. Vamos a agregar un GID Ignore para un proyecto Python. Licencia, no y estas son solo apps que tengo. Probablemente si no tienes ninguna aplicación, esto no se va a mostrar para ti, sino simplemente haz clic en Crear Repositor Se crea un nuevo repositorio para mí. Voy a abrir una terminal, y voy a dar click aquí en código, y voy a copiar esta SSH Si no tienes una clave SSH, configura en tu cuenta de Gita, entonces deberías usar HTTPS, pero SSH es la forma recomendada de hacerlo Voy a copiar esto.Ve a la terminal y di git clone, y pega Entonces ahora tengo ese repositorio en mi máquina local y voy a abrir el código VS aquí Como pueden ver, tenemos el GTI ni, que es lo mismo que tengo aquí Si abro ese GTI ni, vas a encontrar muchas cosas que suelen ser ignoradas en un proyecto Python Entonces vamos a usar administrador de dependencias de Python cuando inicialicemos un proyecto con PDM, estas son las cosas que van a ser ignoradas Vamos a buscar PVM PVM Python. Entonces la URL es pdmpject.org. Si hago clic aquí, voy a ver el sitio web de PDM. PDM, como se describe, es un paquete de iPhone moderno y administrador de dependencias soporta los últimos estándares PEP Pero es más que un gestor de paquetes. Impulso su flujo de trabajo de desarrollo en diversos aspectos. El propósito principal de PDM es la resolución de dependencias, básicamente Porque cuando instalas paquetes, esos paquetes pueden depender de subpaquetes. Por lo tanto, los paquetes deben acordar qué versiones de subpaquetes tiene que instalar. Esa es básicamente la idea de resolución de dependencias PDM es una gran herramienta para gestionar eso Entonces, ¿cómo se instala esto? Antes que nada, necesitas Python 3.9 o posterior para ser instalado. Funciona en múltiples plataformas, incluyendo Windows, Linux y macOS. Como habrás notado, estoy usando macOS. Otra cosa que hace PDM es que puede administrar múltiples versiones de Python Entonces, por ejemplo, si quiero usar Python 3.10 o 3.11 o 3.12, puedo Vamos a ver cómo hacerlo en un momento. Pero quiero que vayas a la documentación y sigas los pasos para el método de instalación recomendado. Dice como PIP, PDM proporciona un script de instalación que instalará PDM en un Para Linux y Mac, solo tienes que copiar este comando y pegarlo en tu terminal. En Windows, puedes hacerlo con PowerShell. Pero si estás en Windows, recomiendo encarecidamente que uses el Subsistema Windows para Linux, que tengas un entorno Linux dentro de tu máquina Windows. Si no quieres hacer eso, si no estás familiarizado con el subsistema de Windows para Linux, entonces puedes instalar PDM con PowerShell Bien. Entonces después de hacer eso, deberías tener PDM en tu máquina También hay instrucciones si quieres desinstalar PDM, pero voy a decir que guárdalo. Es una gran herramienta. Entonces si voy a mi terminal y escribo PDM, me hago esto más grande Vas a ver que esto tiene muchas opciones. PDM ad es uno de los comandos que vamos a usar, y esto es para agregar paquetes a un archivo llamado Piroject punto Esto es similar al paquete Jason si vienes del mundo de No JS. PDM, otro comando que vamos a usar es PDM en él, y es para inicializar un proyecto Pipe que Tumel para un proyecto Pipe que Tumel Otro comando que vamos a usar que podemos usar es PDM Python, y eso es para administrar las múltiples versiones de Python que te estaba diciendo hace algún tiempo Entonces veamos, otro comando que es muy importante es PDM remove, que se utiliza para eliminar paquetes del proyecto Pi hasta TamelFle ¿Bien? Entonces veamos qué pasa si escribo PDM Python Entonces, si escribo PDM Python, tendré subcomandos adicionales El primero es list, y es para listar todos los intérpretes Python instalados con PDM Si escribo PDM Python list, verás que tengo estas cuatro versiones de Python instaladas en mi máquina 3.12 0.2, 3.11 0.5, 3.13 0.0, y 3.11 Ahora supongamos que quiero instalar una nueva versión de Python, puedo escribir PVM Python install debo especificar la versión de Python que quiero instalar Si escribo PDM Python Install Help, entonces vas a ver que tengo esta bandera de lista Déjame escribir esa lista de instalación de Python de PBM y vas a ver todas las versiones de Python que están disponibles Si solo escribo PDM Python Install como hice aquí, va a instalar la última versión que es Python 3.13 0.0 Pero supongamos que quiero instalar Python 3.12 0.7. Vamos a usar esa versión de Python en este proyecto y solo hacemos PDM Python Install y no tienes que escribir toda la app C Python Simplemente tecleas 3.12 0.7 y eso debería ser suficiente. Por lo que descargará esa versión de Python e la instalará y guardará el ejecutable en esta carpeta aquí. Ahora estamos listos para inicializar un proyecto PDM. Volvamos al código VS y vamos a teclearlo en el terminal PDM. Ahora bien, si hago esto un poco más grande, va a apuntalarme para elegir la versión de Python para usar en este proyecto. Voy a usar 3.12 0.7. Esa es esta opción aquí. Voy a tener la opción cuatro. Bien. Y eso va a crear esta carpeta llamada VENV, que es el entorno virtual Aquí es donde se van a instalar todos los paquetes, y luego me está preguntando ¿cuál va a ser el nombre del proyecto? Sólo puedo escribir Enter varias veces para mantener aquí los valores predeterminados. Bien. Por lo que crea un proyecto Pi que voltea pila. Nuevamente, si vienes del mundo NOJs, esto es similar a un archivo JSON de paquete Aquí puedes ver que tiene datos sobre el proyecto, la descripción del proyecto, los autores del proyecto, las dependencias, qué versión de Python requiere, etcétera Lo que vamos a hacer ahora mismo es instalar las dependencias que vamos a necesitar para este producto Para eso, voy a decir PDM en Archive, index, typon dot y Si escribo Enter, puedes ver que se está resolviendo para el entorno. Se está resolviendo todos esos sub paquetes que van a ser instalados. Y esto puede llevar un tiempo. Mientras tanto, quiero que se den cuenta en este archivo PDM Python Esto solo es decir que el ejecutable de Python para este proyecto está dentro de este archivo VENB Se puede ver que esto es muy específico para mi máquina. Por eso está en el GTI no. Cuando seleccionaste esa Python, GTI ni plantilla, ya tiene este archivo en la plantilla, por lo que ya se ignora Bien. Ahora veamos aquí qué está pasando. Ha pasado 1 minuto y todavía se está resolviendo para los paquetes. Ahora, hizo toda la resolución de dependencia. Resolvió 149 paquetes. Eso es mucho porque acabamos instalar cuatro de estos paquetes. Pero estos cuatro paquetes en total, utilizan entre bastidores 149 paquetes. Entonces PDM es lo suficientemente inteligente como para resolver todas las versiones para que no tengamos ningún conflicto en las versiones Todo se instaló correctamente, sin errores, y se creó este archivo de registro de puntos pdm Nuevamente, si vienes del mundo No JS, este es el paquete, el archivo de registro del paquete. Y esto contiene información sobre todas las dependencias, subdependencias que se instalaron Lo último que vamos a hacer, vamos a ver que vamos a crear un archivo EMV punto Y este archivo EMB va a contener nuestra API OpenAI. Vamos a empatar OpenAI ApiKey y aquí vamos a pegar nuestro APK de OpenAI Una estrategia o una mejor práctica es tener un archivo ATnbteample Entonces este ejemplo de EMB no va a estar en el GitKnt se puede comprometer de manera segura con el repositorio Simplemente ponemos la misma información que tenemos en el archivo EMV, pero sin los valores Aquí aún no teníamos el valor. Aquí nunca tendremos el valor. Esa es una buena práctica para que cualquiera que clone el repositorio sepa que, oye, tengo que tener un rey de API Open AI Eso es todo para esta lección. Espero que les guste y nos veamos en la siguiente lección. H 3. Obtén una clave de API de OpenAI: Hola y bienvenidos de nuevo. Antes de que lo olvidemos, obtengamos una clave API de Open AI. Vaya a open.com, vaya a productos y vaya a API Login. Cambian esto todo el tiempo. Si no tienes una cuenta Open AI, regístrate y si tienes una, entonces inicia sesión. Voy a iniciar sesión con mi cuenta. Y ve al tablero de instrumentos. Y ve a Claves API. En primer lugar, hay que tener habilitada la facturación. Así que ve a ajustes, ve a facturación en el método de pago aquí, y puedes poner $5. Creo que es lo mínimo. Así que no te olvides de hacer eso. Volvamos a Dashboard, claves API, y vamos a crear una nueva clave secreta. Entonces esto se va a llamar Archive y el proyecto, puedes alcanzarle estas claves API a los proyectos. No voy a alcanzarlo para un producto específico porque no tengo ningún proyecto. Entonces voy a usar un proyecto por defecto , y los permisos, puedes ser muy estricto y elegir lo que quieras, por ejemplo, solo para modelos, para audio, para terminaciones de chat, para incrustaciones No me voy a complicar. Sólo voy a decir, Oh, voy a crear la clave secreta y esta va a ser mi clave secreta. Obviamente, voy a borrarlo después de terminar de construir este curso. Nosotros ahora voy a copiarlo. Voy a volver al código Vs y en el archivo punto EMV, sólo voy a pegar eso Esa es la clave API que voy a usar antes de que nos olvidemos, hagamos un cómic. Vamos a teclear kit, tenerlo todo. Git commit y vamos a decir un proyecto inicializado con PDM y agrega dependencias Entonces podemos empujar estas cadenas. Bien. Ahora bien, si vamos a Github y actualizamos, vamos a ver que el archivo DotNB no está comprometido Elejemplo B está comprometido, pero eso no tiene nada. Entonces eso es seguro. De lo contrario, la gente verá tu clave API y eso va a ser malo. Bien, así que eso es todo para esta lección. Espero que les guste y nos veamos en la siguiente lección. 4. Comprender LlamaIndex y RAG: Hola y bienvenidos de nuevo. Entonces, ¿qué es el índice Lama En primer lugar, ¿cuál es el problema con LMS? Son geniales, pero están pre capacitados en grandes cantidades de datos disponibles públicamente. ¿Cómo aumentamos mejor el LMS con nuestros propios datos privados? Ahí es donde entra el índice de Lama. Necesitamos un conjunto de herramientas completo para ayudar a realizar este aumento de datos para LLM Entonces Lama Index ofrece conectores de datos para ingerir sus fuentes de datos existentes y formatos de datos como API, PDF, perros, incluso También proporciona formas de estructurar sus datos para que puedan ser fácilmente utilizados con LMS Vamos a ver que la forma más común de estructurar estos datos es a través de un índice vectorial, y también proporciona una interfaz de consulta de recuperación avanzada sobre sus datos. Puede encajar en cualquier mensaje de entrada LM, recuperar el contexto y la salida aumentada de conocimiento No podemos hablar de índice ama sin hablar de RAC. ¿Qué es Rag? El trapo es una generación aumentada recuperable Este es un enfoque en el procesamiento del lenguaje natural que combina la fuerza de dos componentes rey. Recuperación de información, que obtiene datos relevantes de un baase de conocimiento externo, base de datos o repositorio de documentos, y generación de texto, que está utilizando un modelo de lenguaje como OpenAIS, GPT cuatro Omni o lo que sea para generar texto humano basado en ¿Cómo funciona RAG? Primero, un usuario plantea una pregunta o consulta. Luego recuperamos documentos relevantes de una fuente externa y luego generamos una respuesta usando un modelo de lenguaje que usa la consulta del usuario, y el contexto de recuperación. Entonces, ¿por qué tenemos que usar RAG? Porque podemos tener acceso a información actualizada, permitiendo que los sistemas de IA incorporen conocimiento más allá de sus datos de entrenamiento. Mejora la precisión bajo las respuestas porque ahora las respuestas se basan en fuentes verificadas y recuperables y podemos tener adaptabilidad de dominio Podemos adaptar fácilmente el sistema a industrias o temas específicos vinculándonos a fases de conocimiento especializado. Esto es rack en una imagen. El primer paso es recuperar e ingerir estos documentos, pasarlos a través de un modelo de incrustación y almacenar esas incrustaciones en una El segundo paso es que el usuario plantea una consulta. Entonces esta consulta de usuario pasa por el mismo modelo de incrustación y luego vamos a buscar en la base de datos vectoriales, contexto o pasajes o documentos que son muy similares a la consulta que el usuario está planteando Cuando tengamos ese contexto, vamos a tener la consulta, el contexto, y algún prompt que vamos a diseñar. Vamos a pasar toda esta información al LLM, y el LLM va a generar una respuesta, y esa respuesta va volviendo al usuario Ese es Rag en pocas palabras. Espero que les guste este video. Nos vemos en la siguiente lección. 5. ¿Qué son los agentes?: Hola y bienvenidos de nuevo. Ahora hablemos de agentes. ¿Qué es un agente? Un agente es un motor automatizado de razonamiento y decisión. Toma una entrada del usuario y puede tomar decisiones internas para ejecutar esa consulta con el fin de devolver el resultado correcto. componentes del agente clave pueden incluir, pero no se limitan a, desglosar una pregunta compleja en preguntas más pequeñas, elegir una herramienta externa para usar, además de idear parámetros para llamar a esa herramienta, planificar un conjunto de tareas, almacenar tareas previamente completadas, un módulo de memoria, etc. Por lo que los agentes comparten cinco bloques de construcción fundamentales. Percepción, razonamiento, memoria, planeación y acción. El primer bloque de construcción es la percepción. percepción es la capacidad del agente para recopilar información sobre su entorno. Este objetivo implica procesar consultas de texto, analizar datos de sensores, interpretar imágenes o incluso leer tablas de datos estructurados de una base de Cuanto más efectivamente pueda percibir un agente , más rico es el contexto que puede entender Con una percepción más fuerte, los agentes pueden adaptarse mejor a los cambios y responder con precisión a las condiciones en evolución. Entonces tenemos razonamiento. razonamiento es donde el agente le da sentido a la información, ha percibido. Esto implica interpretar contextos, agitando diferentes opciones y formando conclusiones lógicas El razonamiento sustenta la inteligencia de un agente. Garantiza que el agente no solo reaccione ciegamente sino que evalúe escenarios para tomar decisiones informadas razonamiento avanzado a menudo implica aprovechar modelos de lenguaje grande u otros marcos de IA para comprender los matices de una situación determinada Memoria, memoria es la forma del agente de retener información relevante a lo largo del tiempo. Esto puede incluir contexto a corto plazo como la última solicitud del usuario y conocimiento a largo plazo, como una base de datos de interacciones pasadas o experiencia general de la industria. La memoria le da al agente una sensación de continuidad. En lugar de tratar cada interacción como una interacción aislada, el agente puede construir sobre experiencias previas, mejorando su precisión y conciencia del contexto a medida que avanza. Entonces tenemos planeación. La planeación es donde el agente decide qué pasos tomar para lograr sus metas. Podría desglosar tareas complejas en pasos más simples, secuenciarlas en un orden óptimo y anticipar posibles bloqueos de carreteras planificación asegura que el agente no solo esté reaccionando a una solicitud a la vez, sino trazando proactivamente un camino hacia objetivos a más largo plazo Esto es crucial para tareas como la optimización de la cadena de suministro o gestión de proyectos o cualquier otro escenario donde las acciones tomadas ahora tengan aplicaciones futuras. Tenemos acción. La acción es la ejecución real de las decisiones del agente. Por ejemplo, enviar un correo electrónico, ajustar los niveles de inventario, recomendar un producto o realizar una operación a nivel de sistema Sin acción alguna, se desperdiciará toda la percepción, memoria de razonamiento y planeación en el mundo. acción cierra el bucle y permite que el agente tenga un impacto tangible en su entorno, entregando un resultado del mundo real. ¿Cómo trabajan juntos entonces? La percepción ajusta al agente con datos. memoria almacena y recuerda información útil tanto del pasado inmediato como lejano. razonamiento utiliza esos datos y contexto para formar un plan, y el plan traza los pasos necesarios para lograr los objetivos del agente y la acción ejecuta en esos pasos creando valor medible Hay toneladas de casos de uso. Cualquier cosa puede ser un agente hoy en día. Contamos con agentes de ingeniería de software, agentes telefónicos de IA, agentes de ventas, agentes de investigación. Eso es lo que vamos a hacer ahora mismo. Jefe de personal de IA que puede agilizar las operaciones diarias, eso es una locura. Asistentes de investigación de venta, agente contador de personal, mes y cierre asistente de IA Hay muchos casos de uso que los agentes pueden tener hoy en día. ¿Cómo funcionarán los agentes de IA en la práctica? Bueno, hay que entrenar al agente de IA. Tienes que proporcionar tu caso de uso, datos y libro de jugadas para adaptar las capacidades de la IA a tus necesidades específicas Ingrese datos como transcripciones, grabación de llamadas, facturas, criterios de calificación y objetivos clave para una adaptación precisa Después hay que configurar los flujos de trabajo y las integraciones. Tienes que alinear al agente de IA con tus herramientas y procesos existentes. Por ejemplo, configurar integraciones de SIMD con CRM , calendarios y sistemas comerciales mientras define acciones, alertas y protocolos de escalación que coincidan con los requisitos de su equipo Entonces hay que desplegar y administrar las operaciones. Tienes que lanzar el agente de IA para manejar las operaciones de forma autónoma, realizar un seguimiento de su rendimiento a través de métricas en tiempo real, evaluar resultados y refinar procesos para lograr resultados óptimos 6. Incrustaciones vectoriales: Hablemos de incrustaciones vectoriales. Las incrustaciones vectoriales son representaciones numéricas de datos. Los datos pueden ser texto, imágenes o audio en un espacio de alta dimensión. Eso quiere decir que son vectores con una dimensión fija. Cada dato se convierte en un vector y captura su significado, contexto o característica. Cómo funciona elementos similares se representan como vectores más cercanos entre sí. Así es como habilitas una comparación fácil. Por ejemplo, la palabra rey y reina tendrá vectores que están muy juntos reflejando su similitud semántica ¿Cómo se mide esa similitud? Bueno, hay diferentes métricas que puedes usar, como el producto punto o la similitud de coseno ¿Qué son los índices vectoriales? Son estructuras de datos que organizan estas incrustaciones vectoriales para una búsqueda y recuperación eficientes Permiten que los sistemas de IA encuentren rápidamente los puntos de datos más relevantes en función de medidas de similitud como similitud de coseno o producto de puntos, estas métricas de las que estaba hablando Escupen grandes conjuntos de datos queering y permiten la recuperación escalable en tiempo real de información relevante Para generar estos vectorumbeddings, necesitamos En este curso, vamos a utilizar el texto incrustando tres grandes, que es un modelo avanzado de incrustación desarrollado por Open AI Está diseñado para transformar texto en representaciones vectoriales de alta dimensión, capturando el significado semántico de la entrada como ya explicamos ¿Cuáles son las características clave de este modelo de incrustación? Puede generar representaciones de alta calidad. Produce incrustaciones que capturan de manera efectiva el contexto, las relaciones y el significado dentro del texto Es versátil, es adecuado para una amplia gama de tareas como recuperación de información, búsqueda de similitud y agrupación, y la dimensionalidad que pone vectores densos y de alta dimensión optimizados para tareas posteriores Espero que les guste esta lección en la siguiente. 7. Crea una herramienta para recuperar papeles de arXiv: Entonces comencemos a codificar. En primer lugar, vamos a crear una pila de herramientas. Desde el terminal, las herramientas táctiles puntean PY. En este módulo, vamos a utilizar la biblioteca Archivo. Entonces, si vamos a la documentación de la biblioteca Archive, verás que Archive es solo un wrapper de Python para la API de archivo. Entonces Archive ya tiene una API y esta biblioteca es solo un wrapper para usar esa API de una manera más sencilla. Entonces, ¿cómo lo instala con PIP? Lo hicimos con PDM. Importamos Archivo. Entonces hagámoslo. Archivo de importación. Y luego podemos obtener resultados construyendo primero el cliente API predeterminado Construyamos ese cliente. Entonces, por ejemplo, podemos buscar los diez artículos más recientes que coincidan con la palabra clave quantum. Entonces solo buscamos eso y podemos iterar sobre esos resultados Results es un generador, por lo que podemos iterar sobre sus elementos uno por uno Y también hay una documentación de sintaxis de consulta avanzada y nos dice que veamos el manual de usuario de Archive API, que es este enlace aquí, y la consulta puede ser algo así. AU significa autor. Si no me equivoco, y TI no lo sé. Vayamos a ese enlace y veamos esos prefijos. AU significa, TI significa título, ABS, resumen, comentario, etcétera Si queremos buscar todas estas cosas al mismo tiempo, solo decimos todas así que eso es lo que vamos a hacer en nuestra función. Sólo vamos a usar y columna algún tema. Eso es lo que vamos a hacer. Empecemos a codificar. Vamos a definir esta función llamada fetch archive papers, que va a tomar dos parámetros El primero es el título o la consulta, cualquiera que sea el segundo parámetro va a ser el recuento de papeles. Cuántos papeles queremos traer. Entonces la consulta de búsqueda va a ser toda columna, y el título. Esa va a ser nuestra consulta de búsqueda. Entonces vamos a hacer esto. No sé por qué esto no está sangrando por sí mismo. Entonces, una cosa que tenemos que hacer es seleccionar el intérprete de Python. Voy en Mac es Command Shift pin en Windows, creo que es Control Shift pin y vamos a tocar aquí seleccionamos intérprete y vamos a seleccionar este archivo punto V&V Ahora tiene más capacidades, el editor de código porque sabe que estamos usando este entorno virtual. Esta consulta no va a ser cuántica, va a ser consulta de búsqueda. El resultado máximo no va a ser diez, va a ser el recuento de papeles este parámetro va a ser pasado o construido por el agente. Eso lo vas a ver en acción en algunas lecciones y luego ordenar por la fecha de envío. Eso está bien. Ahora vamos a inicializar una matriz vacía de papeles y vamos a um obtener los resultados Cliente de resultados que busca resultados. Ahora tenemos un generador y vamos a iterar sobre cada uno de los resultados Para obtener resultados, nuestra información en papel va a ser un diccionario con un título. Resultado ese título Mira este título de resultado y esto tiene más cosas. ¿Cómo sabemos cuál es el resultado? ¿Qué otros atributos tiene? Bueno, si pasamos el cursor sobre resultado, podemos ver que es de tipo resultado. ¿Cuál es el resultado del tipo? Bueno, podemos Control clic o Comando haga clic en el módulo de archivo aquí con Comando F o Control F aquí en Windows, podemos buscar documento, lo siento, no para documento por resultado. Entonces tenemos que ensuciarnos las manos aquí y se puede ver que esta es la definición de resultado. Tiene un ID de entrada, que es la URL, la actualizada, cuándo se actualizó por última vez el resultado , la publicada, cuando el resultado fue publicado original, título, los autores, que es una lista de autores, el resumen, que es una cadena, comentario, autores comentan para presentar, revista rev, el juguete, etcétera Veamos qué es este autor. Autor es otra definición de tipo que solo tiene el nombre como atributo. Con toda esta información, vamos a obtener más atributos. El segundo atributo va a ser resumen, resolver ese resumen. También vamos a obtener el resultado publicado que publicó. Vamos a conseguir el ref de la revista, vendimos el ref de la revista, vamos a conseguir el Di, resolvemos que Di A obviamente tienes el auto completado desde el editor de código. Vamos a tener la categoría primaria, la categoría primaria. Vamos a tener las categorías, resolvemos esas categorías, y también el copiloto de GitHub me está ayudando mucho Resolvemos esa URL PDF, y el Archivo Archivo, resultó Archivo, URL, y no el archivo. Es el ID de entrada y los autores, que va a ser una matriz, nombre de punto de autor para autor en autores resultantes. Recuerda que esta era una lista de autores. Esa va a ser nuestra información de papel, y vamos a agregar esta información de papel a la lista de papeles Tinta de papel de pluma. Por último, vamos a devolver todos los papeles. Esta es nuestra sencilla función para buscar documentos de archivo, y como verán, esta va a ser también una herramienta para el agente Eso es lo que vamos a hacer para esta lección. Espero que les guste. Nos vemos en la siguiente lección. 8. Crea una herramienta para descargar papeles: Hola y bienvenidos de nuevo. Ahora vamos a codificar nuestra segunda herramienta. Como puedes ver, estas son solo funciones de Python, por lo que son muy fáciles de codificar. Esta segunda función va a ser una herramienta de descarga PDF, que va a recibir una URL PDF, que va a ser una cadena y un nombre de archivo de salida, que va a ser así como cadena. Para ello, vamos a utilizar la biblioteca de peticiones. Para hacer una solicitud para descargar el PDF, y también vamos a usar la biblioteca del sistema operativo para crear un directorio si no existe porque queremos organizar nuestro proyecto. Entonces vamos a, antes que nada, tratar de crear un directorio llamado papers. Y si ya existe, entonces no lo cree. No tires un error, vive con él. ¿Bien? Y aquí, vamos a poner el pase de aceptar. Vamos a especificar la capa de error. Ahora vamos a declarar la ruta de salida completa, y vamos a decir OS, la ruta, la unión, los papeles y la presentación de salida. Esa va a ser la ruta de salida completa, la carpeta papers concatenada con el archivo de salida Entonces vamos a obtener una respuesta usando la biblioteca de solicitudes, vamos a hacer una solicitud GET a la URL del PDF. Y si hay algún error, vamos a plantear. Elevar para estatus. Entonces este método solo genera un error H TTP si se produce uno. En la excepción, lo que vamos a hacer es aceptar peticiones punto excepción, punto request exception como E. Vamos a devolver las cadenas y error, y vamos a imprimir ese error. Si no pasa nada, entonces vamos a abrir la ruta de salida completa con los permisos correctos, WB, y vamos a nombrar ese archivo y vamos a que tenemos el contenido del punto de respuesta. Y tenemos que devolver algo. Tenemos que devolver cadena diciendo PDF descargado con éxito y nos salvó y vamos a poner aquí la ruta de salida completa. ¿Bien? Entonces como puedes ver, esta es una función de Python muy, muy simple que simplemente descarga algo. Se puede descargar un papel, se puede descargar adyacente, lo que sea. En este caso, sólo vamos a descargar el papel desde la URL del PDF. Eso es todo para este video. Muy, muy sencillo. Espero que te guste y te vea en la siguiente. 9. Definir los modelos de integración y LLM: Bien, así que sigamos codificando. Vamos a crear un nuevo archivo llamado constantes en el terminal, toque Constance En este archivo, vamos a declarar el modelo embed y el modelo LM para reutilizarlo cuando construimos el índice y cuando construimos el agente. En primer lugar, vamos a llamar a la función Load dot M. Primero, vamos a importar desde el punto de carga DoTM de carga. Lo que esto hace es cargar toda la variable de entorno desde el archivo ENB Ahora podemos acceder a la ApiKey OpenAI con el módulo OS. Vamos a importar y dejar que Github Copilot me ayude a escribir este os dot OpenAI APK Coincide con este bonito. Ahora vamos a decir que el modelo de incrustación va a ser una incrustación de IA abierta y vamos a importar eso de las incrustaciones de puntos de índice de Plama OpenAI, abrir AI desde allí, y me faltan incrustaciones Abra la incrustación de IA y también el tipo de modelo de incrustación de IA abierta. Tenemos algo más. Embebido, no, este no No necesitamos esto. Sólo necesitamos a estos dos. Vamos a crear una instancia de la incrustación de IA abierta Vamos a pasar la clave API, que va a ser la clave APN de IA abierta, y el modelo va a ser de tipo de modelo de incrustación de IA abierta Mira esto, tenemos a Ava, Baba Cree, DaVinci. Se trata de modelos muy antiguos. Los más nuevos son empotrar Ada 002 incrustar tres pequeños y cama tres grandes. Vamos a usar el embed tres grandes. Y para el modelo LM, voy a importar desde Lama index dot OpenAI, Import Open AI Vamos a crear una instancia de IA abierta. Nuevamente, tenemos que pasar la clave API, que va a ser nuestra IA, I API key, y el modelo, que en este caso va a ser string, y va a ser GPT para mini Bien, entonces estos son los dos modelos de Open AI que vamos a utilizar. Quiero que te des cuenta de algo. Cuando importamos cosas de incrustaciones y de LLM, solo teníamos la opción Open AI Eso es porque por defecto, Lama Index solo tiene ese plugin por defecto, solo las cosas de IA abiertas Pero si quieres usar, por ejemplo, coágulo o Mistral AI o lo que sea, entonces Lama tiene todos estos conectores que platicamos en esta diapositiva, pero hay que instalarlos Espero que les guste este video. Nos vemos en la siguiente. 10. Crea el índice y guárdalo localmente: Hola y bienvenidos de nuevo. Ahora estamos listos para construir el índice. Para construir el índice, vamos a crear un cuaderno Júpiter llamado build Index, el terminal, touch build index IPYNB Genial. En primer lugar, vamos a agregar una celda. Y aquí, si no tienes el VENV, puedes dar click. Probablemente te dirá seleccionar kernel aquí y vas a elegir en VENB cual es el entorno virtual, perdón por este proyecto Asegúrese de que el punto VENV esté seleccionado. Entonces, antes que nada, vamos a construir nuestro índice. Eso significa nuestra base de conocimiento. Eso será ponencias de un tema específico. Que ya los tenemos en nuestra base de datos o repositorio. Entonces antes que nada, desde las herramientas, vamos a importar los papeles de archivo de búsqueda y vamos a buscar algunos El tema va a ser o el título, modelos de lenguaje, es decir modelos de lenguaje. Queremos aprender sobre modelos de lenguaje, y el recuento de artículos va a ser de diez. Bien. Puedes descargar 100 papeles si quieres. El tamaño o el número de papeles no importa. Recuerde, los índices se construyen para manejar consultas en grandes conjuntos de datos. Bien, entonces vamos a ejecutar la celda, y vamos a imprimir los títulos de los papeles que recuperemos. Así papel, título o papel en papeles. Entonces estos son los papeles que traemos que están relacionados con los modelos de lenguaje Bien, ahora que tenemos esto, vamos a crear una función llamada create Documents a partir de papeles. ¿Y qué es exactamente un documento? Bueno, eso es solo una interfaz genérica para un documento de datos. Entonces este documento simplemente se conecta a fuentes de datos. Vamos a pasar texto que va a contener la información del título del artículo, de los autores del resumen de lo publicado, de la referencia de la revista, DOI, la categoría primaria, las categorías, la URL del PDF y la URL del archivo Vamos a poner toda esa información en una sola cadena y luego vamos a pasar esa sola cadena a esa sola cadena a la interfaz de documentos del índice Lama En primer lugar, desde Lama index dot core, vamos a importar el documento, y luego vamos a crear documentos a partir de papeles, y vamos a pasar la lista de papeles En primer lugar, vamos a inicializar una lista vacía y luego vamos a iterar sobre estos papeles Entonces el contenido va a ser una sola cadena con la información del título, y voy a dejar copiloto de Github haga el trabajo aburrido aquí Los autores van a ser una lista de autores separados por una coma Recuerda, autores es una lista. ¿Recuerdas esto? Es una lista. También vamos a poner el resumen vamos a poner la información publicada. Vamos a poner la referencia de revista, referencia revista. Vamos a poner al Di la categoría primaria. Las categorías también es lista. Aunque aquí no hicimos ningún procesamiento de esa lista, solo ponemos eso y miramos esto. Todas las categorías de resultados, es decir, una lista de cadenas. Podemos unir todas esas cadenas mediante este comando. Vamos a tener el PDF UL y también la URL del archivo. Que esta vez Githukpilot fallan. Oh, no, no falló. Es URL de archivo. Sí, URL de archivo. Bien, genial. Entonces ahora tenemos nuestra cadena. Lo que vamos a hacer ahora es agregar el contenido a un documento Y el documento desapareció, la importación desapareció porque tengo una configuración que elimina los documentos no utilizados guardar. Bien. Entonces vamos a traerlo de vuelta y decir que el texto va a estar contento. Y obviamente tenemos que devolver esta lista, bien. Y ahora llamemos a esa función. Digamos documentos, secuela para crear documentos a partir de papeles, papeles Bien. Y veamos esta lista. Entonces esta lista es una lista de este objeto de documento, y cada objeto de documento tiene un ID. Aún no tiene una incrustación. Tiene metadatos vacíos. Esto puede ser útil en muchas aplicaciones que tienen metadatos, pero no estamos configurando ningún metadato en este documento. Aunque si quieres, puedes poner metadatos aquí y poner cualquier diccionario Python aquí. Una información que desee. Déjame cerrar esto otra vez. También tiene más atributos, pero el que nos interesa es el recurso de texto, recurso medios, texto, y esta es la cadena que construimos. Se puede ver que puede ser una cuerda muy larga. Bien. Entonces ahora que tenemos esto, vamos a construir nuestro índice. Entonces, ¿cómo hacemos eso? Primero importemos desde ama index dot core. Vamos a importar la configuración, y vamos a importar vectores almacenar índice. También a partir de constantes, vamos importar el modelo embed porque recuerde, necesitamos pasar el texto a través de un modelo embed Bien. Entonces, antes que nada, vamos a decir ajustes tamaño de trozo va a ser igual a 1024 configuraciones Chunk overlap igual a 50 Voy a explicar qué es esto en un momento. Permítanme primero crear el índice. Voy a decir vector store index a partir de documentos. Vamos a pasar la lista de documentos y el modelo embed va a ser el modelo embed que instanciamos en esa constante Recuerda que esto es texto incrustar tres grandes. Bien, entonces, ¿cuáles son estos tamaños de trozo y superposición de trozo? Bien, entonces tamaño de trozo establece la propiedad de tamaño de trozo en este número Eso significa que los datos, el texto aquí serán procesados en trozos de 1024 unidades En este caso, unidades significa caracteres. Si por ejemplo, este texto tiene 2080 lo siento, 2048 caracteres, entonces se va a dividir en dos trozos, pero no del todo porque tenemos esta otra configuración llamada El solapamiento significa que habrá un solapamiento de 50 unidades entre trozos consecutivos Esto puede ser útil para garantizar la continuidad entre fragmentos al procesar datos Eso significa que un trozo puede tener algún contexto del trozo consecutivo y viceversa Por lo que estos dos ajustes son muy importantes. Se llaman hiperparámetros porque estos pueden ser 128 si quieres mantener más contexto, pero vas a tener más fragmentos Entonces estos son buenos valores por defecto para estas dos propiedades. Ahora que tenemos esto, ya tenemos nuestro índice. Genial. Entonces, detrás de escena, esto en realidad está llamando la API OpenAI para convertir todos estos en vectores Está usando el texto incrustando tres grandes modelos de incrustación. Convierte todo en vectores. Ahora, podemos almacenar este índice usando el contexto de almacenamiento, ese método persisten, y vamos a almacenar esto en una carpeta llamada index. Derecha. Ahora tenemos esta carpeta de índice con todos estos archivos JSON, y esto es algo que probablemente queramos tener en el Git Ignore. Entonces agreguemos el índice aquí en el Getting porque esto es dinámico. Si buscas otra cosa, el índice obviamente va a cambiar. Eso es todo para construir un índice. Se puede ver que con el índice de Lama, esto es muy fácil. Este índice obviamente es un índice local. Podemos usar un índice basado en la nube como Pine Cone, servicio como piñecone, o podemos usar herramientas más sofisticadas como Chroma TB, que también es una base de datos vectorial local, pero tenemos que implementar Hay otros servicios, servicios en la nube como Vate para almacenar estos índices en la nube Utilizan AWS detrás de escena o GCP. Pero por ahora, vamos a almacenar el índice localmente en esta carpeta. Espero que les guste este video y nos veamos en la siguiente lección. 11. Crea la herramienta del motor de consultas RAG: Hola y bienvenidos de nuevo. Ahora vamos a empezar a construir el propio agente. Vamos a crear otro archivo llamado agente IPYNV. Esta vez, aquí hay que seleccionar el kernel. Recuerda, selecciona VENV. Genial. En primer lugar, vamos a cargar nuestro índice desde el almacenamiento. Eso es lo primero. Todo lo que se almacene en estos archivos JSON, vamos a cargar eso. Lama Index tiene un método llamado índice de carga del almacenamiento. Entonces desde Lama index dot core, vamos a importar el contexto de almidón y el índice de carga del almacenamiento Necesitamos importar el modelo embed para que este contexto starch sea storge context desde los valores predeterminados, y el directorio persisten va a ser index Ahora podemos cargar el índice con este índice de carga desde el almacenamiento. Pasamos el contexto de almacenamiento y pasamos el modelo embed. Genial. Ahora tenemos nuestro índice nuestro índice local cargado. Lo que vamos a hacer ahora es construir un motor de consultas para. Vamos a ver cómo funciona esa herramienta de motor de consultas entre bastidores. Desde Lama index.co dot tools, vamos a importar el motor de consultas También vamos a importar de las constantes el modelo LLM Entonces el motor de consultas va a ser el índice, pero este índice tiene un método llamado como motor de consulta. Tenemos que pasar el modelo LLM, que en nuestro caso va a ser GPT cuatro Omni, y podemos pasar otro parámetro llamado Top K, similitud, top K, y vamos a decir cinco. Vamos a recuperar máximo cinco vectores cuando enviemos una consulta, vamos a encontrar un máximo de cinco vectores similares. Ahora vamos a definir la herramienta RAC como una herramienta de motor de consultas Y nuevamente, la importación desaparece, así que tenemos que volver a hacerlo. Herramientas principales, motor de consultas de importación a. De los valores predeterminados, y los predeterminados van a ser el motor de consultas También tenemos que proporcionar el nombre de esta herramienta. Entonces el nombre va a ser investigación, herramienta de motor de consultas. Y también es una buena práctica darle una descripción. Y esta descripción va a ayudar al agente a saber de qué se trata esta herramienta. Entonces voy a decir que este es un motor de trapo con trabajos de investigación recientes Entonces esta es la herramienta que el agente va a utilizar para obtener información en para obtener información en nuestra base de datos existente o en nuestro repositorio existente Ahora quiero que muestres quiero mostrarte las indicaciones que este motor de consultas utiliza detrás de escena Por defecto, Lama Index utiliza un prompt refinado antes de devolver una respuesta Y vamos a aprender más sobre esto en un momento. En primer lugar, permítanme importar desde IPython esa pantalla. Voy a importar rebajas y mostrar. Estas son solo funciones de utilidad para ver las cosas un poco más agradables aquí en la pantalla Voy a definir este diccionario de solicitud de visualización, y voy a pasar el diccionario de solicitud para el prompt de clave y el prompt digt que los elementos Voy a mostrar algunas rebajas aquí. El rebajas va a ser la clave prompt. Y todo esto va a tener sentido en un momento. Sólo tengan que aguantar conmigo. Y le pido que obtenga plantilla. Ahora que hemos definido esta función, vamos a decir que el diccionario de prompts va a ser el motor de consultas que obtenga prompts, y vamos a mostrar los Bien. Motor de consultas. Bien, no hemos ejecutado esta celda. Bien. Aquí está. Entonces este motor de consultas que definimos aquí tiene dos prompts. La primera es esta plantilla QA de texto sintetizador de respuesta, y la segunda es esta plantilla de refinamiento de sintetizador de respuesta refinamiento de sintetizador Entonces, cuando recuperemos la información relevante, un pedazo de información, va a usar el fragmento más relevante Derecho Va a responder a la pregunta o cualquier consulta que publique el usuario usando ese trozo y usando esta plantilla La información de contexto está a continuación. Y dada la información de contexto y no conocimiento previo, responder a la consulta. La consulta es lo que nosotros como usuario ponemos y la respuesta es la respuesta LLM Después de que tenga una respuesta, va a iterar sobre los otros fragmentos, los otros datos relevantes Porque recuerden, vamos a tener cinco de estos como máximo cinco, con los otros cuatro, va a usar esta plantilla aquí. La consulta original es la siguiente. Hemos proporcionado una respuesta existente por lo que esta es la respuesta de este prompt aquí, tenemos la oportunidad de refinar la respuesta existente solo si es necesario con algunos contextos más abajo. Este contexto va a ser otro trozo, otro dato relevante Dado el nuevo contexto, afinar la respuesta original para responder mejor a la consulta. Si el contexto no es útil, devuelve la respuesta original. Esto se llama modo de respuesta en índice de Lama y tenemos esta documentación aquí modo de respuesta por defecto se refina, crea y refina la respuesta pasando secuencialmente a través cada fragmento de texto de recuperación y esto hace una llamada LLM separada para nodo o fragmento de recuperación Los detalles, el primer trozo se utiliza en una consulta usando la plantilla qa de texto Usando esta plantilla aquí, usando el fragmento más relevante es el LLM va a recuperar una respuesta Luego, la respuesta y el siguiente fragmento así como la pregunta original, están usando una consulta con el prompt de plantilla refinada y así sucesivamente hasta que se hayan analizado todos los fragmentos Con los trozos consecutivos, va a usar esta plantilla aquí y va a tener una respuesta refinada Si un fragmento es demasiado grande para caber dentro de la ventana, considerando el tamaño del baile de graduación, se divide usando un divisor de texto token Permitiendo cierta superposición de texto entre fragmentos, y los nuevos fragmentos adicionales se consideran como trozos de la colección de fragmentos originales Esto es sólo si el trozo es demasiado grande. Hay otro modo de respuesta llamado compacto. Entonces el compacto, similar a refinar, pero compacto concatena los fragmentos de antemano, resultando en menos Entonces, en lugar de pasar los otros cuatro fragmentos por separado, va a fusionar todos esos otros cuatro fragmentos y ejecutar este prompt con esos contenidos Entonces esto es muy importante que entiendas lo que sucede detrás de escena. Un agente tiene la capacidad de corregirse a sí mismo mediante el uso de esta técnica creativa refinada. Vamos a mantener este enfoque, y vamos a terminar la lección aquí. Espero que les guste y nos veamos en la siguiente lección. 12. Crea e interactúa con el agente: Hola, y bienvenidos de nuevo. Ahora vamos a definir las otras dos herramientas que va a utilizar la agencia. Importemos desde las herramientas, el PDF de descarga y los documentos de archivo de búsqueda Para definir estas herramientas, vamos a importar desde Lama herramientas de cordón índice Vamos a importar herramienta de función. Y vamos a definir la herramienta de descarga PDF, que va a ser una instancia de esta herramienta de función, y tenemos que pasar la función en sí, que es descargar PDF. Tenemos, de nuevo, para darle un nombre. Entonces voy a llamar a esta herramienta de descarga de archivos PDF, y también tenemos oh, lo siento, herramienta de función de los valores predeterminados. Y también tenemos que darle una descripción. Es una buena práctica darle una descripción. Entonces voy a decir que esta es una función de Python. Que descarga archivo PDF por link. Esa es nuestra herramienta de descarga de PDF y también vamos a definir otra herramienta llamada la herramienta Archivo FEG, que va a ser lo mismo Pasamos la función PE Archivar papeles, darle un nombre, buscar de Archivo Y te vamos a dar la descripción diciendo descargar el que podemos poner aquí Max PursultSCENT ponencias respecto al tema Podemos poner ese marcador de posición ahí desde Archivo. C. Y tenemos que cerrar esto. Bien, entonces ahora que hemos definido estas dos herramientas, vamos a crear una nueva celda, y vamos a crear el agente. Entonces desde Lama index dot core, ese agente, vamos a importar un agente de reacción Entonces tenemos múltiples cosas aquí, vamos a crear una instancia de un agente de reacción. ¿Por qué reaccionar? Porque va a Este agente opera en dos etapas principales. La primera etapa es el razonamiento, por lo que recibe una consulta, el agente evalúa si tiene suficiente información para responder directamente o si necesita una herramienta, y luego actúa Si el agente decide usar una herramienta, la ejecuta y luego vuelve a la etapa de razonamiento para determinar si ahora puede responder la consulta o si necesita más herramientas Entonces es tan fácil como decir reaccione agent de las herramientas. Y pasar una lista de herramientas. Así que descarga PDF dos, herramienta Rack, y busca Archivo dos Tenemos que proporcionar un LM que este va a utilizar. Vamos a pasar nuestro modelo LM, GPT 40 Mini. Por último, pero no menos importante, vamos a decir Vervos cierto para que sepamos lo que está pasando detrás de escena, todos los registros que tira este agente. Y eso es todo. Ahora hemos creado un agente. Para que podamos empezar a platicar con nuestro agente. Para ello, vamos a necesitar una plantilla de consulta. Vamos a crear una plantilla de consulta, y probablemente vamos a refinar esto en futuras lecciones. Entonces esto va a decir, me interesa algún tema, ¿verdad? Encuentra trabajos en tu base de datos de conocimientos relacionados con este tema. Utilice la siguiente plantilla para consultar papel de investigación, herramienta de motor de consultas para. Voy a decir proporcionar título, el resumen, autores y enlace para descargar cuatro trabajos. Déjame ver cuatro ponencias relacionadas con el tema. Periodo. Tengo Whoops. Y voy a decir, si no los hay, ¿ podrías ir a buscar el reciente de Archivo De Archivo. Bien. Entonces, esta es una plantilla de consulta que he escrito vamos a ver si esto funciona. Vamos a crear un nuevo yo y decir que la respuesta es igual al agente que charla. Vamos a pasar la plantilla de consulta y vamos a formatear para darte el tema. El tema va a ser los modelos multimodelo. Espero de esta lista de ponencias que, por ejemplo, se vayan a recuperar modelos multimodelo. Y probablemente algo más. Pero no sé qué otros papeles van a ser recuperados porque este es solo el título. Y recuerda estas búsquedas para el resumen, tiene resumen, tiene categorías y todas esas cosas. Entonces probablemente va a buscar otros papeles también. Así que vamos a ejecutar esto, y se puede ver que la salida está diciendo paso de ejecución y este ID, el paso de entrada es la plantilla de consulta con el tema, que es modelos multimodales. Ahora el pensamiento del agente es el idioma actual del usuario es el inglés. Necesito usar una herramienta que me ayude a responder la pregunta. Entonces, la acción que va a tomar, va a utilizar el trabajo de investigación, la herramienta del motor de consultas, y la entrada va a ser esta, proporcionar el resumen del título, los autores y el enlace para descargar para trabajos relacionados con modelos multimodales Entonces, lo que esto está haciendo es usar este motor de consultas. Recuerde, el motor de consultas utiliza GPT cuatro omni, tiene la capacidad de dar una respuesta siguiendo esta plantilla aquí Siguiendo o dando el título resumen autores y enlace para descargar el trabajo. La observación es que volverá. Todo esto es generado por GPT 40 M. Se trata de dar el título, el resumen, los autores, y la URL del PDF Podemos visualizar mejor esta respuesta usando esta clase Markdown. Voy a decir Markdown, respuesta punto respuesta. Bien. Ahora podemos visualizar esto mejor. Esta es la respuesta de GPT 40 Mini. Simplemente me dio una lista de cuatro papeles. Esto es genial. En esta lección, vamos a terminar aquí. En la siguiente lección, vamos a ver si puede descargar todos estos trabajos. Espero que les guste. Nos vemos en la siguiente lección. 13. Descarga los documentos y busca nuevos: Hola y bienvenidos de nuevo. Ahora, en esta lección, vamos a descargar todos estos trabajos. El agente, recuerda una de las características del agente es que conserva la memoria de las tareas que ya estaban completadas. Dado que el agente conserva este historial de chat, podemos solicitar luego cargar los papeles sin mencionarlos explícitamente. Bien. Así que vamos a escribir en este nuevo agente de respuesta celular que charla y decirle al agente descargar todos los papeles que mencionaste. Veamos qué pasa. Entonces se está ejecutando este paso y el paso de entrada es descargar todos los trabajos que mencionaste la acción o el pensamiento, primer lugar, es que necesito descargar múltiples archivos PDF basados en las URL proporcionadas para los trabajos relacionados con modelos multimodales La acción es descargar el archivo PDF dos. La entrada de acción es esta URL PDF, y el archivo de salida es este. Esto es sólo para una ponencia. Se puede ver que en esta carpeta, sólo descargó un papel. Y luego se va al otro papel, que es el texto cross lingual llegar a comprensión visual, que es el segundo Pero mira esto. Ahora está diciendo que el matón está diciendo que puede responder sin más herramientas, y todavía usa el um, no está pasando por una acción La respuesta es acción descargar PDF dos. No se trata de descargar el segundo archivo ni el tercero ni el cuarto. Arreglaremos esto haciendo un poco de ingeniería rápida en este chat. Pero por ahora, sigamos y bueno, pongamos la respuesta en rebaja para que podamos ver esto mejor Se puede ver que la respuesta es descargar esto usa la herramienta de descarga PDF y nos está diciendo lo último que hizo. Éste. Esto no es exacto. Vamos a arreglar esto. Pero por ahora, veamos qué pasa si preguntamos sobre un tema que no está disponible en esta lista que encontramos. Vamos a interactuar con el agente una vez más y hablemos de agente, plantilla de consulta, y vamos a formatear con un tema diferente como la computación cuántica, algo así. Ninguno de estos artículos habla de computación cuántica, creo. Veamos qué pasa si hablamos de este tema que no está disponible. Obviamente vamos a ver mejor la respuesta aquí. Pero veamos el proceso de razonamiento. Ahora la plantilla está hablando de computación cuántica. El pensamiento es el idioma actual del usuario es el inglés. Necesito usar herramienta que me ayude a responder la pregunta. La acción es investigar papel, herramienta de motor de consultas. El input es esta plantilla, pero parece que no hay nada relacionado con la computación cuántica. Entonces el pensamiento es, parece que no hay papeles disponibles en la base de datos de conocimiento relacionados con la computación cuántica. Voy a buscar artículos recientes de Archivo. Ahora está usando la tercera herramienta, que es fetch from Archive, y la entrada de acción es el título computación cuántica y los papeles cuentan cinco Bien. Entonces ahora encontré estos cinco papeles aquí. Se puede ver el enredo de sondeo, escalado a través de una transición de fase cuántica en una computadora cuántica, aditividad uniforme, o lo que sea, estas cosas complicadas Pero definitivamente encontró nuevos papeles sin que intervengamos en este proceso Esto es genial. El siguiente paso en la siguiente lección, lo que vamos a hacer es solucionar realmente el problema de descargar los papeles. 14. Mejora el aviso para descargar archivos: Hola, y bienvenidos de nuevo. Entonces, antes que nada, hagamos un compromiso, para que no perdamos todos nuestros cambios. Voy a borrar este documento que la próxima vez que arreglemos este problema de papeles, vayan a ver que todo está arreglado. Entonces agreguemos todo. Agreguemos un mensaje de compromiso diciendo, construyamos la primera versión del agente y hagamos un push. En. Ahora, lo que vamos a hacer a continuación es modificar este prompt aquí, descargar prompt porque ahora mismo es muy sencillo, y quizá esa no sea la mejor manera de hacerlo. Por supuesto, puedes usar Chat GPT o coágulo para potenciar este prompt aquí, eso es lo que hice De hecho, el prompt que se le ocurrió para solucionar este problema, fue un proceso iterativo, en primer lugar Intenté esto varias veces para solucionar este problema. Probé múltiples prompts, y este es el que solucionó el problema También probé otros enfoques, y te voy a invitar a probar otros enfoques. Vamos a discutir eso en un momento. Por ahora, voy a decir el prompt, descargar los siguientes papeles y para cada ponencia. Voy a decir, antes que nada, vaya. ¿Qué está pasando? Procese un papel a la vez. Segundo, hagámoslo así. Así. Sí. Segundo, indique qué número de papel está procesando del total. Tercero, no sé por qué está bien esto. Completa un ciclo completo de descarga antes de pasar al siguiente vapor. Cuarto, declarar explícitamente al pasar al siguiente trabajo, y quinto, proporcionar un resumen final solo después de que se hayan descargado todos los trabajos. Entonces estas van a ser las nuevas instrucciones para el paso de descarga. ¿Bien? Entonces veamos qué pasa ahora. Voy a ejecutar todo de nuevo solo para ser claros, borrar todas las salidas y ejecutar todas y veamos que pasa. Se trata de recuperar de nuevo los cuatro trabajos relacionados con los modelos multimodales. Ahora está aquí. Es decir el pensamiento voy a empezar a descargar los papeles uno por uno, procesando cada papel en el orden en que fueron listados. Acción, descargando el PDF dos, la segunda acción es nuevamente descargar el PDF dos. Pero ahora para el texto cross lingual Rich visual, la tercera acción es la misma usando el PDF de descarga dos pero con estos prototipos multimodales integrales, y la cuarta acción es la misma pero con una prenda de chat Rata. Ahora descargó los cuatro papeles. Ahora veamos qué pasa cuando busca el de computación cuántica. Oh, Uy. Ahora también está descargando los de computación cuántica. Entonces arreglamos parte del problema. Logramos descargar los cuatro papeles que explícitamente configuramos para descargar, pero ahora también está descargando los otros. Entonces ahora tenemos que hacer alguna otra cosa para evitar esta situación y se puede ver esto también falló en este último paso. Permítanme borrar de nuevo todos los papeles, por alguna razón, aquí, no es explícito que no tenga que descargar los papeles. Nuevamente, pasé por un proceso iterativo. Esto es prueba y error y éste es más sencillo. Sólo hay que decir, no descargues papeles. A menos que el usuario lo solicite explícitamente. Entonces con solo decirle a la IA, Oye, no descargues los papeles a menos que el usuario lo diga, así que veamos qué pasa. Voy a despejar todas las salidas otra vez y correr todas. Esta vez, tuve que modificar la plantilla de crear, no la plantilla de descarga. Entonces ahora, vuelve a estar buscando en la base de datos o en el índice. ¿Cuáles son los modelos multimodales de papel? Encontró los cuatro papeles, y veamos qué pasa. Todo este proceso es una ingeniería rápida, así como cuando se realiza una ingeniería rápida para HAGPT, también puede hacer ingeniería rápida para los agentes Veamos qué pasa en la carpeta de papeles. Descargué los cuatro papeles con éxito. Los papeles multimodales. A 23 segundos. Y ahora está buscando nuevos papeles relacionados con la computación cuántica Lo que espero ahora es que no descargue los papeles de la computación cuántica. Aquí está. puede ver ahora que esta vez sólo encontró un papel, pero eso es bueno. Al menos no descargó todos los papeles. Esa es una buena señal. Hagamos un compromiso aquí. SG commit, construir segunda versión de la y vamos a hacer push. Esta vez con los papeles incluidos. Eso es todo para este video. Espero que les guste y nos vemos en la siguiente lección. 15. Crea una clase para administrar el índice: Hola, y bienvenidos de nuevo. Entonces lo que vamos a hacer ahora es crear dos clases. A una clase se le va a llamar el gestor de índices, y a la segunda clase se va a llamar la clase agente. Entonces estas dos clases, su propósito será capturar toda la lógica que creamos aquí en estos cuadernos de la lógica que creamos aquí en estos Júpiter en una clase para que podamos reutilizar eso y vamos a construir un stream iluminado que use estas dos clases para que las cosas se pongan un poco más fáciles de manejar Entonces, antes que nada, vamos a crear la clase index manager. Así que aquí vamos a definir una clase llamada index manager, y vamos a crear un constructor. Y aquí, sólo vamos a tener como parámetro el modelo embed. El modelo self dot embed va a ser el que pasemos por aquí. También vamos a definir esta matriz vacía de vapores. Bien. Entonces ahora vamos a definir un método fetch papers, que va a recibir como parámetros el tema que queremos recuperar y los papeles cuentan, que vamos a por defecto a diez como hicimos en los cuadernos de Júpiter Entonces, los papeles autopuntados, en lugar de ser ahora una matriz vacía, van a llamar a estos documentos de archivo de búsqueda con un tema, y los papeles cuentan Tema. Genial. Y tenemos que colar aquí. Bien. Ahora que tenemos estos papeles de búsqueda, también vamos a crear este método llamado crear documentos a partir de papeles Este método va a ser exactamente el mismo que éste. En realidad, déjame copiar y pegar todo. Sangrar esto. Pero esta vez no va a recibir papeles como parámetro porque los papeles ya se inicializan aquí Sólo voy a decir para papel en papeles autopuntados. También me voy a deshacer de estos documentos aquí. Vamos a inicializar documentos en otro lugar. Vamos a decir auto punto documentos anexar documento. Necesitamos importar documento del índice Lama, ¿verdad? Y podemos devolver los documentos o simplemente no lo hacemos, eso depende de usted. Realmente no me importa. Sólo voy a devolverlos. Bien, y dice que los documentos no existen. Por eso es porque no tenemos documentos definidos. Así que bien, hagámoslo aquí. No le hace daño a nadie. Hagámoslo aquí. Autodocumentos y terreno. Ahora vamos a crear un método create index, Dev Create index, y esto va a llamar a esta función create document from papers, y también va a reunir y ejecutar esta lógica aquí. Bien. Entonces algo como esto, fuimos inventamos esto y tenemos que importar ajustes y vector store index Bien. Y aquí, vamos a asignar esto a una variable de instancia llamada index. También, embed model, tenemos eso en el constructor, así podemos llamar a self that embed model, y documents is here, self the documents. Entonces prefiero inicializar esto aquí. Ahí vas, y ahí vas. Esto es sólo una cuestión de organización. No afecta el resultado. Pero ahora tenemos esta clase que tiene este método para buscar los papeles Voy a poblar la matriz de papeles. Entonces después de ejecutar este método, puedes crear el índice, y luego necesitamos otro método para recuperar el índice. Este método va a hacer lo mismo que aquí estamos haciendo. Esta misma lógica, la vamos a poner aquí y obviamente tenemos que importar cosas, vectores a indexar, cargar índice de almacenamiento, por alguna razón, esto se duplicó. Modelo de cama va a ser autodidacta y modelo Bt. ¿Y qué más? No vamos a asignar esto sino devolver esta tasa. Entonces creo que esto es todo lo que tenemos que hacer para esta clase. También podemos definir un método arr solo para imprimir los títulos de los trabajos Entonces voy a decir papeles de lista, y sólo vamos a copiar la lógica de esto. Me gusta imprimir Azulejo de papel para papel Son los papeles, para mostrar las cosas si quieres Eso es todo para esta clase. En la siguiente lección, lo que vamos a hacer es crear la clase de agente. No olvides hacer un commit agrega index manager Cass. Empuje. Eso es todo para esta lección. Espero que les guste. Nos vemos en la siguiente lección. 16. Crea una clase para interactuar con el agente: Genial. Ahora vamos a construir otra clase llamada la clase agente. Vamos a crear otro archivo llamado agente punto PY. Aquí vamos a definir esta clase llamada agente. En destructor, vamos a obtener el índice y el modelo LLM El índice de autopunto va a ser índice y el modelo LLM de punto automático va a ser modelo LLM En Deconstructuor, vamos a construir el motor de consultas, la herramienta RAG, la herramienta de descarga de PDF, la herramienta archivo Fetch y el método del agente de compilación para construir el agente Entonces, básicamente, saca la lógica de este cuaderno de Júpiter a una clase Entonces, antes que nada, construir, construir motor de consultas. Lo que esto va a hacer es básicamente hacer esto. Toma esta línea de código y ponla aquí. Vamos a decir que el motor de consulta de autopunto va a ser igual al índice de puntos propios como motor de consulta, módulo de autopunto M y similitud superior K igual a cinco. Esto puede ser también parámetro del constructor, pero vamos a codificarlo duro a cinco. El segundo método va a ser construir herramienta RAC. Y básicamente, va a ser esto. Entonces auto punto Rat va a ser igual a la herramienta de motor de consultas. Vamos a importar que en este archivo y el motor de consultas va a ser el motor de consulta de autopunto. Vamos a deshacernos de esto y ahí tienes. Ahora, el otro método va a ser la herramienta de descarga de PDF construida y básicamente va a ser solo el así que copiamos esto, autopunto descargar PDF a. Tenemos que importar la herramienta de función y tenemos que descargar PDF del archivo de herramientas aquí. Ahí vas. Ahora, construir la herramienta de búsqueda de archivo. Nuevamente, esto va a ser esto. Vamos a copiarlo y pegarlo aquí. Decir self dot fetch Archive tool e importe el archivo fetch del archivo tools Ahí vas. Ahora vamos a definir otro método, que va a ser build agent. Build agent va a ser justo esto aquí. Vamos a copiar esto, pegarlo aquí, e importar esto en la parte superior. Ahí vas. Y estas van a ser la herramienta PDF de descarga de punto automático, la herramienta auto punto g, la herramienta archivo de búsqueda de punto automático y la tasa de modelo LLM de punto automático Nuevamente, todos estos parámetros como verbos verdaderos. Se pueden configurar en el inicializador si quieres. Yo sólo voy a codificarlos duro y decir variables, varios siempre cierto. Ahora voy en el inicializador para llamar a todos estos métodos en ese orden Primero, el motor de consultas, luego la herramienta build Rag, luego la herramienta de descarga de PDF de compilación, luego construye cualquier herramienta de archivo pet y, finalmente, construye el agente Genial. Nos falta un solo método aquí. Cuando inicialicemos esta clase de agente, el agente va a ser inicializado automáticamente, pero quiero un método de chat, que va a recibir un mensaje Se va a volver a sí mismo, al agente, a la charla. Mensaje. Básicamente, esta interacción aquí, ya no vamos a pasar estas plantillas de consulta. Sólo vamos a pasar cualquier mensaje. El mensaje va a ser básicamente cualquier cadena aquí. Bien, así que eso es todo para esta clase. De nuevo, eso es get at Git commit as agent class y push. Eso es todo para este video. Espero que te guste y nos veamos en la siguiente lección donde vamos a construir una app de sprint let usando estas dos clases. 17. Crea una interfaz de usuario de chat con Streamlit: Hola, y bienvenidos de nuevo. Lo que vamos a hacer ahora es construir una app stream let. El líder de Stream es un framework de Python para construir aplicaciones, especialmente aplicaciones de datos como dicen aquí. Convierte scripts de datos en aplicaciones web compartidas en MD, todo inter pith No se requiere experiencia en front-end. Vas a la sección de galería, verás muchos ejemplos que la gente ha construido con stream it. Por ejemplo, para LMS, han construido chatbots o chat GPT con memoria, muchas cosas Se pueden ver los trending ones, Matemáticas GBT, portafolio, lo que sea Y tiene mucha compatibilidad o muchas herramientas, diré, para construir mapas LLM Bien. Entonces vamos a empezar a construir este chatbot para interactuar con el agente En primer lugar, necesitamos instalar streamlt como dependencia Entonces PDM agrega streamlet y espera a que se instale la dependencia Mientras tanto, vamos a crear un archivo llamado app dot PY. Bien. Entonces aquí, vamos a importar nuestra clase de agente, y también vamos a importar nuestra clase de gestor de índices. Además, vamos a importar desde las constantes, el modelo embed y el modelo LM. Bien. Y también vamos a importar streamlt como ST. Así es como la gente de la comunidad Python solía importar esta biblioteca. Todavía no lo reconoce porque aún se está instalando. Y vamos a empezar a construir la app mientras ésta se instala. Entonces, antes que nada, necesitamos entender un concepto en streamlt que es el estado de sesión Entonces en streamlt construimos un script, y este script se ejecuta como si estuviera en un bucle salvaje Entonces todo lo que escribamos aquí será recreado si no ponemos esas variables en lo que se llama el estado de sesión Hay una manera de que hay múltiples formas almacenar en caché estas variables, y una de esas formas es mediante el uso de un decorador Este decorador se llama ST stream lit cache. Aquí podemos definir una función, y voy a llamar a esta función inicializar agente Porque queremos que el agente sea inicializado sólo una vez. Por eso estamos guardando este recurso en caché. Vamos a decir index manager es igual a index manager, recuerda, tenemos que pasar el modelo embed, y luego podemos obtener el index llamando al método retrieve index que construimos para esta clase. Por último, vamos a devolver un agente con índice y el modelo LM. Bien. Y ahora vamos a inicializar inicializar el agente y el estado de la sesión Bien. Entonces, ¿cómo hacemos esto? Decimos si el agente no está en la sesión de punto extremo, estado de sesión, entonces vamos a decir stream session state dot agent, agente inicializado La primera vez que se ejecuta este script, agente no va a estar en el estado de sesión, por lo que se inicializará También necesitamos inicializar en el estado de sesión los mensajes del chat Si los mensajes no están en estado de sesión de flujo, entonces los mensajes van a ser una matriz vacía. Entonces stream lead tiene una manera de construir chats. Vamos a ver cómo utiliza el concepto de filas. Entonces una parte del chat va a ser el usuario o el humano, y la otra parte del chat va a ser el asistente o la IA. Entonces vamos a ver cómo funciona eso en un momento. Entonces lo que vamos a hacer ahora es mostrar los mensajes de chat. Recuerda, todo esto va a correr como en un bucle while. Entonces necesitamos que cada vez se ejecute este script, imprimir los mensajes. Para mensaje en estado de sesión que mensajes, esta es la sintaxis que usamos para escribir los mensajes con SD y esto tiene esta variable de mensaje de chat. ¿Y qué tenemos que poner? El nombre? El nombre puede ser el usuario, el asistente, la IA o el humano. Usuario y humano son lo mismo. Asistente e IA son lo mismo. Pero el mensaje va a contener el papel. Entonces vamos a decir mensaje punto papel. Entonces el rol de mensaje va a ser usuario o va a ser asistente. ¿Cómo sabemos eso? Porque vamos a definir eso en un momento. Sólo tengan paciencia conmigo. Entonces aquí para escribir algo en el chat, usamos este método de rebajas, y aquí vamos a imprimir el contenido del mensaje Bien. Se podría decir que los mensajes van a ser una matriz de diccionarios y cada diccionario va a tener un rol y un contenido. El rol va a ser usuario o asistente y el contenido va a ser el mensaje en sí, que puede estar en Markdown. Ahora vamos a construir la funcionalidad central de esto. Vamos a decir if prompt, y vamos a llamar a este método de entrada. Pregúntame cualquier cosa sobre los vapores de investigación. Bien. Entonces, ¿qué significa esto? Esto significa que si no se inicializa esta variable prompt, esta sintaxis significa, bien, inicializarla para que sea esta para ser lo que devuelve esta entrada de chat Esto es solo un marcador como vas a ver en un momento Entonces lo que escribimos aquí va a ser asignado a este prompt. Bien. Entonces ahora vamos a anexar a los mensajes de estado de sesión, lista este diccionario aquí aquí porque como voy a introducir algo, yo soy el usuario Entonces el rol será el usuario y el contenido será lo que se le asigne en este prompt. Genial. Entonces lo agregamos, pero ahora tenemos que mostrarlo en la pantalla. Entonces con SD, el mensaje de chat, y esta vez va a ser el usuario. Voy a marcar el aviso. Entonces voy a mostrar lo que escribí, básicamente. Entonces voy a mostrar lo que responde el asistente. Con mensaje de chat ST, asistente, voy a obtener la respuesta y la respuesta va a ser recuperada con el agente y recuerda que construimos este método chat chat y pasamos el prompt y esto devuelve algo que tiene un atributo response. Ahora vamos a imprimir la respuesta y finalmente, vamos a anexar a mensajes de estado de sesión la respuesta, pero con el papel de asistente Entonces eso es todo. Acabamos construir esta app en 33 líneas de código. Y para poder ejecutar esto, asegúrate de que en tu terminal, cierra la terminal y asegúrate volver a abrirla y que muestre esto. Esto quiere decir que usted está dentro del entorno virtual, señor. Y si no ves eso, también puedes escribir PDM use lo siento, PDM Ben B ENV y PDM BENV activan Ese es el comando. Así que imprime el comando para activar el entorno virtual. Así que básicamente tendrás que escribir esto y pegarlo. Bien. Entonces ahora estoy dentro de un entorno virtual. Bien. Entonces deberías ver esto. Cuando veas esto o si no tienes CSH o Mac, solo tienes que escribir esto Obviamente, con un comando correcto, escribirás stream it run up dot PY. Esto abrirá este chat aquí, pero algo anda mal. Entonces déjame ver qué es recurso de caché, no caché. Así que intentemos de nuevo. Bien, entonces agreguemos algo que me perdí, y va a ser un azulejo solo para ver esto un poco más agradable Entonces st Tile Archive, Papers, Chatbot, si. Ese es un buen nombre. Entonces espero que si estás fresco, veas este título. Bien, entonces como te dije, este es un marcador de posición para la entrada del chat Pero aquí puedo escribir cualquier cosa. Voy a decir, ¿puedes buscar papeles relacionados con la mecánica cuántica Y recuerden, la mecánica cuántica no está en la base de conocimientos. Entonces aquí se muestra este pequeño icono por indicar que soy el usuario, y este es el asistente. Y aquí, voy a agregar algo más solo para que sea un poco mejor. En primer lugar, creo que devolvió la respuesta, pero quiero ser más fácil de usar. Y aquí en esta línea, voy a decir con st dot spinner, y voy a decir pensando. Entonces, si bien esto no lo es, mientras el agente esté pensando, vamos a mostrar spinner que sea más fácil de usar. Déjame copiar esto y hacerlo de nuevo. Pensando con un spinner. Porque recuerda estos lleva algún tiempo. Esta es una forma más fácil de usar para mostrar el resultado. Veamos qué son los lotes. Entonces sí, creo que terminó, o creo que se equivocó por alguna razón Detengamos esto y ejecutemos esto de nuevo y volvamos a hacer la misma pregunta. ¿Se pueden buscar papeles relacionados con la mecánica cuántica? Entonces está usando la herramienta fetch from Archive, pero sigue pensando Entonces esperemos un momento, y ahí tienes. Esta es la respuesta. Bien, entonces ahora tenemos una interfaz de usuario para ver los resultados de nuestro arduo trabajo. Espero que les guste este video, nos vemos en la siguiente lección. 18. Obtén una clave API de Pinecone: Hola y bienvenidos de nuevo. Así que ahora vamos a almacenar nuestro índice en Pine Ce. Por lo que el cono de pino es un servicio en la nube para almacenar índices. Eso significa que es una base de datos vectorial en la nube. Entonces, como dice aquí, puedes construir IA conocedora con su base de datos vectoriales en el núcleo Pine cone es la plataforma de conocimiento líder para crear aplicaciones de IA precisas, seguras y escalables. Para que puedas crear una cuenta gratuita. Obviamente, esto tiene un nivel gratuito. Puedes elegir el plan de inicio para probar y para aplicaciones pequeñas. Es gratis. Tienes Pinec serverless, tienes Pinec inferencia y asistente que son algunos productos que están construyendo, y tienes que usar la región EU east uno de ocho de nosotros Puedes comenzar gratis, crear una cuenta y luego iniciar sesión. Voy a hacer eso por mi cuenta. Aquí, Y entonces lo que vamos a hacer aquí es crear un índice. Da click en este botón, crea un índice, y voy a decir Investigación de archivo. Aquí puedes configurar las dimensiones de esos vectores. Recuerde, los vectores tienen dimensiones. Esas son las incrustaciones, o puedes elegir un preset Recuerda, estamos usando incrustación de texto tres grandes, así que solo podemos elegir esto directamente. Y mira esto. Las dimensiones se rellenan automáticamente con 3,072 Entonces esa es la dimensión de las incrustaciones cuando usamos este modelo embed Sin servidor. Voy a elegir Ws. Puedo elegir otros proveedores de Cloud porque estoy en el plan pago y puedo elegir otras regiones. Pero si estás usando la capa gratuita, entonces solo vas a poder usar AWS USPara que puedas habilitar la protección de eliminación para evitar que cualquier usuario elimine accidentalmente este índice Como voy a borrar esto cualquier manera, no importa. Bien. Ahora creaste tu índice en la Nube. Ahora necesitas algunas claves API. Creé una clave API. Se le puede dar un nombre. Puedes darle permisos personalizados o si no quieres complicarte por ahora, solo dale todos los permisos, y luego tendrás que copiarlo y copiarlo en un lugar seguro En la siguiente lección, lo que vamos a hacer es crear otra clase llamada Index manager piñecone que herede del gestor de índices y hacer algunos retoques con el fin de guardar los datos en fin de guardar los datos 19. Crea un administrador de índices para Pinecone: Hola, y bienvenidos de nuevo. Entonces, antes que nada, hagamos un compromiso para salvar nuestro trabajo. Así que ponte en Git commit, y olvidé lo que hicimos. Entonces, oh, sí, construimos, lo transmitimos. Eso es lo que hicimos. Hacemos un empujón Git. Bien. Entonces lo que vamos a hacer ahora es instalar dos dependencias, en primer lugar, que necesitamos para poder usar piece En primer lugar, necesitamos al cliente de piñas, y también vamos a necesitar el índice Lama vector stores piñecone Entonces dejemos que PDM haga el trabajo pesado aquí e instale esas dependencias La otra cosa es que vamos a crear un index manager pinecone dot Y vamos a crear otra clase llamada index manager Pine cone. Pero aquí vamos a usar herencia y vamos a heredar del gestor de índices Así que vamos a heredar algunos métodos de la clase index manager Entonces en ese constructor, vamos a necesitar, nuevamente, el modelo embed, el nombre del índice de la piña que acabamos Vamos a llamar al constructor padre, y el constructor padre solo necesita el modelo embed. Y vamos a crear una instancia de cono de pino. este momento, no se está mostrando porque está instalando, pero vamos a importarlo formas. Entonces desde Piña, vamos a importar esta piña. Bueno, terminó instalado, así que ahora reconoce. Entonces vamos a necesitar la clave API. Y eso va a obtener de las variables de entorno. Nosotros no hicimos eso. No sé por qué está haciendo esto. Nosotros no hicimos eso. Vamos a poner aquí en punto ejemplo ENB, pin cone, API key aquí en el ENB, vamos a poner lo mismo pero con el valor real Entonces ya tengo mi clave API copiada. Por lo que también debes copiarlo va a pegarlo aquí. Y obviamente, voy a borrarlo más tarde. Bien. Entonces, para poder cargar esa clave API, necesitamos descargar punto m. así que vamos a importar desde punto EM Vamos a cargar puerto punto M. Vamos a llamar a eso para obtener el entorno b de ese archivo EMV Genial. Ahora lo que vamos a hacer es decir self dot Pine Ce Index, pc dot index, y vamos a pasar el nombre del índice. Entonces vamos a inicializar el almacén de vectores como tienda Vctor de piñas, y necesitamos importarlo Vamos a importar eso de Lama index dot vectorstores dot Pine cone, Import Pine Cone Vector store. Bien. Entonces esta tienda de vectores, necesitamos pasar el índice de piñas, que va a ser el índice de piñas auto punto, lo que aquí definimos lo También necesitamos el contexto de almacenamiento. Voy a decir contexto de almacenamiento de autopunto igual a, y necesitamos importar el contexto de almacenamiento desde el núcleo de punto índice Lama, importar el contexto almidón Contexto de almacenamiento de valores predeterminados, y vamos a pasar esta vez el almacén de vectores Bien. Genial. Entonces lo que hemos hecho hasta ahora es llamar al constructor de este gestor de índices y asignar algunas otras variables aquí. Ahora necesitamos escribir el método create index desde el gestor de índices. Recuerda, tenemos este índice de creación. Tenemos que reescribir eso porque ahora vamos a guardar cosas en Pine C. Entonces hacemos lo mismo Inicializamos un MTRray. Llamamos a crear documentos a partir de papeles, y establecemos los ajustes para esto. También tenemos que importar ajustes. Consigamos ajustes desde aquí también. Por último, pero no menos importante, vamos a subir los vectores Auto o vector lo siento, vector store index, que creo que también necesitamos importar de aquí. Índice de tienda vectorial. Que lo que vamos a hacer aquí es a partir de documentos como lo hicimos aquí. Bien. De documentos. Estamos en el índice de puntos propios así. Documentos autopunteados. El contexto de almacenamiento va a ser contexto de almacenamiento de puntos propios y el modelo de incrustación o el modelo de incrustación será el modelo de incrustación de punto automático. Bien. Ahí vas. Para recuperar el índice, solo vamos a devolver punto de índice de almacén vectorial de la tienda vectorial, y vamos a pasar la tienda de vectores, que es la tienda de vectores de self dot y la embed que va a ser el modelo Embed de self dot. Eso es. Esto es todo lo que tenemos que hacer para, um upsert datos y recuperar el índice de Pin C. Así que si vamos aquí a la base de datos, archivo para búsqueda, no hay registros todavía Entonces lo que vamos a hacer es crear un cuaderno de Júpiter, que se va a llamar Pine C y en este cuaderno de UPiTER, lo que vamos a hacer es mejorar los vectores. Desde constance, vamos a importar el modelo embed. Seleccionemos primero el kernel. También vamos a desde el gestor de índice piñas importar el índice, gestor de índice piñecone , gestor de índice Vamos a crear una instancia de ese gestor de índice de clase PyCon, pasamos el modelo embed y pasamos el nombre del índice, que en nuestro caso es Archive research, Archive research Y ahora vamos a buscar los papeles, buscar papeles , modelos de lenguaje Vamos a buscar los últimos 101. Buscamos los papeles y ahora estamos listos para crear el índice Vamos a crear el índice. Se puede ver, vaya, tenemos un error, y eso es porque dice, creo que esto tiene que ser modelo incrustar, no incrustar ese modelo Vamos a intentarlo de nuevo. A ver si eso resuelve el problema. Sí, así que por alguna razón, este es el modelo embed, pero la finalización automática no funcionó para mí. Así incrustar modelo, no incrustar. El modelo Embed actualizará los vectores. Se puede ver ahora que hemos upserted esos vectores en el espacio de nombres por defecto Y puedes ver aquí el vector. Estos son básicamente solo valores. Aquí hay 3,072 de estos números, y esto tiene algunos metadatos, contenido de nodo y tipo de nodo, documento, ID de documento, etc. Entonces básicamente, estos son vectores. Tenemos diez de ellos, diez vectores. Estas son incrustaciones. Eso es. No hay más magia en ello. También podemos recuperar el índice haciendo este gestor de índice recuperar Index y BLA recuperamos el índice, y también podemos imprimir la lista de los papeles que hemos obtenido. Entonces ya puedes ver que es diferente. Se puede ver el video Panda. En realidad, aquí vamos a hacer algún cambio porque esto es difícil de leer. A ver. Vamos al encargado del índice, y aquí vamos a decir por papel por papel en papeles. Simplemente imprima el azulejo de papel. Relleno de los papeles. Bien. Entonces eso es todo. Eso es todo lo que tenemos que hacer. Esto no va a reflejarse tristemente porque tenemos que reiniciar el kernel. Entonces hagamos este gestor de índices. Lo siento. Y no vamos a ir a buscar Bueno, sí, vamos a buscar los papeles, pero vamos a crear no volvamos a crear el índice Sólo voy a enumerar los papeles y aquí está. Estos son los papeles que tenemos ahora mismo. Ahora lo que vamos a hacer es comprometernos para salvar nuestro progreso. Agrega el gestor de índices Pinec y consigue push. Eso es todo para este video. Espero que les guste, y continuemos con la siguiente lección. 20. Uso del índice de pinecone en la aplicación Streamlit: Genial. Ahora tenemos nuestros vectores en Cono de pino. Tenemos estos datos, estos títulos en Pino C. Test. Probemos si esto realmente está funcionando. Así que en nuestra app streamlt, al inicializar nuestro agente, en lugar de usar el gestor de índices, vamos a usar la pinecone del gestor de índices Bien. Entonces tenemos que pasar el nombre del índice, que va a ser investigación de archivo. Ese es el único cambio que tenemos que hacer para ahora obtener los datos del Pin C. Probemos este streamlt run up dot PI Veamos cuál es el resultado ahora. Entonces voy a usar esta vez esta plantilla de consulta que usamos la última vez, que está aquí. A ver. Entonces, reemplacemos esto. Estoy interesado en multi modelo y modelos multi modelo. Entonces veamos si el agente es capaz de recuperar información de este índice de piñas y recuperar aquellos papeles que están relacionados con Si vemos aquí, ¿dónde está eso? Icono. Estos son los papeles de los modelos lingüísticos. Dice que aquí hay algunos trabajos recientes relacionados con modelos multimodales Traducción y reconocimiento de voz de recursos cero con LMS y generación de voz de forma larga con modelos de lenguaje hablado Tenemos uno de ellos. ¿Dónde está eso? Esta, generación de voz de forma larga con modelos de lenguaje hablado, y la otra es ¿cuál es el otro nombre? de voz de recursos cero, traducción de voz de recursos cero y reconocimiento con LM. Podría recuperar con éxito los datos de PyCon. No es tan emocionante. Eso es. Ahora hemos construido un agente que almacena el índice en la nube. Recupera eso y funciona perfectamente. Espero que les guste esta lección y nos veamos en la siguiente. 21. Implementa la aplicación para simplificar la nube comunitaria: Hola, y bienvenidos de nuevo. Entonces ahora lo que vamos a hacer es implementar nuestra app en streaming Community Cloud Como puedes ver, en la landing page, el despliegue en Community Cloud es gratuito. Es gratis. Entonces solo tienes que registrarte, crear una cuenta, conectar tu cuenta de GitHub, y luego podrás encontrar el repositorio Tiene que estar en tu cuenta de Github e implementar esa app. Es un proceso muy, muy fácil. Entonces lo que voy a hacer ahora mismo antes de hacer esto es crear un archivo TXT punto requisitos. ¿Por qué? Porque Streamlt Community Cloud espera un archivo de texto de requisitos para instalar todas las dependencias No reconoce este archivo de registro pdmt, así que tal vez en el futuro, lo harán, pero por ahora, necesitan los requisitos punto textFile Entonces PDM tiene este comando de exportación. Entonces, si escribe esto, va a imprimirlo en la terminal, pero queremos que esté en un archivo. Entonces usamos este símbolo mayor que y decimos, Bien, queremos que en requisitos punto texto. Entonces, si abres este archivo, va a tener todas las dependencias que están en el registro PDM, pero como requisito punto archivo TXT Hagamos una confirmación de un archivo TXT de punto de requisitos. Vamos a empujar. Y ahora vamos a la Streamed Community Cloud al dashboard Una vez que te registres, regístrate, conecta tu cuenta de GitHub y puedes hacer clic en este botón que dice crear App. Voy a elegir esta opción, que es desplegar una app pública desde GitHub. Entonces voy a buscar al investigador de Archivo Ripple. Recuerda, esta es mi Ripple. Voy a decir que la ruta principal del archivo es app dot PY, y este es un subdominio elegido aleatoriamente Tu dominio va a ser esta que stream app. Puedes hacer clic en Deploy y eso va a implementar tu app. Pero esto no va a funcionar en estos momentos porque tenemos que poner canicas ambientales Recuerda que necesitamos la clave API OpenAI y la clave API Pine hone para que esto funcione Si vuelves a compartir ese stream dot IO y haces clic en la configuración del proyecto y vas a secreto, vas a poder establecer los secretos o las burbujas del entorno aquí. Voy a copiar y fasear, pero hay que ponerlos entre comillas. De lo contrario, se va a quejar. Guarda los cambios, y ahora la app se va a implementar con esas burbujas de entorno. Voy a dar click aquí Si haces clic en esta app de gestión, vas a ver que instaló las dependencias a partir de requisitos Instalo todo esto y las dependencias de Python se instalaron desde requisitos punto TXT, y eso es todo. Ahora puedes saludar al chat. trata de un LLM, por lo que sabrá que no necesita ninguna base de conocimientos para poder responder al hola Ahora vamos a usar la plantilla que teníamos aquí. Pero solo para tener en cuenta que no necesitas esto, puedes experimentar con otras plantillas, pero esta es la que funciona ahora mismo, así que voy a usar esto. Estoy interesado en modelos multi modelo aquí, multi modelos. A ver si puede procesar esto. Espero que los registros se muestren aquí, pero no estoy seguro de por qué no se muestra. Déjame refrescar esto. Voy a copiar esto y refrescar solo para ver que hay algo en esto. Sí. Si eso no funciona, voy a reiniciar la app para ver si eso funciona. Bueno, esta vez funcionó, pero aquí no veo los registros. Por lo general los registros se muestran aquí, pero no estoy seguro de por qué no se muestran en este momento. Pero de todos modos, respondió con uno de los papeles de la base de conocimiento. Recuerde, esta generación de habla no forma con los modelos de lenguaje hablado estaba en la base de conocimiento. Entonces eso es todo. Ahora puedes compartir este enlace con tus amigos y dejar que te prueben la app. Espero que les guste este video, nos vemos en la siguiente lección. 22. Conclusión: Enhorabuena por terminar este curso. Gracias por unirse a este viaje para aprender a crear agentes de IA. Ya sabes cómo son las herramientas para construir, mejorar e implementar soluciones de IA con aplicaciones del mundo real. Sigue experimentando, sigue curioso y recuerda que las posibilidades con la IA son infinitas ¿Cuáles son los siguientes pasos? Aplica tus conocimientos a proyectos del mundo real. Esa es la mejor manera de aprender. Comparta sus logros y conéctese con la comunidad y siga aprendiendo y manténgase actualizado sobre los avances de la IA Tus comentarios importan. Por favor, tómate un momento para dejar una reseña o compartir tus pensamientos. Tus comentarios ayudan a mejorar este curso y el contenido futuro, y no olvides mantenerte conectado. Comunícate con preguntas, ideas de proyectos o simplemente para compartir tu progreso. Juntos, podemos hacer que la IA sea accesible y le doy una palmada a C.