Associação de entrada de conclusão de texto do Azure OpenAI para o Azure Functions

Importante

Atualmente, a extensão do OpenAI do Azure para Azure Functions está em versão prévia.

A associação de entrada de conclusão de texto do Azure OpenAI permite que você coloque as APIs de conclusão de texto de resultados em suas execuções de código. Você pode definir a associação para usar prompts predefinidos com parâmetros ou passar por um prompt inteiro.

Para obter informações sobre os detalhes de instalação e configuração da extensão do OpenAI do Azure, confira Extensões do OpenAI do Azure para Azure Functions. Para saber mais sobre as conclusões do Azure OpenAI, confira Saiba como gerar ou manipular texto.

Observação

Referências e exemplos só são fornecidos para o modelo do Node.js v4.

Observação

Referências e exemplos só são fornecidos para o modelo do Python v2.

Observação

Embora haja suporte para ambos os modelos de processo C#, apenas exemplos de modelo de trabalho isolados são fornecidos.

Exemplo

O suporte do Go não está disponível para essa ligação no momento.

Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.

[Function(nameof(WhoIs))]
public static IActionResult WhoIs(
    [HttpTrigger(AuthorizationLevel.Function, Route = "whois/{name}")] HttpRequestData req,
    [TextCompletionInput("Who is {name}?", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", AIConnectionName = "AzureOpenAI")] TextCompletionResponse response)
{
    return new OkObjectResult(response.Content);
}

Este exemplo usa um prompt como entrada, envia-o diretamente para a API de conclusões e retorna a resposta como a saída.

[Function(nameof(GenericCompletion))]
public static IActionResult GenericCompletion(
    [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestData req,
    [TextCompletionInput("{Prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", AIConnectionName = "AzureOpenAI")] TextCompletionResponse response,
    ILogger log)
{
    string text = response.Content;
    return new OkObjectResult(text);
}

Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.

@FunctionName("WhoIs")
public HttpResponseMessage whoIs(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.GET},
        authLevel = AuthorizationLevel.FUNCTION, 
        route = "whois/{name}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("name") String name,
    @TextCompletion(prompt = "Who is {name}?", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response", isReasoningModel = false, aiConnectionName = "AzureOpenAI") TextCompletionResponse response,
    final ExecutionContext context) {
    return request.createResponseBuilder(HttpStatus.OK)
        .header("Content-Type", "application/json")
        .body(response.getContent())
        .build();
}

Este exemplo usa um prompt como entrada, envia-o diretamente para a API de conclusões e retorna a resposta como a saída.

@FunctionName("GenericCompletion")
public HttpResponseMessage genericCompletion(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.POST},
        authLevel = AuthorizationLevel.FUNCTION) 
        HttpRequestMessage<Optional<String>> request,
    @TextCompletion(prompt = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response", isReasoningModel = false, aiConnectionName = "AzureOpenAI") TextCompletionResponse response,
    final ExecutionContext context) {
    return request.createResponseBuilder(HttpStatus.OK)
        .header("Content-Type", "application/json")
        .body(response.getContent())
        .build();
}

Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.

const { app, input } = require("@azure/functions");

// This OpenAI completion input requires a {name} binding value.
const openAICompletionInput = input.generic({
    prompt: 'Who is {name}?',
    maxTokens: '100',
    type: 'textCompletion',
    chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
    aiConnectionName: 'AzureOpenAI'
})

app.http('whois', {
    methods: ['GET'],
    route: 'whois/{name}',
    authLevel: 'function',
    extraInputs: [openAICompletionInput],
    handler: async (_request, context) => {
        var response = context.extraInputs.get(openAICompletionInput)
        return { body: response.content.trim() }
    }
});

Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.

import { app, input } from "@azure/functions";

// This OpenAI completion input requires a {name} binding value.
const openAICompletionInput = input.generic({
    prompt: 'Who is {name}?',
    maxTokens: '100',
    type: 'textCompletion',
    chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
    aiConnectionName: 'AzureOpenAI'
})

app.http('whois', {
    methods: ['GET'],
    route: 'whois/{name}',
    authLevel: 'function',
    extraInputs: [openAICompletionInput],
    handler: async (_request, context) => {
        var response: any = context.extraInputs.get(openAICompletionInput)
        return { body: response.content.trim() }
    }
});

Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.

Aqui está o arquivo function.json para o TextCompletionResponse:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "whois/{name}",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "textCompletion",
      "direction": "in",
      "name": "TextCompletionResponse",
      "prompt": "Who is {name}?",
      "maxTokens": "100",
      "chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
      "aiConnectionName": "AzureOpenAI"
    }
  ]
}

