Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создание приложений ИИ может быть сложным. Благодаря 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 на репозитории.
Скриншот первого вопроса и ответа в приложении для чата.
Скриншот исходного документа, содержащего цитату.