Начало работы с чатом с помощью собственного примера данных для JavaScript
Статья
В этой статье показано, как развернуть и запустить чат с примером данных для JavaScript. В этом примере реализовано приложение чата с помощью JavaScript, Службы Azure OpenAI и получения дополненного поколения (RAG) в службе "Поиск ИИ Azure" , чтобы получить ответы о свойствах аренды. Приложение чата свойств аренды заполняется данными из файлов markdown (*.md), включая политику конфиденциальности, условия обслуживания и поддержку.
Следуя инструкциям в этой статье, вы получите следующее:
Разверните приложение чата в Azure.
Получите ответы на сведения о веб-сайте аренды свойств.
Измените параметры, чтобы изменить поведение ответов.
Завершив эту статью, вы можете начать изменение нового проекта с помощью пользовательского кода и данных.
Эта статья является частью коллекции статей, демонстрирующих создание приложения чата с помощью Службы OpenAI Azure и поиска ИИ Azure. Другие статьи в коллекции включают:
В этой статье используется один или несколько шаблонов приложений ИИ в качестве основы для примеров и рекомендаций в этой статье. Шаблоны приложений ИИ предоставляют вам хорошо поддерживаемые и простые в развертывании эталонные реализации, которые помогают обеспечить высококачественную отправную точку для приложений ИИ.
Обзор архитектуры
Простая архитектура приложения чата показана на следующей схеме:
Схема, показывающая архитектуру от клиента к внутреннему приложению.
Пример приложения чата создан для вымышленной компании Contoso Real Estate, и интеллектуальный интерфейс чата позволяет своим клиентам задавать вопросы о поддержке использования своих продуктов. Пример данных содержит набор документов, описывающих условия обслуживания, политику конфиденциальности и руководство по поддержке. Документы отправляются в архитектуру во время развертывания.
Приложение выполняется из нескольких компонентов, в том числе:
служба : серверная служба, предоставляющая возможности поиска и извлечения.
Служба индексатора: служба, которая индексирует данные и создает индексы поиска.
Веб-приложение: интерфейсное веб-приложение, которое предоставляет пользовательский интерфейс и управляет взаимодействием между пользователем и внутренними службами.
Схема, на которой показаны службы Azure и их поток интеграции для интерфейсного приложения, поиска и приема документов.
Себестоимость
Большинство ресурсов в этой архитектуре используют базовую или ценовую категорию потребления. Цены на потребление основаны на использовании, что означает, что вы оплачиваете только то, что вы используете. Чтобы завершить эту статью, будет взиматься плата, но она будет минимальной. Когда вы закончите работу со статьей, вы можете удалить ресурсы для прекращения расходов.
Среда контейнера разработки доступна со всеми зависимостями, необходимыми для выполнения этой статьи. Контейнер разработки можно запустить в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.
Чтобы использовать эту статью, вам потребуются следующие предварительные требования:
Разрешения учетной записи Azure. Учетная запись Azure должна иметь разрешения Microsoft.Authorization/roleAssignments/write, такие как администратор доступа пользователей или владелец.
Разрешения учетной записи Azure. Учетная запись Azure должна иметь разрешения Microsoft.Authorization/roleAssignments/write, такие как администратор доступа пользователей или владелец.
Используйте следующие инструкции для развертывания предварительно настроенной среды разработки, содержащей все необходимые зависимости для выполнения этой статьи.
GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Помощью Visual Studio Code для Интернета в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.
Щелкните правой кнопкой мыши следующую кнопку и выберите "Открыть ссылку" в новом окне , чтобы среда разработки и документация были доступны одновременно.
На странице "Создание пространства кода" просмотрите параметры конфигурации пространства кода и выберите "Создать новое пространство кода"
Снимок экрана подтверждения перед созданием нового пространства кода.
Дождитесь запуска пространства кода. Этот процесс запуска может занять несколько минут.
В терминале в нижней части экрана войдите в Azure с помощью Интерфейса командной строки разработчика Azure.
Bash
azd auth login
Скопируйте код из терминала и вставьте его в браузер. Следуйте инструкциям по проверке подлинности с помощью учетной записи Azure.
Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.
Расширение "Контейнеры разработки" для Visual Studio Code требует установки Docker на локальном компьютере. Расширение размещает контейнер разработки локально с помощью узла Docker с правильными средствами разработчика и предустановленными зависимостями для выполнения этой статьи.
Создайте локальный каталог на компьютере для проекта.
Bash
mkdir my-intelligent-app && cd my-intelligent-app
Откройте Visual Studio Code в этом каталоге:
Bash
code .
Откройте новый терминал в Visual Studio Code.
Выполните следующую команду AZD, чтобы перенести репозиторий GitHub на локальный компьютер.
Bash
azd init -t azure-search-openai-javascript
Откройте палитру команд, найдите и выберите "Контейнеры разработки": откройте папку в контейнере, чтобы открыть проект в контейнере разработки. Дождитесь, пока контейнер разработки не откроется, прежде чем продолжить.
Войдите в Azure с помощью Интерфейса командной строки разработчика Azure.
Bash
azd auth login
Скопируйте код из терминала и вставьте его в браузер. Следуйте инструкциям по проверке подлинности с помощью учетной записи Azure.
Остальные упражнения в этом проекте происходят в контексте этого контейнера разработки.
Развертывание и запуск
Пример репозитория содержит все файлы кода и конфигурации, необходимые для развертывания приложения чата в Azure. Ниже приведены инструкции по развертыванию примера в Azure.
Развертывание приложения чата в Azure
Внимание
Ресурсы Azure, созданные в этом разделе, несут немедленные затраты, в первую очередь из ресурса поиска ИИ Azure. Эти ресурсы могут начислять затраты, даже если вы прерываете команду до его полного выполнения.
Выполните следующую команду Командной строки разработчика Azure, чтобы подготовить ресурсы Azure и развернуть исходный код:
Bash
azd up
Если вам будет предложено ввести имя среды, сохраните его коротким и нижним регистром. Например, myenv. Он используется в качестве части имени группы ресурсов.
При появлении запроса выберите подписку, чтобы создать ресурсы.
Когда появится запрос на выбор расположения в первый раз, выберите расположение рядом с вами. Это расположение используется для большинства ресурсов, включая размещение.
Если вам будет предложено указать расположение для модели OpenAI, выберите расположение, которое находится рядом с вами. Если то же расположение доступно в качестве первого расположения, выберите это.
Дождитесь развертывания приложения. Для завершения развертывания может потребоваться 5–10 минут.
После успешного развертывания приложения вы увидите URL-адрес, отображаемый в терминале.
Выберите этот URL-адрес, чтобы Deploying service web открыть приложение чата в браузере.
Использование приложения чата для получения ответов из файлов Markdown
Приложение чата предварительно загружено с информацией о аренде из каталога файлов Markdown. Вы можете использовать приложение чата, чтобы задать вопросы о процессе аренды. В следующих шагах описан процесс использования приложения чата.
В браузере выберите или введите политику возврата в текстовом поле в нижней части страницы.
На правой панели используйте вкладки, чтобы понять, как был создан ответ.
Вкладка
Описание
Процесс мысли
Это сценарий взаимодействия в чате. Вы можете просмотреть системный запрос (content) и вопрос пользователя (content).
Вспомогательное содержимое
Сюда входят сведения для ответа на ваш вопрос и исходный материал. Количество ссылок на исходные материалы отмечается в параметрах разработчика. Значение по умолчанию — 3.
Источник
Откроется исходная страница, содержащая ссылку.
По завершении нажмите кнопку скрытия, обозначаемую X над вкладками.
Использование параметров приложения чата для изменения поведения ответов
Аналитика приложения чата определяется моделью OpenAI и параметрами, которые используются для взаимодействия с моделью.
Снимок экрана: параметры разработчика чата.
Параметр
Описание
Переопределение шаблона запроса
Это запрос, используемый для создания ответа.
Получение этого большого количества результатов поиска
Это количество результатов поиска, используемых для создания ответа. Эти источники отображаются в процессе мысли и вкладках содержимого поддержки ссылки.
Исключить категорию
Это категория документов, исключенных из результатов поиска.
Использование семантического ранга для извлечения
Это функция службы "Поиск ИИ Azure", использующая машинное обучение для повышения релевантности результатов поиска.
Использование сводок в контекстном запросе вместо целых документов
Use semantic rankerUse query-contextual summaries При проверке в LLM используются заголовки, извлеченные из ключевых проходов, а не все проходы, в документах с наивысшим рейтингом.
Советы по дальнейшим вопросам
Предложите в приложении чата дальнейшие вопросы на основе ответа.
Режим извлечения
Vectors + Text означает, что результаты поиска основаны на тексте документов и внедрении документов. Векторы означает, что результаты поиска основаны на внедрениях документов. Текст означает, что результаты поиска основаны на тексте документов.
Ответы на завершение чата потоковой передачи
Поток ответа вместо ожидания, пока полный ответ не будет доступен для ответа.
Ниже описан процесс изменения параметров.
В браузере перейдите на вкладку "Параметры разработчика ".
Проверьте сводки с использованием контекстных запросов вместо флажка и задайте один и тот же вопрос еще раз.
What happens if the rental doesn't fit the description?
Чат вернулся с более кратким ответом, например следующим.
Очистка ресурсов
Очистка ресурсов Azure
Ресурсы Azure, созданные в этой статье, выставляются в подписку Azure. Если вы не ожидаете, что эти ресурсы потребуются в будущем, удалите их, чтобы избежать дополнительных расходов.
Выполните следующую команду Командной строки разработчика Azure, чтобы удалить ресурсы Azure и удалить исходный код:
Удаление среды GitHub Codespaces гарантирует, что вы можете максимально увеличить объем бесплатных прав на базовые часы, которые вы получаете для вашей учетной записи.
Снимок экрана: все запущенные пространства Codespace, включая их состояние и шаблоны.
Откройте контекстное меню для пространства кода и нажмите кнопку "Удалить".
Снимок экрана: контекстное меню для одного пространства кода с выделенным параметром удаления.
Для очистки локальной среды не обязательно требуется, но вы можете остановить запущенный контейнер разработки и вернуться к запуску Visual Studio Code в контексте локальной рабочей области.
Откройте палитру команд, найдите команды "Контейнеры разработки", а затем выберите "Контейнеры разработки: открыть папку локально".
Снимок экрана: параметр палитры команд для повторного открытия текущей папки в локальной среде.
Совет
Visual Studio Code остановит запущенный контейнер разработки, но контейнер по-прежнему существует в Docker в остановленном состоянии. Вы всегда можете удалить экземпляр контейнера, образ контейнера и тома из Docker, чтобы освободить больше места на локальном компьютере.
Получить помощь
Этот пример репозитория предлагает сведения об устранении неполадок.
Если ваш выпуск не устранен, зайдите в журнал проблемы репозитория.
Build an AI copilot for Contoso Bike Shop. Integrate Azure OpenAI and Cosmos DB to enable advanced data searches, use GPT-3.5 for enhanced results, and deploy the solution on Azure Kubernetes Service.
Learn how to effectively evaluate answers in your JavaScript RAG-based chat app using Azure OpenAI. Generate sample prompts, run evaluations, and analyze results.
Get started with Python and search across your own data by using a chat app sample implemented using Azure OpenAI Service and Retrieval Augmented Generation (RAG) in Azure AI Search. Easily deploy with Azure Developer CLI. This article uses the Azure AI Reference Template sample.
Get started with Java and search across your own data using a chat app sample implemented using Azure OpenAI Service and Retrieval Augmented Generation (RAG) in Azure AI Search. Easily deploy with Azure Developer CLI. This article uses the Azure AI Reference Template sample.