Assistente Azure OpenAI post-binding di input per Funzioni di Azure

Importante

L'estensione OpenAI di Azure per Funzioni di Azure è attualmente in anteprima.

L'assistente Azure OpenAI post-input consente di inviare richieste ai chatbot assistenti.

Per informazioni sull'installazione e la configurazione dell'estensione OpenAI di Azure, vedere Estensioni OpenAI di Azure per Funzioni di Azure. Per altre informazioni sugli assistenti OpenAI di Azure, vedere API Assistenti OpenAI di Azure.

Nota

I riferimenti e gli esempi vengono forniti solo per il modello Node.js v4.

Nota

I riferimenti e gli esempi vengono forniti solo per il modello Python v2.

Nota

Anche se sono supportati entrambi i modelli di processo C#, vengono forniti solo esempi di modelli di lavoro isolati.

Esempio

Il supporto Go non è attualmente disponibile per questo binding.

Questo esempio illustra il processo di creazione, in cui la funzione HTTP POST che invia richieste utente al chatbot assistente. La risposta alla richiesta viene restituita nella risposta HTTP.

/// <summary>
/// HTTP POST function that sends user prompts to the assistant chat bot.
/// </summary>
[Function(nameof(PostUserQuery))]
public static IActionResult PostUserQuery(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = "assistants/{assistantId}")] HttpRequestData req,
    string assistantId,
    [AssistantPostInput("{assistantId}", "{Query.message}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", AIConnectionName = "AzureOpenAI", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
    return new OkObjectResult(state.RecentMessages.Any() ? state.RecentMessages[state.RecentMessages.Count - 1].Content : "No response returned.");
}

Questo esempio illustra il processo di creazione, in cui la funzione HTTP POST che invia richieste utente al chatbot assistente. La risposta alla richiesta viene restituita nella risposta HTTP.

/*
 * HTTP POST function that sends user prompts to the assistant chat bot.
 */ 
@FunctionName("PostUserResponse")
public HttpResponseMessage postUserResponse(
    @HttpTrigger(
        name = "req",
        methods = {HttpMethod.POST}, 
        authLevel = AuthorizationLevel.FUNCTION,
        route = "assistants/{assistantId}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("assistantId") String assistantId,        
    @AssistantPost(name="newMessages", id = "{assistantId}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", aiConnectionName = "AzureOpenAI", userMessage = "{Query.message}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
    final ExecutionContext context) {
        
        List<AssistantMessage> recentMessages = state.getRecentMessages();
        String response = recentMessages.isEmpty() ? "No response returned." : recentMessages.get(recentMessages.size() - 1).getContent();
        
        return request.createResponseBuilder(HttpStatus.OK)
            .header("Content-Type", "application/json")
            .body(response)
            .build();
}

Questo esempio illustra il processo di creazione, in cui la funzione HTTP POST che invia richieste utente al chatbot assistente. La risposta alla richiesta viene restituita nella risposta HTTP.

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

const assistantPostInput = input.generic({
    type: 'assistantPost',
    id: '{assistantId}',
    chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
    aiConnectionName: 'AzureOpenAI',
    userMessage: '{Query.message}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
    methods: ['POST'],
    route: 'assistants/{assistantId}',
    authLevel: 'function',
    extraInputs: [assistantPostInput],
    handler: async (_, context) => {
        const chatState = context.extraInputs.get(assistantPostInput)
        const content = chatState.recentMessages[0].content
        return {
            status: 200,
            body: content,
            headers: {
                'Content-Type': 'text/plain'
            }
        };
    }
})
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"

const assistantPostInput = input.generic({
    type: 'assistantPost',
    id: '{assistantId}',
    chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
    aiConnectionName: 'AzureOpenAI',
    userMessage: '{Query.message}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
    methods: ['POST'],
    route: 'assistants/{assistantId}',
    authLevel: 'function',
    extraInputs: [assistantPostInput],
    handler: async (_, context) => {
        const chatState: any = context.extraInputs.get(assistantPostInput)
        const content = chatState.recentMessages[0].content
        return {
            status: 200,
            body: content,
            headers: {
                'Content-Type': 'text/plain'
            }
        };
    }
})

Questo esempio illustra il processo di creazione, in cui la funzione HTTP POST che invia richieste utente al chatbot assistente. La risposta alla richiesta viene restituita nella risposta HTTP.

Ecco il file function.json per la query post-utente:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "State",
      "type": "assistantPost",
      "direction": "in",
      "dataType": "string",
      "id": "{assistantId}",
      "userMessage": "{Query.message}",
      "chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
      "chatStorageConnectionSetting": "AzureWebJobsStorage",
      "collectionName": "ChatState",
      "aiConnectionName": "AzureOpenAI"
    }
  ]
}

