Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Создание приложений ИИ может быть сложным. Благодаря 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 часов бесплатно каждый месяц на двухядровых экземплярах. Дополнительные сведения см. в GitHub Codespaces о ежемесячно включаемом хранилище и основных часах.
Откройте в Codespace.
Дождитесь запуска пространства кода. Этот процесс запуска может занять несколько минут.
В терминале в нижней части экрана войдите в Azure с помощью Интерфейса командной строки разработчика Azure.
azd auth loginЗавершите процесс проверки подлинности.
Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.
Развертывание и запуск
Пример репозитория содержит все файлы кода и конфигурации, необходимые для развертывания бессерверного приложения чата в Azure. Ниже приведены инструкции по развертыванию примера в Azure.
Развертывание приложения чата в Azure
Внимание
Ресурсы Azure в этом разделе начинают стоить деньги немедленно, даже если вы остановите команду, прежде чем она завершится.
Подготовьте ресурсы 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 на репозитории.
Скриншот первого вопроса и ответа в приложении для чата.
Скриншот исходного документа, содержащего цитату.