Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создание приложений ИИ может быть сложным. Благодаря LangChain.js, Функции Azure и бессерверным технологиям можно упростить этот процесс. Эти средства управляют инфраструктурой и масштабируются автоматически, позволяя сосредоточиться на функциональных возможностях чат-бота. Чат-бот использует корпоративные документы для создания ответов ИИ.
Код содержит примеры данных для вымышленной компании. Клиенты могут задавать вопросы о продуктах компании. Эти данные содержат документы по условиям обслуживания компании, политике конфиденциальности и руководству по поддержке.
Снимок экрана приложения чата в браузере, показывающий несколько предложений для ввода чата и текстовое поле для ввода вопроса.
Примечание.
В этой статье используются один или несколько шаблонов приложений ИИ в качестве основы для примеров и рекомендаций. Шаблоны приложений ИИ предоставляют вам хорошо поддерживаемые и простые в развертывании эталонные реализации, которые помогают обеспечить высококачественную отправную точку для приложений ИИ.
Обзор архитектуры
Приложение чата
Пользователь взаимодействует с приложением:
- Интерфейс чата в клиентском веб-приложении для беседы.
- Клиентское веб-приложение отправляет запрос пользователя в бессерверный API, используя HTTP-вызовы.
- Бессерверный API создает цепь для координации взаимодействия между Azure AI и Azure AI Search для генерации ответа.
- Извлечение PDF-документа с помощью Azure Blob Storage.
- Затем созданный ответ отправляется в веб-приложение и отображается пользователю.
Простая архитектура приложения чата показана на следующей схеме:
Схема, показывающая архитектуру от клиента к серверному приложению.
LangChain.js упрощает сложность между службами
Поток API полезен, чтобы понять, как LangChain.js помогает в данной ситуации путём абстрагирования взаимодействий. Конечная безсерверная API-точка:
- Получает вопрос от пользователя.
- Создает клиентские объекты:
- Azure OpenAI для внедрения и чата
- Поиск векторов в Azure AI хранилище
- Создает цепочку документов с моделью LLM, сообщением чата (запросами системы и пользователя) и источником документа.
- Создает цепочку извлечения из цепочки документов и хранилища векторов.
- Потоковая трансляция ответов из цепочки извлечения.
Работа разработчика заключается в правильной настройке служб зависимостей, таких как Azure OpenAI и Поиск ИИ Azure, и правильно создавать цепочки. Базовая логика цепочки знает, как устранить запрос. Это позволяет создавать цепочки из множества различных служб и конфигураций до тех пор, пока они работают с требованиями LangChain.js.
Где находится Azure в этой архитектуре?
Это приложение выполняется из нескольких компонентов:
Веб-приложение, созданное на основе единственного компонента для чата, разработанного с помощью Lit и размещённого на платформе Azure Static Web Apps. Код находится в папке
packages/webapp
.Бессерверный API, созданный с помощью Azure Functions и LangChain.js для обработки документов и генерации ответов на запросы пользователя в чате. Код находится в папке
packages/api
.Служба Azure OpenAI для создания эмбеддингов и генерации ответов.
База данных для хранения текста, извлеченного из документов, и векторов, созданных LangChain.js, с использованием Azure AI Search.
Хранилище файлов для хранения исходных документов с использованием Azure Blob Storage.
Предварительные условия
Среда контейнера разработки доступна со всеми зависимостями, необходимыми для работы с этой статьей. Контейнер разработки можно запустить в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.
Чтобы использовать эту статью, вам потребуются следующие предварительные требования:
- Пространства кода (рекомендуется)
- Visual Studio Code
- подписка Azure — создайте бесплатную учетную запись.
- Разрешения для учетной записи Azure — ваша учетная запись должна обладать разрешениями Microsoft.Authorization/roleAssignments/write, такими как администратор доступа пользователей или владелец.
- Учетная запись GitHub.
Открытие среды разработки
Используйте следующие инструкции для развертывания предварительно настроенной среды разработки, содержащей все необходимые зависимости для выполнения этой статьи.
- GitHub Codespaces (рекомендуется)
- Visual Studio Code
GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Visual Studio Code для Web в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.
Внимание
Все учетные записи GitHub могут бесплатно использовать Codespaces до 60 часов в месяц с экземплярами, содержащими 2 ядра. Дополнительные сведения см. в GitHub Codespaces о ежемесячно включаемом хранилище и основных часах.
Откройте в Codespace.
Дождитесь запуска пространства кода. Этот процесс запуска может занять несколько минут.
В терминале в нижней части экрана войдите в Azure с помощью Интерфейса командной строки разработчика Azure.
azd auth login
Завершите процесс проверки подлинности.
Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.
Развертывание и запуск
Пример репозитория содержит все файлы кода и конфигурации, необходимые для развертывания бессерверного приложения чата в Azure. Ниже приведены инструкции по развертыванию примера в Azure.
Развертывание приложения чата в Azure
Внимание
Ресурсы Azure, созданные в этом разделе, несут немедленные затраты, в основном из-за ресурса Azure AI Search. Эти ресурсы могут начислять затраты, даже если вы прерываете выполнение команды до её полного завершения.
Подготовьте ресурсы Azure и разверните исходный код с помощью следующей команды Командной строки разработчика Azure:
azd up
Ответьте на запросы, используя следующую таблицу:
Запрос Ответ Имя среды Оставьте коротким и строчным. Добавьте имя или псевдоним. Например, john-chat
. Он используется в качестве части имени группы ресурсов.Подписка Выберите подписку для создания ресурсов. Расположение (для размещения) Выберите место рядом с вами из списка. Расположение модели OpenAI Выберите место ближайшее к вам из списка. Если то же расположение доступно в качестве первого расположения, выберите это. Дождитесь развертывания приложения. Для завершения развертывания может потребоваться 5–10 минут.
После успешного развертывания приложения в терминале отображаются два URL-адреса.
Выберите URL-адрес с меткой
Deploying service webapp
, чтобы открыть приложение чата в браузере.
Использование приложения чата для получения ответов из PDF-файлов
Приложение для чата предварительно загружено информацией об аренде из каталога PDF-файлов. Вы можете использовать приложение чата, чтобы задать вопросы о процессе аренды. В следующих шагах описан процесс использования приложения чата.
В браузере выберите или введите Какая политика возврата.
Выберите следующий вопрос.
Снимок экрана предлагаемых последующих действий и ответа в приложении чата.
В ответе выберите ссылку, чтобы просмотреть документ, используемый для создания ответа. Это доставляет документ из хранилища Azure для клиента. Когда вы закончите работу с новой вкладкой браузера, закройте его, чтобы вернуться к бессерверному приложению чата.
Очистка ресурсов
Очистка ресурсов Azure
Ресурсы Azure, созданные в этой статье, оплачиваются через вашу подписку Azure. Если вы не ожидаете, что эти ресурсы потребуются в будущем, удалите их, чтобы избежать дополнительных расходов.
Удалите ресурсы Azure и удалите исходный код с помощью следующей команды Azure Developer CLI:
azd down --purge
Работы по очистке GitHub Codespaces
- GitHub Codespaces
- Visual Studio Code
Удаление среды GitHub Codespaces гарантирует, что вы можете максимально использовать объем свободного лимита по часам на ядро, которые предоставляются для вашей учетной записи.
Внимание
Дополнительные сведения о правах учетной записи GitHub см. в разделе Ежемесячно включенное хранилище и основные часы в GitHub Codespaces.
Войдите на панель мониторинга GitHub Codespaces.
Найдите ваши текущие запущенные пространства Codespaces из репозитория GitHub
Azure-Samples/serverless-chat-langchainjs
.Снимок экрана: все запущенные пространства Codespace, включая их состояние и шаблоны.
Откройте контекстное меню,
...
, для пространства кода и затем выберите «Удалить».
Получить помощь
Данный репозиторий содержит информацию по устранению неполадок.
Если ваша проблема не устранена, добавьте её в раздел Issues на репозитории.