Per altre informazioni sulle proprietà dei file function.json, vedere la sezione configurazione.

using namespace System.Net

param($Request, $TriggerMetadata, $State)

$recent_message_content = "No recent messages!"

if ($State.recentMessages.Count -gt 0) {
    $recent_message_content = $State.recentMessages[0].content
}

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body       = $recent_message_content
    Headers    = @{
        "Content-Type" = "text/plain"
    }
})

Questo esempio illustra il processo di creazione, in cui la funzione HTTP POST che invia richieste utente al chatbot assistente. La risposta alla richiesta viene restituita nella risposta HTTP.

@apis.function_name("PostUserQuery")
@apis.route(route="assistants/{assistantId}", methods=["POST"])
@apis.assistant_post_input(
    arg_name="state",
    id="{assistantId}",
    user_message="{Query.message}",
    chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
    ai_connection_name="AzureOpenAI",
    chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
    collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def post_user_response(req: func.HttpRequest, state: str) -> func.HttpResponse:
    # Parse the JSON string into a dictionary
    data = json.loads(state)

    # Extract the content of the recentMessage
    recent_message_content = data["recentMessages"][0]["content"]
    return func.HttpResponse(
        recent_message_content, status_code=200, mimetype="text/plain"
    )

Attributi

Applicare l'attributo PostUserQuery per definire un'associazione assistente post-input, che supporta questi parametri:

Parametro Descrizione
id ID dell'assistente da aggiornare.
UserMessage Ottiene o imposta il messaggio utente per il modello di completamento della chat, codificato come stringa.
AIConnectionName Facoltativo. Ottiene o imposta il nome della sezione di configurazione per le impostazioni di connettività del servizio di intelligenza artificiale. Per Azure OpenAI: se specificato, cerca i valori "Endpoint" e "Key" in questa sezione di configurazione. Se non specificato o la sezione non esiste, esegue il fallback alle variabili di ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Per l'autenticazione dell'identità gestita assegnata dall'utente, questa proprietà è obbligatoria. Per il servizio OpenAI (non Azure), impostare la variabile di ambiente OPENAI_API_KEY.
ChatModel Facoltativo. Ottiene o imposta l'ID del modello da utilizzare come stringa, con un valore predefinito .gpt-3.5-turbo
Temperatura Facoltativo. Ottiene o imposta la temperatura di campionamento da utilizzare, come stringa tra 0 e 2. I valori più elevati (0.8) rendono l'output più casuale, mentre i valori inferiori come (0.2) rendono l'output più mirato e deterministico. È consigliabile usare Temperature o TopP, ma non entrambi.
TopP Facoltativo. Ottiene o imposta un'alternativa al campionamento con la temperatura, denominata campionamento del nucleo, come stringa. In questo metodo di campionamento, il modello considera i risultati dei token con top_p massa di probabilità. Significa quindi 0.1 che vengono considerati solo i token che comprendono i primi 10% massa di probabilità. È consigliabile usare Temperature o TopP, ma non entrambi.
MaxTokens Facoltativo. Ottiene o imposta il numero massimo di token da generare nel completamento, come stringa con un valore predefinito .100 Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello. La maggior parte dei modelli ha una lunghezza di contesto di 2.048 token (ad eccezione dei modelli più recenti, che supportano 4096).
IsReasoningModel Facoltativo. Ottiene o imposta un valore che indica se il modello di completamento della chat è un modello di ragionamento. Questa opzione è sperimentale e associata al modello di ragionamento fino a quando tutti i modelli non hanno parità nelle proprietà previste, con un valore predefinito di false.

Annotazioni

L'annotazione PostUserQuery consente di definire un'associazione post-input assistente, che supporta questi parametri:

Elemento Descrizione
nome Nome dell'associazione di output.
ID ID dell'assistente da aggiornare.
userMessage Ottiene o imposta il messaggio utente per il modello di completamento della chat, codificato come stringa.
aiConnectionName Facoltativo. Ottiene o imposta il nome della sezione di configurazione per le impostazioni di connettività del servizio di intelligenza artificiale. Per Azure OpenAI: se specificato, cerca i valori "Endpoint" e "Key" in questa sezione di configurazione. Se non specificato o la sezione non esiste, esegue il fallback alle variabili di ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Per l'autenticazione dell'identità gestita assegnata dall'utente, questa proprietà è obbligatoria. Per il servizio OpenAI (non Azure), impostare la variabile di ambiente OPENAI_API_KEY.
chatModel Ottiene o imposta l'ID del modello da utilizzare come stringa, con un valore predefinito .gpt-3.5-turbo
temperatura Facoltativo. Ottiene o imposta la temperatura di campionamento da utilizzare, come stringa tra 0 e 2. I valori più elevati (0.8) rendono l'output più casuale, mentre i valori inferiori come (0.2) rendono l'output più mirato e deterministico. È consigliabile usare Temperature o TopP, ma non entrambi.
topP Facoltativo. Ottiene o imposta un'alternativa al campionamento con la temperatura, denominata campionamento del nucleo, come stringa. In questo metodo di campionamento, il modello considera i risultati dei token con top_p massa di probabilità. Significa quindi 0.1 che vengono considerati solo i token che comprendono i primi 10% massa di probabilità. È consigliabile usare Temperature o TopP, ma non entrambi.
maxTokens Facoltativo. Ottiene o imposta il numero massimo di token da generare nel completamento, come stringa con un valore predefinito .100 Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello. La maggior parte dei modelli ha una lunghezza di contesto di 2.048 token (ad eccezione dei modelli più recenti, che supportano 4096).
isReasoningModel Facoltativo. Ottiene o imposta un valore che indica se il modello di completamento della chat è un modello di ragionamento. Questa opzione è sperimentale e associata al modello di ragionamento fino a quando tutti i modelli non hanno parità nelle proprietà previste, con un valore predefinito di false.

Elementi Decorator

Durante l'anteprima, definire l'associazione di output come associazione generic_output_binding di tipo postUserQuery, che supporta questi parametri:

Parametro Descrizione
arg_name Nome della variabile che rappresenta il parametro di associazione.
ID ID dell'assistente da aggiornare.
user_message Ottiene o imposta il messaggio utente per il modello di completamento della chat, codificato come stringa.
ai_connection_name Facoltativo. Ottiene o imposta il nome della sezione di configurazione per le impostazioni di connettività del servizio di intelligenza artificiale. Per Azure OpenAI: se specificato, cerca i valori "Endpoint" e "Key" in questa sezione di configurazione. Se non specificato o la sezione non esiste, esegue il fallback alle variabili di ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Per l'autenticazione dell'identità gestita assegnata dall'utente, questa proprietà è obbligatoria. Per il servizio OpenAI (non Azure), impostare la variabile di ambiente OPENAI_API_KEY.
chat_model Ottiene o imposta l'ID del modello da utilizzare come stringa, con un valore predefinito .gpt-3.5-turbo
temperatura Facoltativo. Ottiene o imposta la temperatura di campionamento da utilizzare, come stringa tra 0 e 2. I valori più elevati (0.8) rendono l'output più casuale, mentre i valori inferiori come (0.2) rendono l'output più mirato e deterministico. È consigliabile usare Temperature o TopP, ma non entrambi.
top_p Facoltativo. Ottiene o imposta un'alternativa al campionamento con la temperatura, denominata campionamento del nucleo, come stringa. In questo metodo di campionamento, il modello considera i risultati dei token con top_p massa di probabilità. Significa quindi 0.1 che vengono considerati solo i token che comprendono i primi 10% massa di probabilità. È consigliabile usare Temperature o TopP, ma non entrambi.
max_tokens Facoltativo. Ottiene o imposta il numero massimo di token da generare nel completamento, come stringa con un valore predefinito .100 Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello. La maggior parte dei modelli ha una lunghezza di contesto di 2.048 token (ad eccezione dei modelli più recenti, che supportano 4096).
is_reasoning _model Facoltativo. Ottiene o imposta un valore che indica se il modello di completamento della chat è un modello di ragionamento. Questa opzione è sperimentale e associata al modello di ragionamento fino a quando tutti i modelli non hanno parità nelle proprietà previste, con un valore predefinito di false.

Impostazione

L'associazione supporta queste proprietà di configurazione impostate nel file function.json.

Proprietà Descrizione
tipo Deve essere PostUserQuery.
direzione Deve essere out.
nome Nome dell'associazione di output.
ID ID dell'assistente da aggiornare.
userMessage Ottiene o imposta il messaggio utente per il modello di completamento della chat, codificato come stringa.
aiConnectionName Facoltativo. Ottiene o imposta il nome della sezione di configurazione per le impostazioni di connettività del servizio di intelligenza artificiale. Per Azure OpenAI: se specificato, cerca i valori "Endpoint" e "Key" in questa sezione di configurazione. Se non specificato o la sezione non esiste, esegue il fallback alle variabili di ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Per l'autenticazione dell'identità gestita assegnata dall'utente, questa proprietà è obbligatoria. Per il servizio OpenAI (non Azure), impostare la variabile di ambiente OPENAI_API_KEY.
chatModel Ottiene o imposta l'ID del modello da utilizzare come stringa, con un valore predefinito .gpt-3.5-turbo
temperatura Facoltativo. Ottiene o imposta la temperatura di campionamento da utilizzare, come stringa tra 0 e 2. I valori più elevati (0.8) rendono l'output più casuale, mentre i valori inferiori come (0.2) rendono l'output più mirato e deterministico. È consigliabile usare Temperature o TopP, ma non entrambi.
topP Facoltativo. Ottiene o imposta un'alternativa al campionamento con la temperatura, denominata campionamento del nucleo, come stringa. In questo metodo di campionamento, il modello considera i risultati dei token con top_p massa di probabilità. Significa quindi 0.1 che vengono considerati solo i token che comprendono i primi 10% massa di probabilità. È consigliabile usare Temperature o TopP, ma non entrambi.
maxTokens Facoltativo. Ottiene o imposta il numero massimo di token da generare nel completamento, come stringa con un valore predefinito .100 Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello. La maggior parte dei modelli ha una lunghezza di contesto di 2.048 token (ad eccezione dei modelli più recenti, che supportano 4096).
isReasoningModel Facoltativo. Ottiene o imposta un valore che indica se il modello di completamento della chat è un modello di ragionamento. Questa opzione è sperimentale e associata al modello di ragionamento fino a quando tutti i modelli non hanno parità nelle proprietà previste, con un valore predefinito di false.

Impostazione

Il binding supporta queste proprietà, definite nel codice:

Proprietà Descrizione
ID ID dell'assistente da aggiornare.
userMessage Ottiene o imposta il messaggio utente per il modello di completamento della chat, codificato come stringa.
aiConnectionName Facoltativo. Ottiene o imposta il nome della sezione di configurazione per le impostazioni di connettività del servizio di intelligenza artificiale. Per Azure OpenAI: se specificato, cerca i valori "Endpoint" e "Key" in questa sezione di configurazione. Se non specificato o la sezione non esiste, esegue il fallback alle variabili di ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Per l'autenticazione dell'identità gestita assegnata dall'utente, questa proprietà è obbligatoria. Per il servizio OpenAI (non Azure), impostare la variabile di ambiente OPENAI_API_KEY.
chatModel Ottiene o imposta l'ID del modello da utilizzare come stringa, con un valore predefinito .gpt-3.5-turbo
temperatura Facoltativo. Ottiene o imposta la temperatura di campionamento da utilizzare, come stringa tra 0 e 2. I valori più elevati (0.8) rendono l'output più casuale, mentre i valori inferiori come (0.2) rendono l'output più mirato e deterministico. È consigliabile usare Temperature o TopP, ma non entrambi.
topP Facoltativo. Ottiene o imposta un'alternativa al campionamento con la temperatura, denominata campionamento del nucleo, come stringa. In questo metodo di campionamento, il modello considera i risultati dei token con top_p massa di probabilità. Significa quindi 0.1 che vengono considerati solo i token che comprendono i primi 10% massa di probabilità. È consigliabile usare Temperature o TopP, ma non entrambi.
maxTokens Facoltativo. Ottiene o imposta il numero massimo di token da generare nel completamento, come stringa con un valore predefinito .100 Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello. La maggior parte dei modelli ha una lunghezza di contesto di 2.048 token (ad eccezione dei modelli più recenti, che supportano 4096).
isReasoningModel Facoltativo. Ottiene o imposta un valore che indica se il modello di completamento della chat è un modello di ragionamento. Questa opzione è sperimentale e associata al modello di ragionamento fino a quando tutti i modelli non hanno parità nelle proprietà previste, con un valore predefinito di false.

Utilizzo

Per esempi completi, vedere la sezione di esempio.

Connections

Per utilizzare l'estensione di binding Azure OpenAI, è necessario specificare una connessione a una definizione di modello OpenAI. Imposta la connessione del modello OpenAI nei tuoi bindings usando uno di questi approcci:

  • Usa la AIConnectionName proprietà binding (preferita per Azure OpenAI).
  • Imposta AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY nelle impostazioni dell'app (per Azure OpenAI).
  • Imposta solo Open_API_Key nelle impostazioni dell'app (per https://api.openai.com).

Il modo in cui si imposta la connessione dipende sia dall'API del modello sia dal metodo di autenticazione, come indicato dalla seguente tabella:

API di autenticazione/modello Azure OpenAI OpenAI (https://api.openai.com)
Connessione di identità gestita AIConnectionName Non supportato
Riferimento Key Vault AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_KEY
Open_API_Key
Riferimento alla configurazione dell'app AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_KEY
Open_API_Key
Segreto condiviso AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_KEY
Open_API_Key

Usa connessioni gestite basate sull'identità e la AIConnectionName proprietà.

Quando si usa AIConnectionName, il valore di questa impostazione di proprietà dipende dal tipo di connessione:

  • Connessione di identità gestita: La AIConnectionName proprietà è <CONNECTION_NAME_PREFIX> condivisa da un gruppo di impostazioni che insieme definiscono una connessione basata sull'identità con Azure OpenAI. Per ulteriori informazioni, vedi Definire connessioni identitari.
  • Riferimento Key Vault: L'impostazione AIConnectionName della proprietà restituisce un riferimento Azure Key Vault alla posizione in cui la chiave API è mantenuta centralmente. Per maggiori informazioni, vedi Definire le connessioni Key Vault.
  • Riferimento App Configuration: L'impostazione AIConnectionName della proprietà restituisce un riferimento Configurazione app di Azure che restituisce una chiave API o un riferimento a Key Vault. Per ulteriori informazioni, consulta Configurazione app di Azure nell'articolo sulle connessioni.
  • Chiave API: L'impostazione AIConnectionName della proprietà si risolve nelle impostazioni dell'app che contengono direttamente l'endpoint e la chiave. Poiché le chiavi condivise possono essere compromesse, usa le connessioni di identità gestite quando possibile. Per maggiori informazioni, vedi Definisci le connessioni.

Per saperne di più sulle connessioni dei binding, consulta Manage connections in Funzioni di Azure.

I bindings di OpenAI includono una AIConnectionName proprietà che puoi usare per specificare <ConnectionNamePrefix> il gruppo di impostazioni dell'app che definiscono la connessione ad Azure OpenAI:

Nome della impostazione Descrizione
<CONNECTION_NAME_PREFIX>__endpoint Imposta l'endpoint URI del servizio Azure OpenAI. Questa impostazione è sempre obbligatoria.
<CONNECTION_NAME_PREFIX>__clientId Imposta l'identità assegnata dall'utente specifica da usare per ottenere un token di accesso. Richiede che <CONNECTION_NAME_PREFIX>__credential sia impostato su managedidentity. La proprietà accetta un ID client corrispondente a un'identità assegnata dall'utente assegnata all'applicazione. Non è valido specificare sia un ID risorsa che un ID client. Se non specifichi questa proprietà, viene utilizzata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential.
<CONNECTION_NAME_PREFIX>__credential Definisce il modo in cui viene ottenuto un token access per la connessione. Usare managedidentity per l'autenticazione dell'identità gestita. Questo valore è valido solo quando un'identità gestita è disponibile nell'ambiente di hosting.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Quando credential è impostato su managedidentity, imposta questa proprietà per specificare l'Identificatore della risorsa da utilizzare quando si ottiene un token. La proprietà accetta un identificatore di risorsa corrispondente all'ID risorsa dell'identità gestita definita dall'utente. Non è valido specificare sia un ID risorsa che un ID client. Se non specifichi nessuno dei due, viene utilizzata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential.
<CONNECTION_NAME_PREFIX>__key Imposta la chiave segreta condivisa necessaria per accedere all'endpoint del servizio Azure OpenAI utilizzando l'autenticazione basata su chiavi. Come buona pratica di sicurezza, usa sempre Microsoft Entra ID con identità gestite per l'autenticazione.

Considera queste impostazioni di connessione di identità gestita quando imposti la AIConnectionName proprietà su myAzureOpenAI:

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

Durante l'esecuzione, l'host interpreta queste impostazioni come un'unica myAzureOpenAI impostazione:

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

Quando usi le identità gestite, assicurati di aggiungere la tua identità al ruolo Cognitive Services OpenAI User .

Quando si esegue in località, aggiungi queste impostazioni al filelocal.settings.json progetto. Per altre informazioni, vedere Sviluppo locale con connessioni basate su identità.

Per altre informazioni, vedere Work with application settings.For more information, see Work with application settings.