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


Начало работы с чатом с помощью собственного примера данных для Python

В этой статье показано, как развернуть и запустить приложение чата с собственным примером данных для Python. В этом примере реализовано приложение чата с помощью Python, Azure OpenAI Service и извлечения дополненного поколения (RAG) в службе "Поиск искусственного интеллекта Azure", чтобы получить ответы о преимуществах сотрудников в вымышленной компании. Приложение заполнено PDF-файлами, включающими руководство сотрудника, документ о преимуществах и список ролей и ожиданий компании.

Просмотрите следующее демонстрационный видеоролик.

Следуя инструкциям в этой статье, вы:

  • Разверните чат-приложение в Azure.
  • Получите ответы о преимуществах сотрудников.
  • Измените параметры, чтобы изменить поведение ответов.

После завершения этой процедуры можно начать изменение нового проекта с помощью пользовательского кода.

Эта статья является частью коллекции статей, которые показывают, как создать приложение чата с помощью Azure OpenAI и поиска ИИ Azure.

Другие статьи в коллекции включают:

Примечание.

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

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

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

Схема, показывающая архитектуру от клиента к внутреннему приложению.

Ключевые компоненты архитектуры:

  • Веб-приложение для размещения интерактивного чата.

  • Ресурс поиска ИИ Azure для получения ответов из собственных данных.

  • Azure OpenAI для предоставления:

    • Ключевые слова для улучшения поиска по собственным данным.
    • Ответы из модели Azure OpenAI.
    • Внедрение из ada модели.

Себестоимость

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

Дополнительные сведения о затратах в примере репозитория.

Предварительные условия

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

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

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

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

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

Внимание

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

  1. Запустите процесс, чтобы создать новое пространство кода GitHub в main ветви репозитория GitHub Azure-Samples/azure-search-openai-demo GitHub.

  2. Щелкните правой кнопкой мыши следующую кнопку и выберите "Открыть ссылку" в новых окнах , чтобы среда разработки и документация была доступна одновременно.

    Открыть в GitHub Codespaces.

  3. На странице "Создание пространства кода " просмотрите параметры конфигурации пространства кода и выберите "Создать пространство кода".

    снимок экрана, на котором показан экран подтверждения перед созданием нового пространства кода.

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

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

    azd auth login --use-device-code
    
  6. Скопируйте код из терминала и вставьте его в браузер. Следуйте инструкциям по проверке подлинности с помощью учетной записи Azure.

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

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

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

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

Внимание

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

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

    azd up
    
  2. Если вам будет предложено ввести имя среды, сохраните его коротким и используйте строчные буквы. Примером является myenv. Он используется в качестве части имени группы ресурсов.

  3. При появлении запроса выберите подписку, в которой необходимо создать ресурсы.

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

  5. Если вам будет предложено указать расположение для модели Azure OpenAI или для ресурса Аналитики документов ИИ Azure, выберите ближайшее к вам расположение. Если то же место доступно в качестве первого места, выберите его.

  6. Дождитесь 5 или 10 минут после развертывания приложения, прежде чем продолжить.

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

    Снимок экрана: развернутый приложение, как указано в конце azd CLI azd up process.

  8. Выберите URL-адрес, помеченный (✓) Done: Deploying service webapp для открытия приложения чата в браузере.

    Снимок экрана: приложение чата в браузере с несколькими предложениями для ввода чата и текстового поля чата для ввода вопроса.

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

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

  1. В браузере выберите или введите Что происходит на оценке работы? в текстовое поле чата.

    Снимок экрана: первый ответ приложения чата.

  2. В ответе выберите ссылку.

    Снимок экрана: первый ответ приложения чата с выделенной ссылкой в красном поле.

  3. На правой панели используйте вкладки, чтобы понять, как был создан ответ.

    Вкладка Описание
    Процесс мысли Эта вкладка представляет собой сценарий взаимодействия в чате. Вы можете просмотреть системный запрос () и вопрос пользователя ().
    Вспомогательное содержимое Эта вкладка содержит сведения для ответа на ваш вопрос и исходный материал. Количество ссылок на исходные материалы отмечается в параметрах разработчика. Значение по умолчанию — 3.
    Цитата На этой вкладке отображается исходная страница, содержащая ссылку.
  4. По завершении снова выберите вкладку, чтобы закрыть панель.

Использование параметров приложения чата для изменения поведения ответов

Аналитика чата определяется моделью Azure OpenAI и параметрами, которые используются для взаимодействия с моделью.

Снимок экрана: параметры разработчика чата.

