Поделиться через


Начало работы с бессерверным чатом ИИ с помощью RAG с помощью LangChain.js

Создание приложений ИИ может быть сложным. Благодаря LangChain.js, Функции Azure и бессерверным технологиям можно упростить этот процесс. Эти средства управляют инфраструктурой и масштабируются автоматически, позволяя сосредоточиться на функциональных возможностях чат-бота. Чат-бот использует корпоративные документы для создания ответов ИИ.

Код содержит примеры данных для вымышленной компании. Клиенты могут задавать вопросы о продуктах компании. Эти данные содержат документы по условиям обслуживания компании, политике конфиденциальности и руководству по поддержке.

Screenshot of chat app in browser showing several suggestions for chat input and the chat text box to enter a question.Снимок экрана: приложение чата в браузере с несколькими предложениями для ввода чата и текстового поля чата для ввода вопроса.

Примечание.

В этой статье используется один или несколько шаблонов приложений ИИ в качестве основы для примеров и рекомендаций в этой статье. Шаблоны приложений ИИ предоставляют вам хорошо поддерживаемые и простые в развертывании эталонные реализации, которые помогают обеспечить высококачественную отправную точку для приложений ИИ.

Обзор архитектуры

Приложение чата

Пользователь взаимодействует с приложением:

  • Интерфейс чата в клиентском веб-приложении для беседы.
  • Клиентское веб-приложение отправляет запрос пользователя в БЕССерверный API через HTTP-вызовы.
  • Бессерверный API создает цепочку для координации взаимодействия между ИИ Azure и поиском ИИ Azure для создания ответа.
  • Извлечение PDF-документа с помощью Azure Blob Storage.
  • Затем созданный ответ отправляется в веб-приложение и отображается пользователю.

Простая архитектура приложения чата показана на следующей схеме:

Diagram showing architecture from client to backend app.Схема, показывающая архитектуру от клиента к внутреннему приложению.

LangChain.js упрощает сложность между службами

Поток API полезен, чтобы понять, как LangChain.js помогает в данной ситуации путём абстрагирования взаимодействий. Конечная точка API без сервера:

  • Получает вопрос от пользователя.
  • Создает клиентские объекты:
    • Azure OpenAI для внедрения и чата
    • Поиск Векторного хранилища векторов в Azure AI
  • Создает цепочку документов с моделью LLM, сообщением чата (запросами системы и пользователя) и источником документа.
  • Создает цепочку извлечения из цепочки документов и хранилища векторов.
  • Потоковая передача ответов из цепочки извлечения.

Работа разработчика заключается в правильной настройке служб зависимостей, таких как Azure OpenAI и Поиск ИИ Azure, и правильно создавать цепочки. Базовая логика цепочки знает, как устранить запрос. Это позволяет создавать цепочки из множества различных служб и конфигураций до тех пор, пока они работают с требованиями LangChain.js.

Где находится Azure в этой архитектуре?

Это приложение выполняется из нескольких компонентов:

  • Веб-приложение, созданное с помощью одного веб-компонента чата, созданного с помощью Lit и размещенного на Статические веб-приложения Azure. Код находится в папке packages/webapp .

  • Бессерверный API, созданный с помощью Функции Azure и использования LangChain.js для приема документов и создания ответов на запросы чата пользователя. Код находится в папке packages/webapp .

  • Служба Azure OpenAI для создания внедрения и создания ответа.

  • База данных для хранения текста, извлеченного из документов и векторов, созданных LangChain.js, с помощью поиска ИИ Azure.

  • Хранилище файлов для хранения исходных документов с помощью Хранилище BLOB-объектов Azure.

Необходимые компоненты

Среда контейнера разработки доступна со всеми зависимостями, необходимыми для выполнения этой статьи. Контейнер разработки можно запустить в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.

Чтобы использовать эту статью, вам потребуются следующие предварительные требования:

Открытие среды разработки

Используйте следующие инструкции для развертывания предварительно настроенной среды разработки, содержащей все необходимые зависимости для выполнения этой статьи.

GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Помощью Visual Studio Code для Интернета в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.

Внимание

Все учетные записи GitHub могут использовать пространства Кода до 60 часов бесплатно каждый месяц с 2 основными экземплярами. Дополнительные сведения см. в GitHub Codespaces ежемесячно включаемых в хранилище и основные часы.

  1. Откройте в Codespace.

    Open in GitHub CodespacesОткрытие в GitHub Codespaces

  2. Дождитесь запуска пространства кода. Этот процесс запуска может занять несколько минут.

  3. В терминале в нижней части экрана войдите в Azure с помощью Интерфейса командной строки разработчика Azure.

    azd auth login
    

    Завершите процесс проверки подлинности.

  4. Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.

Развертывание и запуск

Пример репозитория содержит все файлы кода и конфигурации, необходимые для развертывания бессерверного приложения чата в Azure. Ниже приведены инструкции по развертыванию примера в Azure.

Развертывание приложения чата в Azure

Внимание

Ресурсы Azure, созданные в этом разделе, несут немедленные затраты, в первую очередь из ресурса поиска ИИ Azure. Эти ресурсы могут начислять затраты, даже если вы прерываете команду до его полного выполнения.

  1. Подготовьте ресурсы Azure и разверните исходный код с помощью следующей команды Командной строки разработчика Azure:

    azd up
    
  2. Ответьте на запросы, используя следующую таблицу:

    Prompt Ответ
    Имя среды Сохраните его коротким и строчным регистром. Добавьте имя или псевдоним. Например, john-chat. Он используется в качестве части имени группы ресурсов.
    Отток подписок Выберите подписку для создания ресурсов.
    Расположение (для размещения) Выберите расположение рядом с вами из списка.
    Расположение модели OpenAI Выберите расположение рядом с вами из списка. Если то же расположение доступно в качестве первого расположения, выберите это.
  3. Дождитесь развертывания приложения. Для завершения развертывания может потребоваться 5–10 минут.

  4. После успешного развертывания приложения в терминале отображаются два URL-адреса.

  5. Выберите этот URL-адрес, чтобы Deploying service webapp открыть приложение чата в браузере.

Использование приложения чата для получения ответов из PDF-файлов

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

  1. В браузере выберите или введите политику возврата.

    Screenshot of chat app's first question and answer.Снимок экрана: первый вопрос и ответ приложения чата.

  2. Выберите следующий вопрос.

    Screenshot of chat app's suggested follow-up prompt and answer.Снимок экрана: рекомендуемый запрос и ответ в приложении чата.

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

    Screenshot of original document containing citation.Снимок экрана: исходный документ, содержащий ссылку.

Очистка ресурсов

Очистка ресурсов Azure

Ресурсы Azure, созданные в этой статье, выставляются в подписку Azure. Если вы не ожидаете, что эти ресурсы потребуются в будущем, удалите их, чтобы избежать дополнительных расходов.

Удалите ресурсы Azure и удалите исходный код с помощью следующей команды Azure Developer CLI:

azd down --purge

Очистка GitHub Codespaces

Удаление среды GitHub Codespaces гарантирует, что вы можете максимально увеличить объем бесплатных прав на базовые часы, которые вы получаете для вашей учетной записи.

Внимание

Дополнительные сведения о правах учетной записи GitHub см . в GitHub Codespaces ежемесячно включено в хранилище и основные часы.

  1. Войдите на панель мониторинга GitHub Codespaces (https://github.com/codespaces).

  2. Найдите текущие запущенные пространства Codespaces, полученные из Azure-Samples/serverless-chat-langchainjs репозитория GitHub.

    Screenshot of all the running Codespaces including their status and templates.Снимок экрана: все запущенные пространства Codespace, включая их состояние и шаблоны.

  3. Откройте контекстное меню для ...пространства кода и нажмите кнопку "Удалить".

Получить помощь

Этот пример репозитория предлагает сведения об устранении неполадок.

Если проблема не устранена, зайдите в журнал проблемы репозитория.