Para obter mais informações sobre as propriedades do arquivo function.json, consulte a seção Configuração.

O código simplesmente retorna o texto da API de conclusão como a resposta:

using namespace System.Net

param($Request, $TriggerMetadata, $TextCompletionResponse)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body       = $TextCompletionResponse.Content
    })

Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.

@app.route(route="whois/{name}", methods=["GET"])
@app.text_completion_input(
    arg_name="response",
    prompt="Who is {name}?",
    max_tokens="100",
    chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
    ai_connection_name="AzureOpenAI",
)
def whois(req: func.HttpRequest, response: str) -> func.HttpResponse:
    response_json = json.loads(response)
    return func.HttpResponse(response_json["content"], status_code=200)

Este exemplo usa um prompt como entrada, envia-o diretamente para a API de conclusões e retorna a resposta como a saída.


@app.route(route="genericcompletion", methods=["POST"])
@app.text_completion_input(
    arg_name="response",
    prompt="{Prompt}",
    chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
    ai_connection_name="AzureOpenAI",
)
def genericcompletion(
    req: func.HttpRequest,
    response: str
) -> func.HttpResponse:
    response_json = json.loads(response)
    return func.HttpResponse(response_json["content"], status_code=200)

Atributos

O atributo específico que você aplica para definir uma associação de entrada de conclusão de texto depende do modo de processo em C#.

No modelo de trabalho isolado, aplique-se TextCompletionInput para definir uma associação de entrada de conclusão de texto.

O atributo dá suporte a esses parâmetros:

Parâmetro Descrição
Rápido Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres.
AIConnectionName Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: se especificado, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY.
ChatModel Opcional. Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo.
Temperatura Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos.
TopP Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos.
MaxTokens Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096).
IsReasoningModel Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false.

Anotações

A TextCompletion anotação permite que você defina uma associação de entrada de conclusão de texto, que dá suporte a esses parâmetros:

Elemento Descrição
nome Obtém ou define o nome da associação de entrada.
rápido Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres.
aiConnectionName Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: se especificado, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY.
chatModel Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo.
temperatura Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos.
topP Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos.
maxTokens Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096).
isReasoningModel Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false.

Decoradores

Durante a versão prévia, defina a associação de entrada como uma associação generic_input_binding do tipo textCompletion, que dá suporte a estes parâmetros:

Parâmetro Descrição
arg_name O nome da variável que representa o parâmetro de associação.
rápido Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres.
ai_connection_name Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: se especificado, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY.
chat_model Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo.
temperatura Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos.
top_p Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos.
max_tokens Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096).
is_reasoning _model Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false.

Configuração

A associação dá suporte a essas propriedades de configuração definidas no arquivo function.json.

Propriedade Descrição
tipo Deve ser textCompletion.
direção Deve ser in.
nome O nome da associação de entrada.
rápido Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres.
aiConnectionName Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: se especificado, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY.
chatModel Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo.
temperatura Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos.
topP Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos.
maxTokens Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096).
isReasoningModel Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false.

Configuração

A associação dá suporte a estas propriedades, que são definidas no código:

Propriedade Descrição
rápido Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres.
aiConnectionName Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: se especificado, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY.
chatModel Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo.
temperatura Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos.
topP Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos.
maxTokens Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096).
isReasoningModel Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false.

Uso

Consulte a Seção de exemplo para obter exemplos completos.

Conexões

