Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
- Búsqueda de Azure AI: Microsoft.Azure. Functions.Worker.Extensions.OpenAI.AzureAISearch
- Azure DocumentDB: Microsoft.Azure. Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Azure Cosmos DB para NoSQL: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Explorador de datos de Azure: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.Kusto
Instalación del conjunto
Puedes añadir la extensión de vista previa añadiendo o reemplazando el siguiente código en tu host.json archivo, que está específicamente dirigido a una versión previa del paquete 4.x que contiene la extensión OpenAI:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.*, 5.0.0)"
}
}
Go no está soportado actualmente para esta función.
Connections
Para usar la extensión de enlace Azure OpenAI, necesitas especificar una conexión a una definición de modelo OpenAI. Establece la conexión del modelo OpenAI en tus bindings usando uno de estos enfoques:
- Usa la
AIConnectionNamepropiedad de binding (preferida para Azure OpenAI). - Configura
AZURE_OPENAI_ENDPOINTyAZURE_OPENAI_KEYestá en la configuración de la app (para Azure OpenAI). - Configurado solo
Open_API_Keyen la configuración de la app (parahttps://api.openai.com).
La forma en que se establece la conexión depende tanto de la API del modelo como del método de autenticación, como indica la siguiente tabla:
| API de autenticación/modelo | Azure OpenAI | OpenAI (https://api.openai.com) |
|---|---|---|
| Conexión de identidad gestionada | AIConnectionName |
No soportado |
| Referencia a Key Vault | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
| Referencia de configuración de aplicaciones | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
| Secreto compartido | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
Utiliza conexiones gestionadas basadas en identidad y la AIConnectionName propiedad.
Cuando usas AIConnectionName, el valor de esta configuración de propiedad depende del tipo de conexión:
-
Conexión de identidad gestionada: La
AIConnectionNamepropiedad es<CONNECTION_NAME_PREFIX>compartida por un grupo de configuraciones que en conjunto definen una conexión basada en identidad con Azure OpenAI. Para más información, véase Definir conexiones de identidad. -
Referencia Key Vault: La
AIConnectionNameconfiguración de propiedades devuelve una referencia de Azure Key Vault a la ubicación donde se mantiene centralmente la clave API. Para más información, consulte Definir conexiones de Key Vault. -
Referencia de configuración de la aplicación: La
AIConnectionNameconfiguración de propiedad devuelve una referencia de Azure App Configuration que devuelve una clave API o una referencia a Key Vault. Para más información, consulta Azure App Configuration en el artículo de conexiones. -
Clave API: La
AIConnectionNameconfiguración de propiedades se resuelve a la configuración de la app que contiene directamente el endpoint y la clave. Como las claves compartidas pueden verse comprometidas, utiliza conexiones de identidad gestionadas siempre que sea posible. Para más información, véase Definir conexiones.
Para saber más sobre conexiones de bindings, consulta Gestionar conexiones en Azure Functions.
Las vinculaciones de OpenAI incluyen una AIConnectionName propiedad que puedes usar para especificar el <ConnectionNamePrefix> grupo de configuraciones de la app que definen la conexión a Azure OpenAI:
| Nombre del valor | Descripción |
|---|---|
<CONNECTION_NAME_PREFIX>__endpoint |
Establece el extremo URI del servicio Azure OpenAI. 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 especificas esta propiedad, 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>__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, establece esta propiedad para especificar el Identificador de recurso a usar 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 especificas ninguno, 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>__key |
Establece la clave secreta compartida necesaria para acceder al punto final del servicio OpenAI de Azure usando autenticación basada en claves. Como mejor práctica de seguridad, utiliza siempre Microsoft Entra ID con identidades gestionadas para la autenticación. |
Considera estos ajustes de conexión de identidad gestionada cuando configures la AIConnectionName propiedad como myAzureOpenAI:
myAzureOpenAI__endpoint=https://contoso.openai.azure.com/myAzureOpenAI__credential=managedidentitymyAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222
En tiempo de ejecución, el host interpreta estos ajustes como un solo myAzureOpenAI ajuste:
"myAzureOpenAI":
{
"endpoint": "https://contoso.openai.azure.com/",
"credential": "managedidentity",
"clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}
Cuando utilices identidades gestionadas, asegúrate de añadir tu identidad al rol de Usuario OpenAI de Servicios Cognitivos .
Al ejecutarlo localmente, añade estos ajustes al archivolocal.settings.json proyecto. 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.