«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Создание приложения RAG с помощью LlamaIndex.ts и Azure OpenAI: начало работы!

Создание приложения RAG с помощью LlamaIndex.ts и Azure OpenAI: начало работы!

Опубликовано 8 ноября 2024 г.
Просматривать:378

Поскольку ИИ продолжает формировать то, как мы работаем и взаимодействуем с технологиями, многие компании ищут способы использовать свои собственные данные в интеллектуальных приложениях. Если вы использовали такие инструменты, как ChatGPT или Azure OpenAI, вы уже знакомы с тем, как генеративный ИИ может улучшить процессы и улучшить взаимодействие с пользователем. Однако для получения по-настоящему персонализированных и релевантных ответов ваши приложения должны включать ваши собственные данные.

Именно здесь на помощь приходит технология дополненной генерации данных (RAG), обеспечивающая структурированный подход к интеграции поиска данных с ответами на основе искусственного интеллекта. С помощью таких платформ, как LlamaIndex, вы можете легко встроить эту возможность в свои решения, раскрывая весь потенциал ваших бизнес-данных.

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

Хотите быстро запустить и изучить приложение? Кликните сюда.

Что такое RAG — генерация с расширенным поиском?

Поисковая дополненная генерация (RAG) — это платформа нейронной сети, которая расширяет возможности генерации текста с помощью искусственного интеллекта, включая компонент поиска для доступа к соответствующей информации и интеграции ваших собственных данных. Он состоит из двух основных частей:

  • Retriever: плотная модель извлечения (например, на основе BERT), которая выполняет поиск в большом корпусе документов, чтобы найти соответствующие отрывки или информацию, связанную с данным запросом.
  • Генератор: модель последовательности-последовательности (например, на основе BART или T5), которая принимает запрос и полученный текст в качестве входных данных и генерирует последовательный, контекстуально обогащенный ответ.

Поиск находит соответствующие документы, а генератор использует их для создания более точных и информативных ответов. Эта комбинация позволяет модели RAG эффективно использовать внешние знания, улучшая качество и релевантность создаваемого текста.

Как LlamaIndex реализует RAG?

Чтобы реализовать систему RAG с использованием LlamaIndex, выполните следующие общие шаги:

Прием данных:

  • Загрузите свои документы в LlamaIndex.ts с помощью загрузчика документов, такого как SimpleDirectoryReader, который помогает импортировать данные из различных источников, таких как PDF-файлы, API или базы данных SQL.
  • Разбивайте большие документы на более мелкие, удобные части с помощью SentenceSplitter.

Создание индекса:

  • Создайте векторный индекс этих фрагментов документа с помощью VectorStoreIndex, что позволит эффективно выполнять поиск по сходству на основе встраивания.
  • При необходимости для сложных наборов данных используйте методы рекурсивного поиска для управления иерархически структурированными данными и получения соответствующих разделов на основе запросов пользователей.

Настройка механизма запросов:

  • Преобразуйте векторный индекс в механизм запросов с помощью asQueryEngine с такими параметрами, как схожестьTopK, чтобы определить, сколько наиболее важных документов следует получить.
  • Для более сложных настроек создайте многоагентную систему, в которой каждый агент отвечает за определенные документы, а агент верхнего уровня координирует общий процесс поиска.

Поиск и генерация:

  • Реализуйте конвейер RAG, определив целевую функцию, которая извлекает соответствующие фрагменты документов на основе запросов пользователей.
  • Используйте RetrieverQueryEngine для выполнения фактического поиска и обработки запросов с дополнительными этапами постобработки, такими как повторное ранжирование полученных документов с помощью таких инструментов, как CohereRerank.

В качестве практического примера мы предоставили образец приложения, демонстрирующий полную реализацию RAG с использованием Azure OpenAI.

Пример практического применения RAG

Теперь мы сосредоточимся на создании приложения RAG с использованием LlamaIndex.ts (реализация LlamaIndex в TypeScipt) и Azure OpenAI и его развертывании в качестве бессерверных веб-приложений в приложениях-контейнерах Azure.

Требования для запуска образца

  • Azure Developer CLI (azd): инструмент командной строки, позволяющий легко развернуть все приложение, включая серверную часть, внешний интерфейс и базы данных.
  • Учетная запись Azure: для развертывания приложения вам понадобится учетная запись Azure. Чтобы начать работу, получите бесплатную учетную запись Azure и несколько кредитов.

На GitHub вы найдете проект для начала работы. Мы рекомендуем вам создать форк этого шаблона, чтобы вы могли свободно редактировать его при необходимости:

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

Высокоуровневая архитектура

Приложение проекта «Начало работы» построено на основе следующей архитектуры:

  • Azure OpenAI: поставщик искусственного интеллекта, обрабатывающий запросы пользователя.
  • LlamaIndex.ts: платформа, которая помогает принимать, преобразовывать и векторизировать контент (PDF-файлы) и создавать поисковый индекс.
  • Приложения-контейнеры Azure: контейнерная среда, в которой размещается бессерверное приложение.
  • Управляемая идентификация Azure: обеспечивает первоклассную безопасность и устраняет необходимость обработки учетных данных и ключей API.

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

Для получения более подробной информации о том, какие ресурсы развернуты, проверьте папку infra, доступную во всех наших примерах.

Примеры рабочих процессов пользователей

Пример приложения содержит логику для двух рабочих процессов:

  1. Прием данных: данные извлекаются, векторизуются и создаются индексы поиска. Если вы хотите добавить больше файлов, например PDF-файлов или файлов Word, их следует добавить сюда.

      npm run generate
    
  2. Обслуживание запросов на подсказки: приложение получает подсказки пользователя, отправляет их в Azure OpenAI и дополняет эти подсказки, используя векторный индекс в качестве средства извлечения.

Запуск образца

Перед запуском примера убедитесь, что вы предоставили необходимые ресурсы Azure.

Чтобы запустить шаблон GitHub в GitHub Codespace, просто нажмите
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

В своем экземпляре Codespaces войдите в свою учетную запись Azure со своего терминала:

azd auth login

Предоставьте, упакуйте и разверните пример приложения в Azure с помощью одной команды:

azd up

Чтобы запустить и опробовать приложение локально, установите зависимости npm и запустите приложение:

npm install
npm run dev

Приложение будет работать на порту 3000 в вашем экземпляре Codespaces или по адресу http://localhost:3000 в вашем браузере.

Заключение

В этом руководстве показано, как создать бессерверное приложение RAG (дополненная генерация данных) с использованием LlamaIndex.ts и Azure OpenAI, развернутого в Microsoft Azure. Следуя этому руководству, вы сможете использовать инфраструктуру Azure и возможности LlamaIndex для создания мощных приложений искусственного интеллекта, которые предоставляют контекстно-обогащенные ответы на основе ваших данных.

Мы рады видеть, что вы создадите с помощью этого приложения для начала работы. Не стесняйтесь создать его форк и поставить лайк репозиторию GitHub, чтобы получать последние обновления и функции.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/azure/building-a-rag-app-with-llamaindexts-and-azure-openai-getting-started-3pgb?1 Если есть какие-либо нарушения, свяжитесь с Study_golang. @163.com удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3