Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Azure OpenAI-tillägget för Azure Functions är för närvarande i förhandsversion.
Azure OpenAI-assistenten skapar utdatabindning så att du kan skapa en ny chattrobot för assistenter från funktionskodens körning.
Information om konfiguration och konfigurationsinformation för Azure OpenAI-tillägget finns i Azure OpenAI-tillägg för Azure Functions. Mer information om Azure OpenAI-assistenter finns i API för Azure OpenAI Assistants.
Kommentar
Referenser och exempel tillhandahålls endast för modellen Node.js v4.
Kommentar
Referenser och exempel tillhandahålls endast för Python v2-modellen.
Kommentar
Båda C#-processmodellerna stöds, men endast exempel på isolerade arbetsmodeller tillhandahålls.
Exempel
Det här exemplet visar skapandeprocessen, där funktionen HTTP PUT som skapar en ny chattrobot för assistenter med det angivna ID:t. Svaret på uppmaningen returneras i HTTP-svaret.
/// <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; }
}
Det här exemplet visar skapandeprocessen, där funktionen HTTP PUT som skapar en ny chattrobot för assistenter med det angivna ID:t. Svaret på uppmaningen returneras i HTTP-svaret.
/**
* 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();
}
Det här exemplet visar skapandeprocessen, där funktionen HTTP PUT som skapar en ny chattrobot för assistenter med det angivna ID:t. Svaret på uppmaningen returneras i HTTP-svaret.
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 } }
}
})
Det här exemplet visar skapandeprocessen, där funktionen HTTP PUT som skapar en ny chattrobot för assistenter med det angivna ID:t. Svaret på uppmaningen returneras i HTTP-svaret.
Här är function.json-filen för Skapa assistent:
{
"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"
}
]
}
Mer information om function.json filegenskaper finns i avsnittet Konfiguration .
{{Detta kommer från exempelkodkommenten}}
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"
}
})
Det här exemplet visar skapandeprocessen, där funktionen HTTP PUT som skapar en ny chattrobot för assistenter med det angivna ID:t. Svaret på uppmaningen returneras i HTTP-svaret.
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"
)
Attribut
CreateAssistant Använd attributet för att definiera en utdatabindning för att skapa en assistent, som stöder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| ID | Identifieraren för assistenten som ska skapas. |
| Instruktioner | Valfritt. De instruktioner som tillhandahålls till assistenten att följa. |
| ChatStorageConnectionSetting |
Valfritt. Konfigurationsavsnittets namn för tabellinställningarna för chattlagring. Standardvärdet är AzureWebJobsStorage. |
| CollectionName |
Valfritt. Tabellsamlingens namn för chattlagring. Standardvärdet är ChatState. |
Kommentarer
Med anteckningen CreateAssistant kan du definiera en assistent för att skapa utdatabindning, som stöder följande parametrar:
| Komponent | Beskrivning |
|---|---|
| Namn | Hämtar eller anger namnet på utdatabindningen. |
| ID | Identifieraren för assistenten som ska skapas. |
| instruktioner | Valfritt. De instruktioner som tillhandahålls till assistenten att följa. |
| chatStorageConnectionSetting |
Valfritt. Konfigurationsavsnittets namn för tabellinställningarna för chattlagring. Standardvärdet är AzureWebJobsStorage. |
| collectionName |
Valfritt. Tabellsamlingens namn för chattlagring. Standardvärdet är ChatState. |
Dekoratörer
Under förhandsversionen definierar du utdatabindningen som en generic_output_binding bindning av typen createAssistant, som stöder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| arg_name | Namnet på variabeln som representerar bindningsparametern. |
| ID | Identifieraren för assistenten som ska skapas. |
| instruktioner | Valfritt. De instruktioner som tillhandahålls till assistenten att följa. |
| chat_storage_connection_setting |
Valfritt. Konfigurationsavsnittets namn för tabellinställningarna för chattlagring. Standardvärdet är AzureWebJobsStorage. |
| collection_name |
Valfritt. Tabellsamlingens namn för chattlagring. Standardvärdet är ChatState. |
Konfiguration
Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.
| Fastighet | Beskrivning |
|---|---|
| typ | Måste vara CreateAssistant. |
| riktning | Måste vara out. |
| Namn | Namnet på utdatabindningen. |
| ID | Identifieraren för assistenten som ska skapas. |
| instruktioner | Valfritt. De instruktioner som tillhandahålls till assistenten att följa. |
| chatStorageConnectionSetting |
Valfritt. Konfigurationsavsnittets namn för tabellinställningarna för chattlagring. Standardvärdet är AzureWebJobsStorage. |
| collectionName |
Valfritt. Tabellsamlingens namn för chattlagring. Standardvärdet är ChatState. |
Konfiguration
Bindningen stöder dessa egenskaper, som definieras i koden:
| Fastighet | Beskrivning |
|---|---|
| ID | Identifieraren för assistenten som ska skapas. |
| instruktioner | Valfritt. De instruktioner som tillhandahålls till assistenten att följa. |
| chatStorageConnectionSetting |
Valfritt. Konfigurationsavsnittets namn för tabellinställningarna för chattlagring. Standardvärdet är AzureWebJobsStorage. |
| collectionName |
Valfritt. Tabellsamlingens namn för chattlagring. Standardvärdet är ChatState. |
Förbrukning
Se avsnittet Exempel för fullständiga exempel.