"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Creación de una aplicación RAG con LlamaIndex.ts y Azure OpenAI: ¡comenzando!

Creación de una aplicación RAG con LlamaIndex.ts y Azure OpenAI: ¡comenzando!

Publicado el 2024-11-08
Navegar:284

A medida que la IA continúa dando forma a la forma en que trabajamos e interactuamos con la tecnología, muchas empresas buscan formas de aprovechar sus propios datos dentro de aplicaciones inteligentes. Si ha utilizado herramientas como ChatGPT o Azure OpenAI, ya está familiarizado con cómo la IA generativa puede mejorar los procesos y mejorar las experiencias de los usuarios. Sin embargo, para obtener respuestas verdaderamente personalizadas y relevantes, sus aplicaciones deben incorporar sus datos de propiedad exclusiva.

Aquí es donde entra en juego la generación aumentada de recuperación (RAG), que proporciona un enfoque estructurado para integrar la recuperación de datos con respuestas impulsadas por IA. Con marcos como LlamaIndex, puede incorporar fácilmente esta capacidad a sus soluciones, liberando todo el potencial de sus datos comerciales.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

¿Quieres ejecutar y explorar rápidamente la aplicación? Haga clic aquí.

¿Qué es RAG - Generación aumentada de recuperación?

Retrieval-Augmented Generation (RAG) es un marco de red neuronal que mejora la generación de texto de IA al incluir un componente de recuperación para acceder a información relevante e integrar sus propios datos. Consta de dos partes principales:

  • Retriever: un modelo de recuperador denso (por ejemplo, basado en BERT) que busca en un gran corpus de documentos para encontrar pasajes relevantes o información relacionada con una consulta determinada.
  • Generador: Un modelo de secuencia a secuencia (por ejemplo, basado en BART o T5) que toma la consulta y el texto recuperado como entrada y genera una respuesta coherente y enriquecida contextualmente.

El recuperador encuentra documentos relevantes y el generador los utiliza para crear respuestas más precisas e informativas. Esta combinación permite que el modelo RAG aproveche el conocimiento externo de manera efectiva, mejorando la calidad y relevancia del texto generado.

¿Cómo implementa LlamaIndex RAG?

Para implementar un sistema RAG usando LlamaIndex, sigue estos pasos generales:

Ingestión de datos:

  • Cargue sus documentos en LlamaIndex.ts utilizando un cargador de documentos como SimpleDirectoryReader, que ayuda a importar datos de diversas fuentes como PDF, API o bases de datos SQL.
  • Divida documentos grandes en partes más pequeñas y manejables usando SentenceSplitter.

Creación de índice:

  • Cree un índice vectorial de estos fragmentos de documentos utilizando VectorStoreIndex, lo que permite búsquedas de similitudes eficientes basadas en incrustaciones.
  • Opcionalmente, para conjuntos de datos complejos, utilice técnicas de recuperación recursiva para administrar datos estructurados jerárquicamente y recuperar secciones relevantes según las consultas de los usuarios.

Configuración del motor de consultas:

  • Convierta el índice vectorial en un motor de consulta usando asQueryEngine con parámetros como similitudTopK para definir cuántos documentos principales se deben recuperar.
  • Para configuraciones más avanzadas, cree un sistema de múltiples agentes donde cada agente sea responsable de documentos específicos y un agente de alto nivel coordine el proceso de recuperación general.

Recuperación y Generación:

  • Implemente la canalización RAG definiendo una función objetiva que recupere fragmentos de documentos relevantes en función de las consultas de los usuarios.
  • Utilice RetrieverQueryEngine para realizar la recuperación real y el procesamiento de consultas, con pasos de posprocesamiento opcionales, como volver a clasificar los documentos recuperados utilizando herramientas como CohereRerank.

Como ejemplo práctico, proporcionamos una aplicación de muestra para demostrar una implementación RAG completa utilizando Azure OpenAI.

Aplicación práctica de muestra de RAG

Ahora nos centraremos en crear una aplicación RAG utilizando LlamaIndex.ts (la implementación TypeScipt de LlamaIndex) y Azure OpenAI, y la implementaremos como aplicaciones web sin servidor en Azure Container Apps.

Requisitos para ejecutar la muestra

  • Azure Developer CLI (azd): una herramienta de línea de comandos para implementar fácilmente toda su aplicación, incluidos el backend, el frontend y las bases de datos.
  • Cuenta de Azure: Necesitará una cuenta de Azure para implementar la aplicación. Obtenga una cuenta de Azure gratuita con algunos créditos para comenzar.

Encontrarás el proyecto de introducción en GitHub. Te recomendamos bifurcar esta plantilla para que puedas editarla libremente cuando sea necesario:

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Arquitectura de alto nivel

La aplicación del proyecto de introducción se basa en la siguiente arquitectura:

  • Azure OpenAI: el proveedor de IA que procesa las consultas del usuario.
  • LlamaIndex.ts: el marco que ayuda a ingerir, transformar y vectorizar contenido (PDF) y crear un índice de búsqueda.
  • Azure Container Apps: el entorno de contenedor donde se aloja la aplicación sin servidor.
  • Identidad administrada de Azure: garantiza una seguridad de primer nivel y elimina la necesidad de manejar credenciales y claves API.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Para obtener más detalles sobre qué recursos se implementan, consulte la carpeta infra disponible en todos nuestros ejemplos.

Ejemplos de flujos de trabajo de usuario

La aplicación de muestra contiene lógica para dos flujos de trabajo:

  1. Ingestión de datos: los datos se recuperan, se vectorizan y se crean índices de búsqueda. Si desea agregar más archivos como PDF o Word, aquí es donde debe agregarlos.

      npm run generate
    
  2. Atendiendo solicitudes de aviso: la aplicación recibe avisos del usuario, los envía a Azure OpenAI y aumenta estos avisos utilizando el índice vectorial como recuperador.

Ejecutando la muestra

Antes de ejecutar la muestra, asegúrese de haber aprovisionado los recursos de Azure necesarios.

Para ejecutar la plantilla de GitHub en GitHub Codespace, simplemente haga clic en
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

En tu instancia de Codespaces, inicia sesión en tu cuenta de Azure, desde tu terminal:

azd auth login

Aprovisione, empaquete e implemente la aplicación de muestra en Azure mediante un solo comando:

azd up

Para ejecutar y probar la aplicación localmente, instale las dependencias de npm y ejecute la aplicación:

npm install
npm run dev

La aplicación se ejecutará en el puerto 3000 de tu instancia de Codespaces o en http://localhost:3000 de tu navegador.

Conclusión

Esta guía demostró cómo crear una aplicación RAG (generación aumentada de recuperación) sin servidor utilizando LlamaIndex.ts y Azure OpenAI, implementada en Microsoft Azure. Si sigue esta guía, podrá aprovechar la infraestructura de Azure y las capacidades de LlamaIndex para crear potentes aplicaciones de IA que brinden respuestas contextualmente enriquecidas basadas en sus datos.

Estamos entusiasmados de ver lo que creas con esta aplicación de introducción. No dudes en bifurcarlo y darle Me gusta al repositorio de GitHub para recibir las últimas actualizaciones y funciones.

Declaración de liberación Este artículo se reproduce en: https://dev.to/azure/building-a-rag-app-with-llamaindexts-and-azure-openai-getting-started-3pgb?1 Si hay alguna infracción, comuníquese con Study_golang @163.com eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3