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


Использование веб-приложения Azure OpenAI

Наряду с Azure AI Studio, Azure OpenAI Studio, API и пакетами SDK можно использовать настраиваемое автономное веб-приложение для взаимодействия с моделями Azure OpenAI с помощью графического пользовательского интерфейса. Ключевые возможности:

  • Подключение с несколькими источниками данных для поддержки расширенного создания запросов и получения дополненного поколения, включая поиск ИИ Azure, поток запросов и многое другое.
  • Журнал бесед и сбор отзывов пользователей через Cosmos DB.
  • Проверка подлинности с помощью управления доступом на основе ролей с помощью идентификатора Microsoft Entra.
  • Настройка пользовательского интерфейса, источников данных и функций с помощью переменных среды (без кода с помощью портал Azure).
  • Поддержка изменения исходного кода базового веб-приложения в качестве репозитория с открытым кодом.

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

Для начинающих Azure OpenAI, стремящихся общаться с данными через веб-приложение, Azure AI Studio является рекомендуемой средой для первоначального развертывания и конфигурации источника данных.

Снимок экрана: интерфейс веб-приложения.

Важные замечания

  • Это веб-приложение и многие из его функций находятся в предварительной версии, что означает, что ошибки могут возникать и что не все функции могут быть завершены. Если вы нашли ошибку или требуется помощь, вызовите проблему в связанном репозитории GitHub.
  • Публикация веб-приложения создает экземпляр службы приложение Azure в подписке. Это может привести к затратам в зависимости от выбранного плана ценообразования. После завершения работы с приложением его можно удалить и все связанные ресурсы из портал Azure.
  • GPT-4 Turbo с моделями Визуального зрения в настоящее время не поддерживается.
  • По умолчанию приложение развертывается с помощью уже настроенного поставщика удостоверений Майкрософт. Поставщик удостоверений ограничивает доступ к приложению членам клиента Azure. Чтобы добавить или изменить проверку подлинности, выполните приведенные действия.
    1. Перейдите к портал Azure и найдите имя приложения, указанное во время публикации. Выберите веб-приложение и выберите проверку подлинности в меню слева. Затем выберите " Добавить поставщика удостоверений".

      Снимок экрана: область проверки подлинности в портал Azure.

    2. Выберите Корпорацию Майкрософт в качестве поставщика удостоверений. Параметры по умолчанию на этой странице ограничивают приложение только вашим клиентом, поэтому вам не нужно ничего другого здесь изменить. Выберите Добавить.

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

Настройка приложения с помощью переменных среды

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

Эти переменные среды можно изменить с помощью портал Azure после развертывания веб-приложения.

  1. В портал Azure найдите и выберите страницу Служба приложений.
  2. Выберите только что развернутые веб-приложения.
  3. В меню слева приложения выберите переменные среды параметров > .
  4. Чтобы изменить существующую переменную среды, щелкните его имя.
  5. Чтобы добавить одну новую переменную среды, нажмите кнопку "Добавить" в верхней строке меню панели.
  6. Чтобы использовать редактор на основе JSON для управления переменными среды, нажмите кнопку "Дополнительно изменить".

При настройке приложения рекомендуется:

  • Четкое представление о том, как каждый параметр, который вы реализуете, влияет на взаимодействие с пользователем.

  • Обновление параметров приложения для каждого развернутого приложения, чтобы использовать новые ключи API после смены ключей для ресурса Azure OpenAI или службы поиска искусственного интеллекта Azure.

Пример исходного кода веб-приложения доступен на сайте GitHub. Исходный код предоставляется "как есть" и только в качестве примера. Клиенты отвечают за все настройки и реализацию своих веб-приложений.

Изменение пользовательского интерфейса приложения

