Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Important
L’extension Azure OpenAI pour Azure Functions est actuellement en préversion.
La liaison d’entrée de requête de l’Assistant Azure OpenAI vous permet d’intégrer des requêtes d’API Assistants dans vos exécutions de code.
Pour plus d’informations sur l’installation et la configuration de l’extension Azure OpenAI, consultez Extensions Azure OpenAI pour Azure Functions. Si vous souhaitez en savoir plus sur les assistants Azure OpenAI, veuillez consulter la rubrique API d’assistants Azure OpenAI.
Remarque
Les références et les exemples sont fournis uniquement pour le modèle Node.js v4.
Remarque
Les références et exemples sont fournis uniquement pour le modèle Python v2.
Remarque
Bien que les deux modèles de processus C# soient pris en charge, seuls les exemples de modèles worker isolés sont fournis.
Exemple
Cet exemple illustre le processus de création, où la fonction HTTP GET qui interroge l’historique des conversations du bot de conversation de l’assistant. La réponse au prompt est retournée dans la réponse HTTP.
/// <summary>
/// HTTP GET function that queries the conversation history of the assistant chat bot.
/// </summary>
[Function(nameof(GetChatState))]
public static IActionResult GetChatState(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantQueryInput("{assistantId}", TimestampUtc = "{Query.timestampUTC}", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
return new OkObjectResult(state);
}
Cet exemple illustre le processus de création, où la fonction HTTP GET qui interroge l’historique des conversations du bot de conversation de l’assistant. La réponse au prompt est retournée dans la réponse HTTP.
/*
* HTTP GET function that queries the conversation history of the assistant chat bot.
*/
@FunctionName("GetChatState")
public HttpResponseMessage getChatState(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantQuery(name = "AssistantState", id = "{assistantId}", timestampUtc = "{Query.timestampUTC}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(state)
.build();
}
Cet exemple illustre le processus de création, où la fonction HTTP GET qui interroge l’historique des conversations du bot de conversation de l’assistant. La réponse au prompt est retournée dans la réponse HTTP.
const { app, input, output } = require("@azure/functions");
const chatBotQueryInput = input.generic({
type: 'assistantQuery',
id: '{assistantId}',
timestampUtc: '{Query.timestampUTC}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
methods: ['GET'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [chatBotQueryInput],
handler: async (_, context) => {
const state = context.extraInputs.get(chatBotQueryInput)
return { status: 200, jsonBody: state }
}
})
Cet exemple illustre le processus de création, où la fonction HTTP GET qui interroge l’historique des conversations du bot de conversation de l’assistant. La réponse au prompt est retournée dans la réponse HTTP.
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"
const chatBotQueryInput = input.generic({
type: 'assistantQuery',
id: '{assistantId}',
timestampUtc: '{Query.timestampUTC}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
methods: ['GET'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [chatBotQueryInput],
handler: async (_, context) => {
const state: any = context.extraInputs.get(chatBotQueryInput)
return { status: 200, jsonBody: state }
}
})
Cet exemple illustre le processus de création, où la fonction HTTP GET qui interroge l’historique des conversations du bot de conversation de l’assistant. La réponse au prompt est retournée dans la réponse HTTP.
Voici le fichier function.json pour obtenir l’état de conversation :
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"get"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "State",
"type": "assistantQuery",
"direction": "in",
"dataType": "string",
"id": "{assistantId}",
"timestampUtc": "{Query.timestampUTC}",
"chatStorageConnectionSetting": "AzureWebJobsStorage",
"collectionName": "ChatState"
}
]
}
Pour plus d’informations sur les propriétés du fichier function.json, consultez la section Configuration.
using namespace System.Net
param($Request, $TriggerMetadata, $State)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $State
Headers = @{
"Content-Type" = "application/json"
}
})
Cet exemple illustre le processus de création, où la fonction HTTP GET qui interroge l’historique des conversations du bot de conversation de l’assistant. La réponse au prompt est retournée dans la réponse HTTP.
@apis.function_name("GetChatState")
@apis.route(route="assistants/{assistantId}", methods=["GET"])
@apis.assistant_query_input(
arg_name="state",
id="{assistantId}",
timestamp_utc="{Query.timestampUTC}",
chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def get_chat_state(req: func.HttpRequest, state: str) -> func.HttpResponse:
return func.HttpResponse(state, status_code=200, mimetype="application/json")
Attributs
Appliquez l’attribut AssistantQuery pour définir une liaison d’entrée de requête d’assistant, qui prend en charge ces paramètres :
| Paramètre | Descriptif |
|---|---|
| Id | Obtient l’ID de l’assistant à interroger. |
| TimeStampUtc | Facultatif. Obtient ou définit l’horodatage du message le plus ancien dans l’historique de conversation à extraire. L’horodatage doit être au format ISO 8601, par exemple, 2023-08-01T00 :00 :00Z. |
Commentaires
L’annotation assistantQuery vous permet de définir une liaison d’entrée de requête d’assistant, qui prend en charge ces paramètres :
| Élément | Descriptif |
|---|---|
| nom | Obtient ou définit le nom de la liaison d’entrée. |
| id | Obtient l’ID de l’assistant à interroger. |
| timeStampUtc | Facultatif. Obtient ou définit l’horodatage du message le plus ancien dans l’historique de conversation à extraire. L’horodatage doit être au format ISO 8601, par exemple, 2023-08-01T00 :00 :00Z. |
Décorateurs
Pendant la préversion, définissez la liaison d’entrée en tant que liaison generic_input_binding de type assistantQuery, qui prend en charge ces paramètres :
| Paramètre | Descriptif |
|---|---|
| arg_name | Le nom de la variable qui représente le paramètre de liaison. |
| id | Obtient l’ID de l’assistant à interroger. |
| time_stamp_utc | Facultatif. Obtient ou définit l’horodatage du message le plus ancien dans l’historique de conversation à extraire. L’horodatage doit être au format ISO 8601, par exemple, 2023-08-01T00 :00 :00Z. |
Paramétrage
La liaison prend en charge ces propriétés de configuration que vous définissez dans le fichier function.json.
| Propriété | Descriptif |
|---|---|
| type | Doit être assistantQuery. |
| direction | Doit être in. |
| nom | Le nom de la liaison d’entrée. |
| id | Obtient l’ID de l’assistant à interroger. |
| timeStampUtc | Facultatif. Obtient ou définit l’horodatage du message le plus ancien dans l’historique de conversation à extraire. L’horodatage doit être au format ISO 8601, par exemple, 2023-08-01T00 :00 :00Z. |
Paramétrage
La liaison prend en charge ces propriétés, qui sont définies dans votre code :
| Propriété | Descriptif |
|---|---|
| id | Obtient l’ID de l’assistant à interroger. |
| timeStampUtc | Facultatif. Obtient ou définit l’horodatage du message le plus ancien dans l’historique de conversation à extraire. L’horodatage doit être au format ISO 8601, par exemple, 2023-08-01T00 :00 :00Z. |
Utilisation
Pour obtenir des exemples complets, consultez la section Exemple.