Compartir a través de


Extensión de Azure OpenAI para Azure Functions

Importante

La extensión de Azure OpenAI para Azure Functions está actualmente en versión preliminar.

La extensión Azure OpenAI para Azure Functions implementa un conjunto de desencadenadores y enlaces que permiten integrar fácilmente características y comportamientos de Azure OpenAI en Foundry Models en las ejecuciones de código de función.

Azure Functions es un servicio de proceso controlado por eventos que proporciona un conjunto de desencadenadores y enlaces para conectarse fácilmente con otros servicios de Azure.

Con la integración entre Azure OpenAI y Functions, puede crear funciones que puedan:

Acción Tipo de desencadenador/enlace
Uso de una solicitud de texto estándar para la finalización del contenido Enlace de entrada de finalización de texto de Azure OpenAI
Responder a una solicitud del asistente para llamar a una función Desencadenador del asistente de Azure OpenAI
Creación de un asistente Enlace de salida de creación del asistente de Azure OpenAI
Mensaje a un asistente Enlace posterior a la entrada del asistente de Azure OpenAI
Obtener historial del asistente Enlace de entrada de consulta del asistente de Azure OpenAI
Leer incrustaciones de texto Enlace de entrada de inserciones Azure OpenAI
Escritura en una base de datos vectorial Enlace de salida que almacena inserciones de Azure OpenAI
Lectura de una base de datos vectorial Enlace de entrada de búsqueda semántica de Azure OpenAI

Instalación de la extensión

El paquete NuGet de extensión que instale depende del modo de C# en proceso o proceso de trabajo aislado está usando en la aplicación de funciones:

Agregue la extensión Azure OpenAI al proyecto mediante la instalación del paquete NuGet Microsoft.Azure.Functions.Worker.Extensions.OpenAI, que puede hacer mediante la CLI de .NET:

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

Al usar una base de datos vectorial para almacenar contenido, también debe instalar al menos uno de estos paquetes NuGet:

Instalación del conjunto

Puede agregar la extensión de vista previa agregando o reemplazando el código siguiente en el host.json archivo, que tiene como destino específicamente una versión preliminar del lote 4.x que contiene la extensión OpenAI:

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

Conexión a OpenAI

Para usar la extensión de enlace de Azure OpenAI, debe especificar una conexión a OpenAI. Esta conexión se define mediante la configuración de la aplicación y la AIConnectionName propiedad del desencadenador o enlace. También puede usar variables de entorno para definir conexiones basadas en claves.

Se recomienda usar conexiones basadas en identidades administradas y la AIConnectionName propiedad .

Los enlaces de OpenAI tienen una AIConnectionName propiedad que puede usar para especificar para <ConnectionNamePrefix> este grupo de configuraciones de aplicación que definen la conexión a Azure OpenAI:

Nombre del valor Descripción
<CONNECTION_NAME_PREFIX>__endpoint Establece el punto de conexión de URI de Azure OpenAI en foundry Models. Esta configuración siempre es necesaria.
<CONNECTION_NAME_PREFIX>__clientId Establece la identidad asignada por el usuario específica que se usará al obtener un token de acceso. Requiere que <CONNECTION_NAME_PREFIX>__credential se establezca en managedidentity. La propiedad acepta un identificador de cliente correspondiente a una identidad asignada por el usuario asignada a la aplicación. No es válido especificar un id. de recurso así como tampoco es válido un id. de cliente. Si no se especifica, se usa la identidad asignada por el sistema. Esta propiedad se usa de forma diferente en escenarios de desarrollo locales, en los que no se debe establecer el elemento credential.
<CONNECTION_NAME_PREFIX>__credential Define cómo se obtiene un token de acceso para la conexión. Use managedidentity para la autenticación de identidad administrada. Este valor sólo es válido cuando existe una identidad administrada disponible en el entorno del hospedaje.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Cuando credential se establece en managedidentity, esta propiedad se puede establecer para que especifique el identificador de recurso que se utilizará al obtener un token. La propiedad acepta un identificador de recurso correspondiente al Id. de recurso de la identidad administrada definida por el usuario. No es válido especificar un Id. de recurso así como tampoco es válido un Id. de cliente. Si no se especifica ninguna de las dos, se utiliza la identidad asignada por el sistema. Esta propiedad se usa de forma diferente en escenarios de desarrollo locales, en los que no se debe establecer el elemento credential.
<CONNECTION_NAME_PREFIX>__key Establece la clave secreta compartida necesaria para acceder al punto de conexión de Azure OpenAI mediante la autenticación basada en claves. Como procedimiento recomendado de seguridad, siempre debe usar el identificador de Entra de Microsoft con identidades administradas para la autenticación.

Tenga en cuenta esta configuración de conexión de identidad administrada cuando la AIConnectionName propiedad se establece myAzureOpenAIen :

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

En tiempo de ejecución, el host interpreta colectivamente esta configuración como una única myAzureOpenAI configuración como esta:

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

Al usar identidades administradas, asegúrese de agregar su identidad al rol de usuario de OpenAI de Cognitive Services .

Al ejecutar localmente, debe agregar esta configuración al archivo de proyecto delocal.settings.json . Para obtener más información, consulte Desarrollo local con conexiones basadas en identidades.

Para más información, consulte Trabajar con la configuración de la aplicación.