Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как развернуть и запустить приложение чата с собственным примером данных для Python. В этом примере реализовано приложение чата с помощью Python, Azure OpenAI Service и извлечения дополненного поколения (RAG) в службе "Поиск искусственного интеллекта Azure", чтобы получить ответы о преимуществах сотрудников в вымышленной компании. Приложение заполнено PDF-файлами, включающими руководство сотрудника, документ о преимуществах и список ролей и ожиданий компании.
Просмотрите следующее демонстрационный видеоролик.
Следуя инструкциям в этой статье, вы:
- Разверните чат-приложение в Azure.
- Получите ответы о преимуществах сотрудников.
- Измените параметры, чтобы изменить поведение ответов.
После завершения этой процедуры можно начать изменение нового проекта с помощью пользовательского кода.
Эта статья является частью коллекции статей, которые показывают, как создать приложение чата с помощью Azure OpenAI и поиска ИИ Azure.
Другие статьи в коллекции включают:
- .NET
- Java
- JavaScript
- Фронтенд на JavaScript + бэкэнд на Python
Примечание.
В этой статье используется один или несколько шаблонов ИИ приложений в качестве основы для примеров и рекомендаций. Шаблоны приложений искусственного интеллекта предоставляют вам хорошо поддерживаемые эталонные реализации, которые легко развертываться. Они помогают обеспечить высококачественную отправную точку для приложений ИИ.
Обзор архитектуры
На следующей схеме показана простая архитектура приложения чата.
Ключевые компоненты архитектуры:
Веб-приложение для размещения интерактивного чата.
Ресурс поиска ИИ Azure для получения ответов из собственных данных.
Azure OpenAI для предоставления:
- Ключевые слова для улучшения поиска по собственным данным.
- Ответы из модели Azure OpenAI.
- Внедрение из
ada
модели.
Себестоимость
Большинство ресурсов в этой архитектуре используют базовую или ценовую категорию потребления. Цены на потребление основаны на использовании, что означает, что вы оплачиваете только то, что вы используете. За завершение статьи взимается плата, но она минимальна. Когда вы закончите работу со статьей, вы можете удалить ресурсы, чтобы прекратить начисление расходов.
Дополнительные сведения о затратах в примере репозитория.
Предварительные условия
Среда контейнера разработки доступна со всеми зависимостями, необходимыми для выполнения этой статьи. Контейнер разработки можно запустить в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.
Чтобы использовать эту статью, необходимо выполнить следующие предварительные требования.
- Подписка Azure. Создайте ее бесплатно.
- Разрешения учетной записи Azure. У вашей учетной записи Azure должны быть разрешения
Microsoft.Authorization/roleAssignments/write
, например, Администратор доступа пользователей или Владелец. - Учетная запись GitHub.
Открытие среды разработки
Используйте следующие инструкции для развертывания предварительно настроенной среды разработки, содержащей все необходимые зависимости для выполнения этой статьи.
GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Visual Studio Code в веб-версии в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.
Внимание
Все учетные записи GitHub могут использовать GitHub Codespaces до 60 часов бесплатно каждый месяц на двух процессорных ядрах. Дополнительные сведения см. в ежемесячно включаемое хранилище и основные часы GitHub Codespaces.
Запустите процесс, чтобы создать новое пространство кода GitHub в
main
ветви репозитория GitHub Azure-Samples/azure-search-openai-demo GitHub.Щелкните правой кнопкой мыши следующую кнопку и выберите "Открыть ссылку" в новых окнах , чтобы среда разработки и документация была доступна одновременно.
На странице "Создание пространства кода " просмотрите параметры конфигурации пространства кода и выберите "Создать пространство кода".
Дождитесь запуска кодового пространства. Этот процесс запуска может занять несколько минут.
В терминале в нижней части экрана войдите в Azure с помощью Интерфейса командной строки разработчика Azure:
azd auth login --use-device-code
Скопируйте код из терминала и вставьте его в браузер. Следуйте инструкциям по проверке подлинности с помощью учетной записи Azure.
Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.
Развертывание и запуск
Пример репозитория содержит все файлы кода и конфигурации, необходимые для развертывания приложения чата в Azure. Ниже приведены инструкции по развертыванию примера в Azure.
Развертывание приложения чата в Azure
Внимание
Ресурсы Azure, созданные в этом разделе, несут немедленные затраты, в первую очередь из-за ресурса Azure AI Search. Эти ресурсы могут начислять расходы, даже в случае, если вы прерываете команду до её полного выполнения.
Выполните следующую команду Командной строки разработчика Azure, чтобы подготовить ресурсы Azure и развернуть исходный код:
azd up
Если вам будет предложено ввести имя среды, сохраните его коротким и используйте строчные буквы. Примером является
myenv
. Он используется в качестве части имени группы ресурсов.При появлении запроса выберите подписку, в которой необходимо создать ресурсы.
Когда появится запрос на выбор расположения в первый раз, выберите расположение рядом с вами. Это расположение используется для большинства ресурсов, включая хостинг.
Если вам будет предложено указать расположение для модели Azure OpenAI или для ресурса Аналитики документов ИИ Azure, выберите ближайшее к вам расположение. Если то же место доступно в качестве первого места, выберите его.
Дождитесь 5 или 10 минут после развертывания приложения, прежде чем продолжить.
После успешного развертывания приложения в терминале появится URL-адрес.
Выберите URL-адрес, помеченный
(✓) Done: Deploying service webapp
для открытия приложения чата в браузере.
Использование приложения чата для получения ответов из PDF-файлов
Приложение чата предварительно загружено с информацией о преимуществах сотрудников из PDF-файлов. Вы можете использовать приложение чата, чтобы задать вопросы о преимуществах. В следующих шагах описан процесс использования приложения чата. Ответы могут отличаться по мере обновления базовых моделей.
В браузере выберите или введите Что происходит на оценке работы? в текстовое поле чата.
В ответе выберите ссылку.
На правой панели используйте вкладки, чтобы понять, как был создан ответ.
Вкладка Описание Процесс мысли Эта вкладка представляет собой сценарий взаимодействия в чате. Вы можете просмотреть системный запрос () и вопрос пользователя (). Вспомогательное содержимое Эта вкладка содержит сведения для ответа на ваш вопрос и исходный материал. Количество ссылок на исходные материалы отмечается в параметрах разработчика. Значение по умолчанию — 3. Цитата На этой вкладке отображается исходная страница, содержащая ссылку. По завершении снова выберите вкладку, чтобы закрыть панель.
Использование параметров приложения чата для изменения поведения ответов
Аналитика чата определяется моделью Azure OpenAI и параметрами, которые используются для взаимодействия с моделью.
Настройка | Описание |
---|---|
Переопределение шаблона запроса | Переопределяет запрос, используемый для создания ответа на основе результатов вопроса и поиска. |
Температура | Задает температуру запроса на большую языковую модель (LLM), которая создает ответ. Более высокие температуры приводят к более творческим откликам, но они могут быть менее заземленными. |
Семя | Задает начальное значение для повышения воспроизводимости ответов модели. Начальное значение может быть любым целым числом. |
Минимальная оценка поиска | Задает минимальную оценку для результатов поиска, возвращающихся из Azure AI Search. Диапазон оценок зависит от того, используете ли вы гибридные методы (по умолчанию), только векторы или только текст. |
Минимальная оценка повторного ранга | Задает минимальную оценку для результатов поиска, возвращающихся из семантического ранжировщика. Оценка всегда варьируется от 0 до 4. Чем выше оценка, тем более семантически релевантен результат к вопросу. |
Получение этого большого количества результатов поиска | Задает количество результатов поиска, получаемых из поиска ИИ Azure. Дополнительные результаты могут увеличить вероятность поиска правильного ответа. Но больше результатов также может привести к тому, что модель "теряется". Эти источники отображаются на вкладках "Ход мыслей" и "Сопутствующие материалы" ссылки. |
Исключить категорию | Указывает категорию для исключения из результатов поиска. В наборе данных по умолчанию нет категорий. |
Используйте семантический ранкер для извлечения | Включает семантический рангировщик для поиска ИИ Azure, который является моделью, повторно упорядочивающей результаты поиска на основе семантического сходства с запросом пользователя. |
Использование семантических подписей | Отправляет семантические заголовки в LLM вместо полного результата поиска. Семантическая подпись извлекается из результата поиска во время процесса семантического ранжирования. |
Советы по дальнейшим вопросам | Просит LLM предложить последующие вопросы на основе запроса пользователя. |
Режим извлечения | Задает режим извлечения для запроса поиска ИИ Azure. Vectors + Text (Hybrid) использует сочетание векторного поиска и полнотекстового поиска. Векторы используют только векторный поиск. Текст использует только полнотекстовый поиск. Гибрид является оптимальным. |
Ответы на завершение чата потоковой передачи | Непрерывно передает созданный ответ в пользовательский интерфейс чата. |
Ниже описан процесс изменения параметров.
В браузере выберите вкладку Параметры разработчика.
Установите флажок Предложить дальнейшие вопросы и задайте один и тот же вопрос еще раз.
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?
На вкладке "Параметры" снимите флажок "Использовать семантический рангер" для извлечения .
Задайте тот же вопрос еще раз.
What happens in a performance review?
Какова разница в ответах?
- Семантическим ранжировщиком: во время оценки результативности в 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
- Visual Studio Code
Удаление среды GitHub Codespaces гарантирует, что вы можете максимально использовать объем бесплатных часовых квот на ядро, предоставляемых для учетной записи.
Внимание
Дополнительные сведения о правах вашей учетной записи GitHub см. в разделе GitHub Codespaces: ежемесячно включаемая память и основные часы.
Найдите ваши запущенные пространства кода, которые имеют источник из репозитория Azure-Samples/azure-search-openai-demo на GitHub.
Откройте контекстное меню для пространства кода, а затем выберите Удалить.
Получить помощь
Этот пример репозитория содержит сведения об устранении неполадок.
Если проблема не устранена, добавьте проблему на веб-страницу "Проблемы репозитория".
Связанный контент
- Получите исходный код для примера, используемого в этой статье.
- Создайте чат-приложение с архитектурой решения Azure OpenAI, основанной на лучших практиках.
- Узнайте о управлении доступом в генеративных приложениях ИИ с помощью поиска Azure.
- Создайте корпоративное решение Azure OpenAI готовое для использования на предприятии, с помощьюсистемы управления API Azure.
- См. Azure AI Search: превосходящий векторный поиск благодаря гибридным возможностям извлечения и ранжирования.