Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Упростите разработку приложений ИИ с RAG, используя собственные данные, которыми управляет LlamaIndex, функции Azure и бессерверные технологии. Эти средства управляют инфраструктурой и масштабированием автоматически, что позволяет сосредоточиться на функциональных возможностях чат-бота. LlamaIndex обрабатывает конвейер данных от приема до потокового ответа.
Обзор архитектуры
Поток приложения включает в себя:
- Использование интерфейса чата для ввода запроса.
- Отправка запроса пользователя в бессерверный API через HTTP-запросы.
- Получение запроса пользователя, а затем использование платформы LlamaIndex для обработки и потоковой передачи ответа. Бессерверный API использует механизм для создания подключения к крупной языковой модели Azure OpenAI (LLM) и векторному индексу из LlamaIndex.
Простая архитектура приложения чата показана на следующей схеме:
В этом примере используется LlamaIndex для создания векторных представлений и хранения их в собственном векторном хранилище. LlamaIndex также обеспечивает интеграцию с другими векторными хранилищами включая поиска ИИ Azure. Эта интеграция не показана в этом примере.
Где находится Azure в этой архитектуре?
Архитектура приложения зависит от следующих служб и компонентов:
- Azure OpenAI представляет собой поставщика ИИ, которому мы отправляем запросы пользователя.
- LlamaIndex — это платформа, которая помогает нам в процессе приема, преобразования и векторизации нашего содержимого (PDF-файла), а также создания индекса поиска на основе наших данных.
- Azure Container Apps — это контейнерная среда, где размещается приложение.
- управляемого удостоверения Azure помогает обеспечить лучшую безопасность класса и устранять требования, необходимые для разработчика, чтобы иметь дело с учетными данными и ключами API.
LlamaIndex управляет данными от приема до извлечения
Чтобы реализовать систему RAG (Retrieval-Augmented поколения) с помощью LlamaIndex, следующие ключевые шаги соответствуют функциям LlamaIndex:
| Процесс | Описание | LlamaIndex |
|---|---|---|
| Прием данных | Импортируйте данные из источников, таких как PDF-файлы, API или базы данных. | ПростойЧитательКаталога |
| Документные фрагменты | Разбивка больших документов на небольшие фрагменты. | Разделитель предложений |
| Создание векторного индекса | Создайте векторный индекс для эффективного поиска сходства. | VectorStoreIndex |
| Рекурсивное извлечение (необязательно) из индекса | Управление сложными наборами данных с помощью иерархического извлечения. | |
| Преобразование в обработчик запросов | Преобразуйте векторный индекс в обработчик запросов. | asQueryEngine |
| Расширенная настройка запроса (необязательно) | Используйте агентов для мультиагентной системы. | |
| Реализация конвейера RAG | Определите целевую функцию, которая принимает пользовательские запросы и извлекает соответствующие фрагменты документов. | |
| Выполнить извлечение | Обработка запросов и повторная ранжировка документов. | RetrieverQueryEngine, CohereRerank |
Необходимые условия
Контейнер среды разработки доступен со всеми зависимостями, необходимыми для завершения работы над этой статьей. Контейнер разработки можно запустить в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.
Чтобы использовать эту статью, вам потребуются следующие предварительные требования:
- Подписка на Azure — создать ее бесплатно
- Разрешения учетной записи Azure - ваша учетная запись Azure должна иметь разрешения Microsoft.Authorization/roleAssignments/write, например Администратор доступа пользователей или Владелец.
- Учетная запись GitHub.
Открытие среды разработки
Используйте следующие инструкции для развертывания предварительно настроенной среды разработки, содержащей все необходимые зависимости для выполнения этой статьи.
GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Visual Studio Code для веб-интерфейса в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.
Важный
Все учетные записи GitHub могут использовать Codespaces в течение до 60 часов бесплатно каждый месяц на двухядровых экземплярах. Для получения дополнительной информации см. GitHub Codespaces: ежемесячно включенные часы и хранилище , основные часы.
Открыть в среде разработки кода.
Дождитесь запуска рабочего пространства кода. Этот процесс запуска может занять несколько минут.
Войдите в Azure с помощью интерфейса командной строки разработчика Azure в терминале в нижней части экрана.
azd auth loginЗавершите процесс проверки подлинности.
Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.
Развертывание и запуск
Пример репозитория содержит все файлы кода и конфигурации, необходимые для развертывания бессерверного приложения чата в Azure. Ниже приведены инструкции по развертыванию примера в Azure.
Развертывание приложения чата в Azure
Важный
Ресурсы Azure, созданные в этом разделе, несут немедленные затраты, в первую очередь из ресурса поиска ИИ Azure. Эти ресурсы могут привести к расходам, даже если вы остановите выполнение команды, прежде чем она завершится.
Чтобы подготовить ресурсы Azure и развернуть исходный код, выполните следующую команду Azure Developer CLI:
azd upИспользуйте следующую таблицу, чтобы ответить на запросы:
Подсказка Ответ Имя среды Сохраните его коротким и в нижнем регистре. Добавьте имя или псевдоним. Например, john-chat. Он используется в качестве части имени группы ресурсов.Подписка Выберите подписку, в которой вы хотите создать ресурсы. Расположение (для размещения) Выберите ближайшее место из списка. Расположение модели OpenAI Выберите ближайшее место из списка. Если то же расположение доступно в качестве первого расположения, выберите это. Дождитесь развертывания приложения. Для завершения развертывания может потребоваться 5–10 минут.
После успешного развертывания приложения в терминале отображаются два URL-адреса.
Выберите этот URL-адрес, помеченный
Deploying service webapp, чтобы открыть приложение чата в браузере.
Использование приложения чата для получения ответов из PDF-файлов
Приложение чата предварительно загружено информацией о физических стандартах для внутренней почты из каталога PDF-файла . Вы можете использовать приложение чата, чтобы задать вопросы о почтовых письмах и пакетах. В следующих шагах описан процесс использования приложения чата.
В браузере выберите или введите Сколько стоит отправить большой пакет во Францию?.
LlamaIndex определяет ответ, использует PDF-файл и потоково передает ответ.
Ответ предоставляется Azure OpenAI, с использованием данных PDF, которые были загружены в хранилище векторов LlamaIndex.
Очистка ресурсов
Чтобы очистить ресурсы, существует два способа решения.
- Ресурсы Azure можно очистить с помощью Интерфейса командной строки разработчика Azure, azd.
- Ваша среда разработчика; GitHub Codespaces или DevContainers с помощью Visual Studio Code.
Очистка ресурсов Azure
Ресурсы Azure, созданные по этой статье, будут оплачиваться через вашу подписку Azure. Если вы не ожидаете, что эти ресурсы потребуются в будущем, удалите их, чтобы избежать дополнительных расходов.
Выполните следующую команду Командной строки разработчика Azure, чтобы удалить ресурсы Azure и удалить исходный код:
azd down --purge
Очистка сред разработчика
Удаление среды GitHub Codespaces гарантирует, что вы можете максимально увеличить объем бесплатных прав на базовые часы, которые вы получаете для вашей учетной записи.
Важный
Дополнительные сведения о привилегиях учетной записи GitHub см. в разделе о включенных ежемесячно хранилище и основных часах для GitHub Codespaces.
Войдите на панель мониторинга GitHub Codespaces.
Найдите работающие в настоящее время пространства Codespaces из репозитория GitHub
Azure-Samples/llama-index-javascript.
Откройте контекстное меню
...для пространства кода, а затем выберите Удалить.
Получить помощь
Этот пример репозитория предлагает сведения об устранении неполадок.
Если проблема не устранена, зарегистрируйте её в разделе Issues репозитория.
Следующий шаг
Ассистенты и вызовы функций в JavaScript