Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
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.Anonymous, "post", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantPostInput("{assistantId}", "{Query.message}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", 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.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantPost(name="newMessages", id = "{assistantId}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", 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%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
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%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
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"
}
]
}
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%",
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.