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


Расширение Azure OpenAI для Функции Azure

Внимание

Расширение Azure OpenAI для Функции Azure в настоящее время находится в предварительной версии.

Расширение Azure OpenAI для Функции Azure реализует набор триггеров и привязок, которые позволяют легко интегрировать функции и поведение Службы Azure OpenAI в выполнение кода функции.

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

Интеграция Между Azure OpenAI и Функциями позволяет создавать функции, которые могут:

Действие Тип триггера и привязки
Использование стандартного текстового запроса для завершения содержимого Входная привязка ввода текста OpenAI в Azure OpenAI
Ответ на запрос помощника на вызов функции Триггер помощника по Azure OpenAI
Создание помощника Помощник по Azure OpenAI создает выходную привязку
Сообщение помощника Привязка входных данных помощника по Azure OpenAI
Получение журнала помощников Входная привязка запроса Помощника по Azure OpenAI
Чтение внедренных текста Входная привязка Azure OpenAI для внедрения
Запись в векторную базу данных Выходная привязка хранилища встраивающих модулей Azure OpenAI
Чтение из векторной базы данных Привязка входных данных семантического поиска Azure OpenAI

Установка расширения

Установленный пакет NuGet расширения зависит от режима C# в процессе или изолированном рабочем процессе, который вы используете в приложении-функции:

Добавьте расширение Azure OpenAI в проект, установив пакет NuGet Microsoft.Azure.Functions.Worker.Extensions.OpenAI NuGet, который можно сделать с помощью интерфейса командной строки .NET:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.OpenAI  --prerelease

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

Установка пакета

Вы можете добавить расширение предварительной версии, добавив или заменив следующий код в host.json файле, который специально предназначен для предварительной версии пакета 4.x, содержащего расширение OpenAI:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.*, 5.0.0)"
  }
}

Подключение к OpenAI

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

Рекомендуется использовать подключения на основе управляемых удостоверений и AIConnectionName свойство.

Привязки OpenAI имеют AIConnectionName свойство, которое можно использовать для указания <ConnectionNamePrefix> этой группы параметров приложения, определяющих подключение к Azure OpenAI:

Имя настройки Описание
<CONNECTION_NAME_PREFIX>__endpoint Задает конечную точку URI службы Azure OpenAI. Этот параметр всегда требуется.
<CONNECTION_NAME_PREFIX>__clientId Задает определенное удостоверение, назначаемое пользователем, для использования при получении маркера доступа. Требуется, чтобы <CONNECTION_NAME_PREFIX>__credential было задано значением managedidentity. Свойство принимает идентификатор клиента, соответствующий назначаемому пользователем удостоверению, которое назначено приложению. Недопустимо указать идентификатор ресурса и идентификатор клиента. Если это не указано, используется удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, если credential не следует задавать.
<CONNECTION_NAME_PREFIX>__credential Определяет способ получения маркера доступа для подключения. Используется managedidentity для проверки подлинности управляемого удостоверения. Это значение допустимо только в том случае, если управляемое удостоверение доступно в среде размещения.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Если credential задано managedidentityзначение, это свойство можно задать, чтобы указать идентификатор ресурса, который будет использоваться при получении маркера. Свойство принимает идентификатор ресурса, соответствующий идентификатору ресурса определяемого пользователем управляемого удостоверения. Недопустимо указать идентификатор ресурса и идентификатор клиента. Если ни указано, используется удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, если credential не следует задавать.
<CONNECTION_NAME_PREFIX>__key Задает общий секретный ключ, необходимый для доступа к конечной точке службы Azure OpenAI с помощью проверки подлинности на основе ключей. Рекомендуется использовать идентификатор Microsoft Entra с управляемыми удостоверениями для проверки подлинности.

Рассмотрите следующие параметры подключения к управляемому удостоверению, если для свойства AIConnectionName задано значение myAzureOpenAI:

  • myAzureOpenAI__endpoint=https://contoso.openai.azure.com/
  • myAzureOpenAI__credential=managedidentity
  • myAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222

Во время выполнения эти параметры совместно интерпретируются узлом как один параметр myAzureOpenAI следующим образом:

"myAzureOpenAI":
{
    "endpoint": "https://contoso.openai.azure.com/",
    "credential": "managedidentity",
    "clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}

При использовании управляемых удостоверений обязательно добавьте удостоверение в роль пользователя OpenAI Cognitive Services .

При локальном запуске необходимо добавить эти параметры в файл проекта local.settings.json . Дополнительные сведения см. в статье "Локальная разработка с использованием подключений на основе удостоверений".

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