Para usar a extensão de binding Azure OpenAI, você precisa especificar uma conexão com uma definição de modelo OpenAI. Defina a conexão do modelo OpenAI nas suas ligações usando uma destas abordagens:

  • Use a AIConnectionName propriedade de binding (preferida para Azure OpenAI).
  • Configure AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY esteja nas configurações do app (para Azure OpenAI).
  • Defina apenas Open_API_Key nas configurações do app (para https://api.openai.com).

A forma como você configura a conexão depende tanto da API do modelo quanto do método de autenticação, conforme indicado pela tabela a seguir:

API de Autenticação/Modelo Azure OpenAI OpenAI (https://api.openai.com)
Conexão de identidade gerenciada AIConnectionName Sem suporte
Referência ao Key Vault AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_KEY
Open_API_Key
Referência de configuração do aplicativo AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_KEY
Open_API_Key
Segredo compartilhado AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_KEY
Open_API_Key

Use conexões baseadas em identidade gerenciada e a propriedade AIConnectionName .

Quando você usa AIConnectionName, o valor dessa configuração de propriedade depende do tipo de conexão:

  • Conexão de identidade gerenciada: A AIConnectionName propriedade é <CONNECTION_NAME_PREFIX> compartilhada por um grupo de configurações que, juntas, definem uma conexão baseada em identidade com o Azure OpenAI. Para mais informações, veja Definir conexões de identidade.
  • Referência Key Vault: A AIConnectionName configuração de propriedade retorna uma referência ao Azure Key Vault para o local onde a chave API é mantida centralmente. Para mais informações, veja Definir conexões do Key Vault.
  • Referência de Configuração de App: A AIConnectionName configuração de propriedade retorna uma referência Configuração de Aplicativos do Azure que retorna uma chave API ou uma referência ao Key Vault. Para mais informações, veja Configuração de Aplicativos do Azure no artigo de conexões.
  • Chave API: A AIConnectionName configuração de propriedade resolve para as configurações do app contendo diretamente o endpoint e a chave. Como as chaves compartilhadas podem ser comprometidas, use conexões de identidade gerenciadas sempre que possível. Para mais informações, veja Definir conexões.

Para saber mais sobre conexões de bindings, veja Gerenciar conexões no Azure Functions.

As ligações do OpenAI incluem uma AIConnectionName propriedade que você pode usar para especificar o <ConnectionNamePrefix> grupo de configurações de aplicativos que definem a conexão com o Azure OpenAI:

Nome da configuração Descrição
<CONNECTION_NAME_PREFIX>__endpoint Define o endpoint URI do serviço Azure OpenAI. Essa configuração é sempre necessária.
<CONNECTION_NAME_PREFIX>__clientId Define a identidade específica atribuída pelo usuário a ser usada ao obter um token de acesso. Requer que <CONNECTION_NAME_PREFIX>__credential esteja definido como managedidentity. A propriedade aceita uma ID de cliente correspondente a uma identidade atribuída pelo usuário atribuída ao aplicativo. É inválido especificar uma ID de recurso e uma ID de cliente. Se você não especificar essa propriedade, a identidade atribuída ao sistema é usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido.
<CONNECTION_NAME_PREFIX>__credential Define como um token de access é obtido para a conexão. Use managedidentity para a autenticação da identidade gerenciada. Esse valor só é válido quando uma identidade gerenciada está disponível no ambiente de hospedagem.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Quando credential está definido como managedidentity, defina essa propriedade para especificar o Identificador de recurso a usar ao obter um token. A propriedade aceita um identificador de recurso correspondente à ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar uma ID de recurso e uma ID de cliente. Se você não especificar nenhum dos dois, a identidade atribuída pelo sistema é usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido.
<CONNECTION_NAME_PREFIX>__key Define a chave secreta compartilhada necessária para acessar o endpoint do serviço Azure OpenAI usando autenticação baseada em chaves. Como melhor prática de segurança, sempre use o Microsoft Entra ID com identidades gerenciadas para autenticação.

Considere essas configurações de conexão de identidade gerenciada ao definir a AIConnectionName propriedade para myAzureOpenAI:

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

Em tempo de execução, o host interpreta essas configurações como uma única myAzureOpenAI configuração:

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

Ao usar identidades gerenciadas, certifique-se de adicionar sua identidade ao papel de Usuário OpenAI de Serviços Cognitivos .

Ao rodar localmente, adicione essas configurações ao arquivolocal.settings.json projeto. Para obter mais informações, consulte Desenvolvimento local com conexões baseadas em identidade.

Para obter mais informações, confira Trabalhar com configurações de aplicativo.