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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

  • Веб-приложение для размещения интерактивного чата.
  • Ресурс поиска ИИ Azure для получения ответов из собственных данных.
  • Служба Azure OpenAI для предоставления:
    • Ключевые слова для улучшения поиска по собственным данным.
    • Ответы из модели OpenAI.
    • Внедрение из модели ada

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

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

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

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

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

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

  • подписка Azure — создайте бесплатную учетную запись.
  • Разрешения учетной записи Azure. Учетная запись Azure должна иметь разрешения Microsoft.Authorization/roleAssignments/write, такие как администратор доступа пользователей или владелец.
  • Службе Azure OpenAI предоставлен доступ в требуемой подписке Azure В настоящее время доступ к этой службе предоставляется только приложением. Вы можете подать заявку на доступ к Azure OpenAI, выполнив форму по адресу https://aka.ms/oai/access. Если у вас возникли проблемы, создайте соответствующий запрос в этом репозитории, чтобы связаться с нами.
  • учетная запись GitHub;

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

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

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

Внимание

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

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

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

    Открытие в GitHub Codespaces

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметр Description
Переопределение шаблона запроса Переопределяет запрос, используемый для создания ответа на основе результатов вопроса и поиска.
Температура Задает температуру запроса llM, который создает ответ. Более высокие температуры приводят к более творческим откликам, но они могут быть менее приземленными.
Seed Задает начальное значение для повышения воспроизводимости ответов модели. Начальное значение может быть любым целым числом.
Минимальная оценка поиска Задает минимальную оценку результатов поиска, возвращаемого из поиска ИИ Azure. Диапазон показателей зависит от того, используете ли вы гибридные (по умолчанию), только векторы или только текст.
Минимальная оценка повторного ранга Задает минимальную оценку результатов поиска, возвращаемого из семантического реанктера. Оценка всегда варьируется от 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: удаленные ресурсы немедленно очищаются. Это позволяет повторно использовать TPM Azure OpenAI.
  • force: удаление происходит автоматически, не требуя согласия пользователя.

Очистка GitHub Codespaces

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

Внимание

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

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

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

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

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

    Снимок экрана: контекстное меню для одного пространства кода с выделенным параметром удаления.

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

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

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

Следующие шаги