Настройка Описание
Переопределение шаблона запроса Переопределяет запрос, используемый для создания ответа на основе результатов вопроса и поиска.
Температура Задает температуру запроса на большую языковую модель (LLM), которая создает ответ. Более высокие температуры приводят к более творческим откликам, но они могут быть менее заземленными.
Семя Задает начальное значение для повышения воспроизводимости ответов модели. Начальное значение может быть любым целым числом.
Минимальная оценка поиска Задает минимальную оценку для результатов поиска, возвращающихся из Azure AI Search. Диапазон оценок зависит от того, используете ли вы гибридные методы (по умолчанию), только векторы или только текст.
Минимальная оценка повторного ранга Задает минимальную оценку для результатов поиска, возвращающихся из семантического ранжировщика. Оценка всегда варьируется от 0 до 4. Чем выше оценка, тем более семантически релевантен результат к вопросу.
Получение этого большого количества результатов поиска Задает количество результатов поиска, получаемых из поиска ИИ Azure. Дополнительные результаты могут увеличить вероятность поиска правильного ответа. Но больше результатов также может привести к тому, что модель "теряется". Эти источники отображаются на вкладках "Ход мыслей" и "Сопутствующие материалы" ссылки.
Исключить категорию Указывает категорию для исключения из результатов поиска. В наборе данных по умолчанию нет категорий.
Используйте семантический ранкер для извлечения Включает семантический рангировщик для поиска ИИ Azure, который является моделью, повторно упорядочивающей результаты поиска на основе семантического сходства с запросом пользователя.
Использование семантических подписей Отправляет семантические заголовки в LLM вместо полного результата поиска. Семантическая подпись извлекается из результата поиска во время процесса семантического ранжирования.
Советы по дальнейшим вопросам Просит LLM предложить последующие вопросы на основе запроса пользователя.
Режим извлечения Задает режим извлечения для запроса поиска ИИ Azure. Vectors + Text (Hybrid) использует сочетание векторного поиска и полнотекстового поиска. Векторы используют только векторный поиск. Текст использует только полнотекстовый поиск. Гибрид является оптимальным.
Ответы на завершение чата потоковой передачи Непрерывно передает созданный ответ в пользовательский интерфейс чата.

Ниже описан процесс изменения параметров.

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

  2. Установите флажок Предложить дальнейшие вопросы и задайте один и тот же вопрос еще раз.

    What happens in a performance review?
    

    В чате были возвращены рекомендуемые дополнительные вопросы, такие как следующие примеры:

    1. What is the frequency of performance reviews?
    2. How can employees prepare for a performance review?
    3. Can employees dispute the feedback received during the performance review?
    
  3. На вкладке "Параметры" снимите флажок "Использовать семантический рангер" для извлечения .

  4. Задайте тот же вопрос еще раз.

    What happens in a performance review?
    
  5. Какова разница в ответах?

    • Семантическим ранжировщиком: во время оценки результативности в Contoso Electronics сотрудники могут обсудить свои успехи и проблемы на рабочем месте (1). Обзор предоставляет положительные и конструктивные отзывы, помогающие сотрудникам развивать и расти в своих ролях (1). Сотрудник получает письменное сводку о проверке производительности, которая включает оценку их производительности, отзывов и целей в предстоящий год (1). Обзор производительности — это двусторонний диалог между руководителями и сотрудниками (1).
    • Без семантического ранджера: во время проверки производительности в Contoso Electronics сотрудники могут обсудить свои успехи и проблемы на рабочем месте. Положительные и конструктивные отзывы предоставляются для того, чтобы помочь сотрудникам развивать и расти в своих ролях. Приведены письменные сводки по обзору производительности, включая оценку производительности, отзывов и целей в предстоящем году. Обзор представляет собой двусторонний диалог между руководителями и сотрудниками (1).

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

В следующих шагах описан процесс очистки используемых ресурсов.

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

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

Выполните следующую команду Командной строки разработчика Azure, чтобы удалить ресурсы Azure и удалить исходный код:

azd down --purge --force

Переключатели предоставляют:

  • purge: Удаленные ресурсы немедленно очищаются, чтобы вы могли повторно использовать токены Azure OpenAI в минуту.
  • force: удаление происходит без уведомления, не требуя согласия пользователя.

Очистка GitHub Codespaces и Visual Studio Code

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

Внимание

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

  1. Войдите в панель мониторинга GitHub Codespaces.

  2. Найдите ваши запущенные пространства кода, которые имеют источник из репозитория Azure-Samples/azure-search-openai-demo на GitHub.

    снимок экрана, на котором показаны все выполняемые пространства кода, включая их состояние и шаблоны.

  3. Откройте контекстное меню для пространства кода, а затем выберите Удалить.

    снимок экрана, показывающий контекстное меню для одного пространства кода с выделенным параметром

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

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

Если проблема не устранена, добавьте проблему на веб-страницу "Проблемы репозитория".