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 de création de sortie de l’assistant Azure OpenAI vous permet de créer un bot de conversation assistant à partir de l’exécution de votre code de fonction.
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 PUT qui crée un bot de conversation assistant avec l’ID spécifié. La réponse à l’invite est renvoyée dans la réponse HTTP.
/// <summary>
/// HTTP PUT function that creates a new assistant chat bot with the specified ID.
/// </summary>
[Function(nameof(CreateAssistant))]
public static async Task<CreateChatBotOutput> CreateAssistant(
[HttpTrigger(AuthorizationLevel.Anonymous, "put", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId)
{
string instructions =
"""
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
""";
using StreamReader reader = new(req.Body);
string request = await reader.ReadToEndAsync();
return new CreateChatBotOutput
{
HttpResponse = new ObjectResult(new { assistantId }) { StatusCode = 201 },
ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
{
ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
CollectionName = DefaultCollectionName,
},
};
}
public class CreateChatBotOutput
{
[AssistantCreateOutput()]
public AssistantCreateRequest? ChatBotCreateRequest { get; set; }
[HttpResult]
public IActionResult? HttpResponse { get; set; }
}
Cet exemple illustre le processus de création, où la fonction HTTP PUT qui crée un bot de conversation assistant avec l’ID spécifié. La réponse à l’invite est renvoyée dans la réponse HTTP.
/**
* The default storage account setting for the table storage account.
* This constant is used to specify the connection string for the table storage
* account
* where chat data will be stored.
*/
final String DEFAULT_CHATSTORAGE = "AzureWebJobsStorage";
/**
* The default collection name for the table storage account.
* This constant is used to specify the collection name for the table storage
* account
* where chat data will be stored.
*/
final String DEFAULT_COLLECTION = "ChatState";
/*
* HTTP PUT function that creates a new assistant chat bot with the specified ID.
*/
@FunctionName("CreateAssistant")
public HttpResponseMessage createAssistant(
@HttpTrigger(
name = "req",
methods = {HttpMethod.PUT},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantCreate(name = "AssistantCreate") OutputBinding<AssistantCreateRequest> message,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
String instructions = "Don't make assumptions about what values to plug into functions.\n" +
"Ask for clarification if a user request is ambiguous.";
AssistantCreateRequest assistantCreateRequest = new AssistantCreateRequest(assistantId, instructions);
assistantCreateRequest.setChatStorageConnectionSetting(DEFAULT_CHATSTORAGE);
assistantCreateRequest.setCollectionName(DEFAULT_COLLECTION);
message.setValue(assistantCreateRequest);
JSONObject response = new JSONObject();
response.put("assistantId", assistantId);
return request.createResponseBuilder(HttpStatus.CREATED)
.header("Content-Type", "application/json")
.body(response.toString())
.build();
}
Cet exemple illustre le processus de création, où la fonction HTTP PUT qui crée un bot de conversation assistant avec l’ID spécifié. La réponse à l’invite est renvoyée dans la réponse HTTP.
const { app, input, output } = require("@azure/functions");
const CHAT_STORAGE_CONNECTION_SETTING = "AzureWebJobsStorage";
const COLLECTION_NAME = "ChatState";
const chatBotCreateOutput = output.generic({
type: 'assistantCreate'
})
app.http('CreateAssistant', {
methods: ['PUT'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraOutputs: [chatBotCreateOutput],
handler: async (request, context) => {
const assistantId = request.params.assistantId
const instructions =
`
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
`
const createRequest = {
id: assistantId,
instructions: instructions,
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
}
context.extraOutputs.set(chatBotCreateOutput, createRequest)
return { status: 202, jsonBody: { assistantId: assistantId } }
}
})
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"
const CHAT_STORAGE_CONNECTION_SETTING = "AzureWebJobsStorage";
const COLLECTION_NAME = "ChatState";
const chatBotCreateOutput = output.generic({
type: 'assistantCreate'
})
app.http('CreateAssistant', {
methods: ['PUT'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraOutputs: [chatBotCreateOutput],
handler: async (request: HttpRequest, context: InvocationContext) => {
const assistantId = request.params.assistantId
const instructions =
`
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
`
const createRequest = {
id: assistantId,
instructions: instructions,
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
}
context.extraOutputs.set(chatBotCreateOutput, createRequest)
return { status: 202, jsonBody: { assistantId: assistantId } }
}
})
Cet exemple illustre le processus de création, où la fonction HTTP PUT qui crée un bot de conversation assistant avec l’ID spécifié. La réponse à l’invite est renvoyée dans la réponse HTTP.
Voici le fichier function.json pour Créer l’Assistant :
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"put"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"type": "assistantCreate",
"direction": "out",
"dataType": "string",
"name": "Requests"
}
]
}
Pour plus d’informations sur les propriétés du fichier function.json, consultez la section Configuration.
{{Cela provient de l’exemple de commentaire de code}}
using namespace System.Net
param($Request, $TriggerMetadata)
$assistantId = $Request.params.assistantId
$instructions = "Don't make assumptions about what values to plug into functions."
$instructions += "\nAsk for clarification if a user request is ambiguous."
$create_request = @{
"id" = $assistantId
"instructions" = $instructions
"chatStorageConnectionSetting" = "AzureWebJobsStorage"
"collectionName" = "ChatState"
}
Push-OutputBinding -Name Requests -Value (ConvertTo-Json $create_request)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::Accepted
Body = (ConvertTo-Json @{ "assistantId" = $assistantId})
Headers = @{
"Content-Type" = "application/json"
}
})
Cet exemple illustre le processus de création, où la fonction HTTP PUT qui crée un bot de conversation assistant avec l’ID spécifié. La réponse à l’invite est renvoyée dans la réponse HTTP.
DEFAULT_CHAT_STORAGE_SETTING = "AzureWebJobsStorage"
DEFAULT_CHAT_COLLECTION_NAME = "ChatState"
@apis.function_name("CreateAssistant")
@apis.route(route="assistants/{assistantId}", methods=["PUT"])
@apis.assistant_create_output(arg_name="requests")
def create_assistant(
req: func.HttpRequest, requests: func.Out[str]
) -> func.HttpResponse:
assistantId = req.route_params.get("assistantId")
instructions = """
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
"""
create_request = {
"id": assistantId,
"instructions": instructions,
"chatStorageConnectionSetting": DEFAULT_CHAT_STORAGE_SETTING,
"collectionName": DEFAULT_CHAT_COLLECTION_NAME,
}
requests.set(json.dumps(create_request))
response_json = {"assistantId": assistantId}
return func.HttpResponse(
json.dumps(response_json), status_code=202, mimetype="application/json"
)
Attributs
Appliquez l’attribut CreateAssistant pour définir une liaison de sortie de création d’assistant, qui prend en charge ces paramètres :
| Paramètre | Descriptif |
|---|---|
| Id | Identificateur de l’assistant à créer. |
| Instructions | Facultatif. Instructions fournies à l’assistant à suivre. |
| ChatStorageConnectionSetting |
Facultatif. Nom de la section de configuration des paramètres de table pour le stockage de conversation. La valeur par défaut est AzureWebJobsStorage. |
| CollectionName |
Facultatif. Nom de la collection de tables pour le stockage de conversation. La valeur par défaut est ChatState. |
Commentaires
L’annotation CreateAssistant vous permet de définir une liaison de sortie de création d’assistant, qui prend en charge les paramètres suivants :
| Élément | Descriptif |
|---|---|
| nom | Obtient ou définit le nom de la liaison de sortie. |
| id | Identificateur de l’assistant à créer. |
| détaillées | Facultatif. Instructions fournies à l’assistant à suivre. |
| chatStorageConnectionSetting |
Facultatif. Nom de la section de configuration des paramètres de table pour le stockage de conversation. La valeur par défaut est AzureWebJobsStorage. |
| collectionName |
Facultatif. Nom de la collection de tables pour le stockage de conversation. La valeur par défaut est ChatState. |
Décorateurs
Pendant la préversion, définissez la liaison de sortie en tant que liaison generic_output_binding de type createAssistant, 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 | Identificateur de l’assistant à créer. |
| détaillées | Facultatif. Instructions fournies à l’assistant à suivre. |
| chat_storage_connection_setting |
Facultatif. Nom de la section de configuration des paramètres de table pour le stockage de conversation. La valeur par défaut est AzureWebJobsStorage. |
| collection_name |
Facultatif. Nom de la collection de tables pour le stockage de conversation. La valeur par défaut est ChatState. |
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 CreateAssistant. |
| direction | Doit être out. |
| nom | Nom de la liaison de sortie. |
| id | Identificateur de l’assistant à créer. |
| détaillées | Facultatif. Instructions fournies à l’assistant à suivre. |
| chatStorageConnectionSetting |
Facultatif. Nom de la section de configuration des paramètres de table pour le stockage de conversation. La valeur par défaut est AzureWebJobsStorage. |
| collectionName |
Facultatif. Nom de la collection de tables pour le stockage de conversation. La valeur par défaut est ChatState. |
Paramétrage
La liaison prend en charge ces propriétés, qui sont définies dans votre code :
| Propriété | Descriptif |
|---|---|
| id | Identificateur de l’assistant à créer. |
| détaillées | Facultatif. Instructions fournies à l’assistant à suivre. |
| chatStorageConnectionSetting |
Facultatif. Nom de la section de configuration des paramètres de table pour le stockage de conversation. La valeur par défaut est AzureWebJobsStorage. |
| collectionName |
Facultatif. Nom de la collection de tables pour le stockage de conversation. La valeur par défaut est ChatState. |
Utilisation
Pour obtenir des exemples complets, consultez la section Exemple.