Azure OpenAI-assistent maakt uitvoerbinding voor Azure Functions
Belangrijk
De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.
Met de Azure OpenAI-assistent maakt u een uitvoerbinding waarmee u een nieuwe assistent-chatbot kunt maken op basis van de uitvoering van uw functiecode.
Zie Azure OpenAI-extensies voor Azure Functions voor informatie over de installatie en configuratie van de Azure OpenAI-extensie. Zie de Api voor Azure OpenAI-assistenten voor meer informatie over Azure OpenAI-assistenten.
Notitie
Verwijzingen en voorbeelden worden alleen verstrekt voor het Node.js v4-model.
Notitie
Verwijzingen en voorbeelden worden alleen verstrekt voor het Python v2-model.
Notitie
Hoewel beide C#-procesmodellen worden ondersteund, worden alleen geïsoleerde werkrolmodelvoorbeelden gegeven.
Opmerking
In dit voorbeeld wordt het aanmaakproces gedemonstreerd, waarbij de HTTP PUT-functie waarmee een nieuwe assistent-chatbot met de opgegeven id wordt gemaakt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
/// 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 = 202 },
ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
{
ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
CollectionName = DefaultCollectionName,
},
In dit voorbeeld wordt het aanmaakproces gedemonstreerd, waarbij de HTTP PUT-functie waarmee een nieuwe assistent-chatbot met de opgegeven id wordt gemaakt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
* account
* where chat data will be stored.
*/
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.
*/
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,
In dit voorbeeld wordt het aanmaakproces gedemonstreerd, waarbij de HTTP PUT-functie waarmee een nieuwe assistent-chatbot met de opgegeven id wordt gemaakt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
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 } }
}
})
In dit voorbeeld wordt het aanmaakproces gedemonstreerd, waarbij de HTTP PUT-functie waarmee een nieuwe assistent-chatbot met de opgegeven id wordt gemaakt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
Dit is het function.json-bestand voor Assistent maken:
{
"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"
}
]
}
Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.
{{Dit komt uit de opmerking van de voorbeeldcode}}
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"
}
})
In dit voorbeeld wordt het aanmaakproces gedemonstreerd, waarbij de HTTP PUT-functie waarmee een nieuwe assistent-chatbot met de opgegeven id wordt gemaakt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
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
Kenmerken
Pas het CreateAssistant
kenmerk toe om een assistent uitvoerbinding te definiëren, die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
Id | De id van de assistent die moet worden gemaakt. |
Instructies | Optioneel. De instructies die aan de assistent worden verstrekt om te volgen. |
Aantekeningen
Met de CreateAssistant
aantekening kunt u een assistent voor het maken van uitvoerbinding definiëren, die ondersteuning biedt voor deze parameters:
Element | Description |
---|---|
name | Hiermee haalt u de naam van de uitvoerbinding op of stelt u deze in. |
id | De id van de assistent die moet worden gemaakt. |
Instructies | Optioneel. De instructies die aan de assistent worden verstrekt om te volgen. |
Decorators
Definieer tijdens de preview de uitvoerbinding als een generic_output_binding
binding van het type createAssistant
, die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
arg_name | De naam van de variabele die de bindingsparameter vertegenwoordigt. |
id | De id van de assistent die moet worden gemaakt. |
Instructies | Optioneel. De instructies die aan de assistent worden verstrekt om te volgen. |
Configuratie
De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.
Eigenschappen | Beschrijving |
---|---|
type | Moet CreateAssistant zijn. |
direction | Moet out zijn. |
name | De naam van de uitvoerbinding. |
id | De id van de assistent die moet worden gemaakt. |
Instructies | Optioneel. De instructies die aan de assistent worden verstrekt om te volgen. |
Configuratie
De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:
Eigenschappen | Description |
---|---|
id | De id van de assistent die moet worden gemaakt. |
Instructies | Optioneel. De instructies die aan de assistent worden verstrekt om te volgen. |
Gebruik
Zie de sectie Voorbeeld voor volledige voorbeelden.