Переменные среды, относящиеся к настройке пользовательского интерфейса:

  • UI_CHAT_DESCRIPTION: это текст меньшего абзаца, показанный ниже UI_CHAT_TITLE в центре страницы при загрузке.
    • Тип данных: текст
  • UI_CHAT_LOGO: это большой образ, показанный в центре страницы при загрузке.
    • Тип данных: URL-адрес изображения
  • UI_CHAT_TITLE: это большой текст, отображаемый в центре страницы при загрузке.
    • Тип данных: текст
  • UI_FAVICON: это favicon, показанный в окне браузера или вкладке.
    • Тип данных: URL-адрес изображения
  • UI_LOGO: логотип отображается в левом верхнем углу страницы и слева от заголовка.
    • Тип данных: URL-адрес изображения
  • UI_TITLE: это заголовок, отображаемый в окне браузера или вкладке. Он также отображается в левом верхнем углу страницы логотипом.
    • Тип данных: текст
  • UI_SHOW_SHARE_BUTTON: эта кнопка отображается в правом верхнем углу страницы и позволяет пользователям совместно использовать URL-адрес, связанный с веб-приложением.
    • Тип данных: boolean, должен ввести значение True или False, по умолчанию — True, если осталось пустым или не указано.
  • UI_SHOW_CHAT_HISTORY_BUTTON: отображается в правом верхнем углу страницы и слева от UI_SHOW_SHARE_BUTTON.
    • Тип данных: boolean, должен ввести значение True или False, по умолчанию — True, если осталось пустым или не указано.

Чтобы изменить пользовательский интерфейс приложения, следуйте инструкциям на предыдущем шаге, чтобы открыть страницу переменных среды для веб-приложения. Затем используйте дополнительное редактирование, чтобы открыть редактор на основе JSON. В верхней части JSON (после символа [ ) вставьте приведенный ниже блок кода и настройте значения соответствующим образом:

  {
    "name": "UI_CHAT_DESCRIPTION",
    "value": "This is an example of a UI Chat Description. Chatbots can make mistakes. Check important info and sensitive info.",
    "slotSetting": false
  },
  {
    "name": "UI_CHAT_LOGO",
    "value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
    "slotSetting": false
  },
  {
    "name": "UI_CHAT_TITLE",
    "value": "This is an example of a UI Chat Title. Start chatting",
    "slotSetting": false
  },
  {
    "name": "UI_FAVICON",
    "value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
    "slotSetting": false
  },
  {
    "name": "UI_LOGO",
    "value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
    "slotSetting": false
  },
  {
    "name": "UI_TITLE",
    "value": "This is an example of a UI Title",
    "slotSetting": false
  },

Включение журнала чатов с помощью Cosmos DB

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

Чтобы включить журнал чата, разверните или повторно разверните модель в качестве веб-приложения с помощью Azure OpenAI Studio или Azure AI Studio и выберите "Включить журнал чата" и отзыв пользователей в веб-приложении.

Снимок экрана: флажок для включения журнала чата в Azure OpenAI или Azure AI Studio.

Внимание

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

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

Примечание.

Популярные регионы Azure, такие как Восточная часть США, могут столкнуться с периодами высокого спроса, где возможно, невозможно развернуть новый экземпляр Cosmos DB. В этом случае выберите вариант развертывания в альтернативном регионе, например восточная часть США 2 или повторите развертывание до тех пор, пока оно не будет успешно выполнено. Если развертывание Cosmos DB завершится ошибкой, приложение будет доступно по указанному URL-адресу, но журнал чата не будет доступен. Включение журнала бесед также включает кнопку "Просмотр журнала бесед" в правом верхнем углу.

При развертывании с выбранным параметром журнала чата автоматически заполняются следующие переменные среды, поэтому не требуется изменять их, если вы не хотите переключить экземпляры Cosmos DB. В их число входят:

  • AZURE_COSMOSDB_ACCOUNT: это имя учетной записи Cosmos DB, развернутой вместе с веб-приложением.
    • Тип данных: текст
  • AZURE_COSMOSDB_ACCOUNT_KEY: это альтернативная переменная среды, которая используется только в том случае, если разрешения не предоставляются с помощью идентификатора Microsoft Entra и проверки подлинности на основе ключей используются вместо этого.
    • Тип данных: текст. Обычно не присутствует или заполняется.
  • AZURE_COSMOSDB_DATABASE: это имя объекта базы данных в Cosmos DB, развернутого вместе с веб-приложением.
    • Тип данных: текст должен быть db_conversation_history
  • AZURE_COSMOSDB_CONTAINER: это имя объекта контейнера базы данных в Cosmos DB, развернутого вместе с веб-приложением.
    • Тип данных: текст должен быть conversations
  • AZURE_COSMOSDB_ACCOUNT: это имя учетной записи Cosmos DB, развернутой вместе с веб-приложением.
    • Тип данных: текст

Снимок экрана: журнал чата в веб-приложении.

Сбор отзывов пользователей

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

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

  • AZURE_COSMOSDB_ENABLE_FEEDBACK: это имя учетной записи Cosmos DB, развернутой вместе с веб-приложением.
    • Тип данных: тип данных: логический, должен ввести значение True или False.

Это можно сделать с помощью дополнительных параметров редактирования или простых параметров редактирования, как описано ранее. Json для вставки в редактор JSON расширенного редактирования:

  {
    "name": "AZURE_COSMOSDB_ENABLE_FEEDBACK",
    "value": "True",
    "slotSetting": false
  },

Подключение к поиску ИИ Azure и отправка файлов в качестве источника данных

Использование Azure AI Studio

Следуйте инструкциям из этого руководства по интеграции поиска ИИ Azure с AI Studio и повторного развертывания приложения.

Использование Azure OpenAI Studio

Следуйте инструкциям из этого руководства по интеграции поиска ИИ Azure с OpenAI Studio и повторного развертывания приложения.

Использование переменных среды

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

  • DATASOURCE_TYPE: определяет, какой источник данных следует использовать при ответе на запросы пользователя.
    • Тип данных: текст. Должно быть задано AzureCognitiveSearch значение (прежнее имя для поиска ИИ Azure)
  • AZURE_SEARCH_SERVICE: это имя экземпляра службы поиска ИИ Azure.
    • Тип данных: текст
  • AZURE_SEARCH_INDEX: это имя индекса экземпляра службы поиска ИИ Azure.
    • Тип данных: текст
  • AZURE_SEARCH_KEY: это ключ проверки подлинности экземпляра поиска ИИ Azure. Необязательно, если для проверки подлинности используется идентификатор Microsoft Entra.
    • Тип данных: текст

Дальнейшие сценарии настройки с помощью переменных среды

  • AZURE_SEARCH_USE_SEMANTIC_SEARCH: указывает, следует ли использовать семантический поиск в поиске ИИ Azure.
    • Тип данных: логическое значение, должно быть задано False , если не используется семантический поиск.
  • AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG: указывает имя конфигурации семантического поиска, используемой, если включен семантический поиск.
    • Тип данных: текст, по умолчанию azureml-default.
  • AZURE_SEARCH_INDEX_TOP_K: определяет количество лучших документов для получения из поиска ИИ Azure.
    • Тип данных: целое число, должно иметь значение 5.
  • AZURE_SEARCH_ENABLE_IN_DOMAIN: ограничивает ответы на запросы, связанные только с данными.
    • Тип данных: логический, должен иметь значение True.
  • AZURE_SEARCH_CONTENT_COLUMNS: указывает список полей в индексе поиска ИИ Azure, который содержит текстовое содержимое документов, используемый при разработке ответа бота.
    • Тип данных: текст, по умолчанию используется content для развертывания из Azure AI Studio или Azure OpenAI Studio.
  • AZURE_SEARCH_FILENAME_COLUMN: указывает поле из индекса поиска ИИ Azure, которое предоставляет уникальный идентификатор исходных данных для отображения в пользовательском интерфейсе.
    • Тип данных: текст, по умолчанию используется filepath для развертывания из Azure AI Studio или Azure OpenAI Studio.
  • AZURE_SEARCH_TITLE_COLUMN: указывает поле из индекса поиска ИИ Azure, которое предоставляет соответствующий заголовок или заголовок для содержимого данных, отображаемого в пользовательском интерфейсе.
    • Тип данных: текст, по умолчанию используется title для развертывания из Azure AI Studio или Azure OpenAI Studio.
  • AZURE_SEARCH_URL_COLUMN: указывает поле из индекса поиска ИИ Azure, содержащего URL-адрес документа.
    • Тип данных: текст, по умолчанию используется url для развертывания из Azure AI Studio или Azure OpenAI Studio.
  • AZURE_SEARCH_VECTOR_COLUMNS: указывает список полей в индексе поиска ИИ Azure, который содержит векторные внедрения документов, используемый при разработке ответа бота.
    • Тип данных: текст, по умолчанию используется contentVector для развертывания из Azure AI Studio или Azure OpenAI Studio.
  • AZURE_SEARCH_QUERY_TYPE: указывает тип запроса, используемый: simple, , semantic, vectorvectorSimpleHybridили vectorSemanticHybrid. Этот параметр имеет приоритет над AZURE_SEARCH_USE_SEMANTIC_SEARCH.
    • Тип данных: текст, мы рекомендуем тестировать с vectorSemanticHybridпомощью .
  • AZURE_SEARCH_PERMITTED_GROUPS_COLUMN: указывает поле из индекса поиска ИИ Azure, содержащего идентификаторы групп Microsoft Entra, определяющее управление доступом на уровне документа.
    • Тип данных: текст
  • AZURE_SEARCH_STRICTNESS: указывает уровень строгости для модели, ограничивающей ответы на данные.
    • Тип данных: целое число должно быть задано между 1 и 5рекомендуется 3 .
  • AZURE_OPENAI_EMBEDDING_NAME: указывает имя развертывания внедренной модели при использовании векторного поиска.
    • Тип данных: текст

Json для вставки в редактор JSON расширенного редактирования:

{
    "name": "AZURE_SEARCH_CONTENT_COLUMNS",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_ENABLE_IN_DOMAIN",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_FILENAME_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_INDEX",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_KEY",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_PERMITTED_GROUPS_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_QUERY_TYPE",
    "value": "vectorSemanticHybrid",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG",
    "value": "azureml-default",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_SERVICE",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_STRICTNESS",
    "value": "3",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_TITLE_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_TOP_K",
    "value": "5",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_URL_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_USE_SEMANTIC_SEARCH",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_VECTOR_COLUMNS",
    "value": "contentVector",
    "slotSetting": false
  },

Подключение к потоку запроса в качестве источника данных

Потоки запросов позволяют определить высоко настраиваемую логику RAG и логику обработки запросов пользователя.

Создание и развертывание потока запросов в Azure AI Studio

Следуйте инструкциям из этого руководства , чтобы создать, проверить и развернуть конечную точку вывода для потока запросов в Azure AI Studio.

Включение базовых ссылок из потока запроса

При настройке потока запроса для отображения ссылок при интеграции этого веб-приложения он должен возвращать два ключевых выходных данных: один вызывается documents (ссылки) и один вызывается reply (ответ на естественном языке).

  1. documents — это объект JSON, который должен содержать следующие элементы. citations — это список, который может содержать несколько элементов после одной схемы. documents Объект должен быть создан и заполнен на основе выбранного шаблона RAG.
{
    "citations": [
        {
                "content": "string",
                "id": 12345,
                "title": "string",
                "filepath": "string",
                "url": "string",
                "metadata": "string",
                "chunk_id": None,
                "reindex_id": None,
                "part_index": None
        }
    ],
    "intent": "Your_string_here"
}
  1. reply состоит из возвращаемой строки, представляющей окончательный естественный язык для заданного пользовательского запроса. Необходимо reply содержать ссылки на каждую из документов (источников) в следующем формате: [doc1], [doc2]и т. д. Веб-приложение анализирует reply и обрабатывает ссылки, заменяя все экземпляры небольшими числовыми индикаторами [doc1] , которые связываются непосредственно с возвращаемыми заказами documents . Следовательно, вам необходимо предложить LLM, создающий окончательный естественный язык, чтобы включить эти ссылки, которые также должны быть переданы в вызов LLM, чтобы обеспечить правильность их выравнивания. Например:
system:
You are a helpful chat assistant that answers a user's question based on the information retrieved from a data source. 

YOU MUST ALWAYS USE CITATIONS FOR ALL FACTUAL RESPONSES. YOU MUST INCLUDE CITATIONS IN YOUR ANSWER IN THE FORMAT [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.

Provide sort and concise answers with details directly related to the query. 

## Conversation history for context
{% for item in chat_history %}
user:
{{item.inputs.query}}

assistant:
{{item.outputs.reply}}
{% endfor %}

## Current question
user:
### HERE ARE SOME CITED SOURCE INFORMATION FROM A MOCKED API TO ASSIST WITH ANSWERING THE QUESTION BELOW. ANSWER ONLY BASED ON THE TRUTHS PRESENTED HERE.
{{your_input_name_for_documents}}
FOR EACH OF THE CITATIONS ABOVE, YOU MUST INCLUDE IN YOUR ANSWER [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.
### HERE IS THE QUESTION TO ANSWER.
{{question}}
  

Настройка переменных среды для интеграции потока запросов

Изменяемые переменные среды:

  • AZURE_OPENAI_STREAM: определяет, загружается ли ответ в формате потоковой передачи (добавочной нагрузки). Это не поддерживается для потока запроса, поэтому его необходимо задать для False использования этой функции.
    • Тип данных: логическое значение, если True поток запроса не используется, False при использовании потока запроса
  • USE_PROMPTFLOW: указывает, следует ли использовать существующую развернутую конечную точку потока запроса. Если задано значение True, оба PROMPTFLOW_ENDPOINT и PROMPTFLOW_API_KEY должны быть заданы.
    • Тип данных: логическое значение должно быть задано False , если не используется поток запроса.
  • PROMPTFLOW_ENDPOINT: указывает URL-адрес развернутой конечной точки потока запроса.
    • Тип данных: текст, например https://pf-deployment-name.region.inference.ml.azure.com/score
  • PROMPTFLOW_API_KEY: ключ проверки подлинности для развернутой конечной точки потока запроса. Примечание. Поддерживается только проверка подлинности на основе ключей.
    • Тип данных: текст
  • PROMPTFLOW_RESPONSE_TIMEOUT: определяет значение времени ожидания в секундах для конечной точки потока запроса для ответа.
    • Тип данных: целое число, должно иметь значение 120.
  • PROMPTFLOW_REQUEST_FIELD_NAME: имя поля по умолчанию для создания запроса потока запросов. Примечание. chat_history Автоматически создается на основе взаимодействия. Если API ожидает другие обязательные поля, необходимо изменить параметры запроса в promptflow_request функции.
    • Тип данных: текст должен иметь значение query.
  • PROMPTFLOW_RESPONSE_FIELD_NAME: имя поля по умолчанию для обработки ответа из запроса потока запроса запроса на запрос запроса запроса на запрос потока запроса.
    • Тип данных: текст должен иметь значение reply.
  • PROMPTFLOW_CITATIONS_FIELD_NAME: имя поля по умолчанию для обработки ссылок из запроса потока запроса на запрос запроса на выполнение запроса.
    • Тип данных: текст должен иметь значение documents.

Подключение к другим источникам данных

Поддерживаются другие источники данных, в том числе:

  • Azure Cosmos DB
  • Elasticsearch
  • Azure SQL Server
  • Pinecone
  • Индекс Машинное обучение Azure

Дополнительные инструкции по включению этих источников данных см. в репозитории GitHub.

Обновление веб-приложения для включения последних изменений

Примечание.

По состоянию на 1 февраля 2024 г. веб-приложение требует, чтобы команда запуска приложения была задана python3 -m gunicorn app:app. При обновлении приложения, опубликованного до 1 февраля 2024 г., необходимо вручную добавить команду запуска на странице конфигурации Служба приложений.

Мы рекомендуем часто извлекать изменения из main ветви для исходного кода веб-приложения, чтобы обеспечить наличие последних исправлений ошибок, версий API и улучшений. Кроме того, веб-приложение должно быть синхронизировано каждый раз, когда используется версия API, которую вы используете. Попробуйте выбрать кнопку "Просмотр" или "Звезда" в репозитории GitHub веб-приложения, чтобы получать уведомления об изменениях и обновлениях исходного кода.

Если вы не настроили веб-приложение, выполните следующие действия, чтобы синхронизировать его:

  1. Перейдите в веб-приложение в портал Azure.

  2. В меню слева в разделе "Развертывание" выберите Центр развертывания.

  3. Выберите "Синхронизировать " в верхней части области и убедитесь, что приложение будет повторно развернуто.

    Снимок экрана: кнопка синхронизации веб-приложения на портал Azure.

Если вы настроили или изменили исходный код приложения, необходимо вручную обновить исходный код приложения и повторно развернуть его:

  • Если приложение размещено на сайте GitHub, отправьте изменения кода в репозиторий, а затем выполните предыдущие шаги синхронизации.
  • Если вы повторно развертываете приложение вручную (например, с помощью Azure CLI), выполните действия по стратегии развертывания.

Удаление экземпляра Cosmos DB

Удаление веб-приложения не удаляет экземпляр Cosmos DB автоматически. Чтобы удалить экземпляр Cosmos DB вместе со всеми сохраненными чатами, необходимо перейти к связанному ресурсу в портал Azure и удалить его. Если удалить ресурс Cosmos DB, но сохранить параметр журнала чата, выбранный при последующих обновлениях из Azure OpenAI Studio, приложение уведомляет пользователя об ошибке подключения. Однако пользователь может продолжать использовать веб-приложение без доступа к журналу чата.

Включение проверки подлинности идентификатора Записи Майкрософт между службами

Чтобы включить идентификатор Microsoft Entra для проверки подлинности внутри службы для веб-приложения, выполните следующие действия.

Включение управляемого удостоверения в ресурсе Azure OpenAI и службе приложение Azure

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

Снимок экрана: конфигурация удостоверения приложения в портал Azure.

Примечание.

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

Включение управления доступом на основе ролей (RBAC) в ресурсе поиска Azure (необязательно)

Если вы используете службу "Данные" с поиском Azure, выполните этот шаг.

Чтобы разрешить ресурсу Azure OpenAI получить доступ к ресурсу службы "Поиск Azure", необходимо включить управление доступом на основе ролей в ресурсе поиска Azure. Дополнительные сведения о включении ролей RBAC для ресурсов.

Назначение ролей RBAC для включения взаимодействия внутри службы

В следующей таблице перечислены назначения ролей RBAC, необходимые для всех ресурсов Azure, связанных с приложением.

Роль Уполномоченный Ресурс
Search Index Data Reader Azure OpenAI (вывод) Поиск с использованием ИИ Azure
Search Service Contributor Azure OpenAI (вывод) Поиск с использованием ИИ Azure
Cognitive Services OpenAI User Веб-приложение Azure OpenAI (вывод)
Cognitive Services OpenAI User Azure OpenAI (вывод) Azure OpenAI (внедрение)

Чтобы назначить эти роли, следуйте этим инструкциям , чтобы создать необходимые назначения ролей.

Изменения параметров приложения

В параметрах приложения веб-приложения перейдите в раздел "Переменные среды" и внесите следующие изменения:

  • Удалите переменную AZURE_OPENAI_KEYсреды, так как она больше не нужна.
  • Если вы используете службу "Данные" с поиском Azure и используют проверку подлинности идентификатора Microsoft Entra между Azure OpenAI и поиском Azure, то также следует удалить AZURE_SEARCH_KEY переменные среды для ключей доступа к источнику данных.

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

Однако если вы используете модель внедрения, развернутую в другой ресурс, внесите следующие дополнительные изменения в переменные среды приложения:

  • Задайте AZURE_OPENAI_EMBEDDING_ENDPOINT для переменной полный путь API внедрения API для ресурса, используемого для внедрения, например, https://<your embedding AOAI resource name>.openai.azure.com/openai/deployments/<your embedding deployment name>/embeddings
  • AZURE_OPENAI_EMBEDDING_KEY Удалите переменную для использования проверки подлинности Идентификатора Microsoft Entra.

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