Queryinvoerbinding voor Azure OpenAI-assistent voor Azure Functions
Belangrijk
De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.
Met de queryinvoerbinding van de Azure OpenAI-assistent kunt u API-query's voor assistenten integreren in uw code-uitvoeringen.
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 ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
public static async Task<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);
}
}
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
"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();
}
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
const CHAT_STORAGE_CONNECTION_SETTING = "AzureWebJobsStorage";
const COLLECTION_NAME = "ChatState";
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 }
}
})
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
const CHAT_STORAGE_CONNECTION_SETTING = "AzureWebJobsStorage";
const COLLECTION_NAME = "ChatState";
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 }
}
})
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
Dit is het bestand function.json voor chatstatus ophalen:
{
"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"
}
]
}
Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.
using namespace System.Net
param($Request, $TriggerMetadata, $State)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $State
Headers = @{
"Content-Type" = "application/json"
}
})
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
recent_message_content = data['recentMessages'][0]['content']
return func.HttpResponse(recent_message_content, status_code=200, mimetype="text/plain")
@apis.function_name("GetChatState")
Kenmerken
Pas het AssistantQuery
kenmerk toe om een assistentquery-invoerbinding te definiëren, die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
Id | Hiermee haalt u de id van de assistent op om een query uit te voeren. |
TimeStampUtc | Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z. |
Aantekeningen
Met de assistantQuery
aantekening kunt u een assistentquery-invoerbinding definiëren, die ondersteuning biedt voor deze parameters:
Element | Description |
---|---|
name | Hiermee haalt u de naam van de invoerbinding op of stelt u deze in. |
id | Hiermee haalt u de id van de assistent op om een query uit te voeren. |
timeStampUtc | Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z. |
Decorators
Definieer tijdens de preview de invoerbinding als een generic_input_binding
binding van het type assistantQuery
, die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
arg_name | De naam van de variabele die de bindingsparameter vertegenwoordigt. |
id | Hiermee haalt u de id van de assistent op om een query uit te voeren. |
time_stamp_utc | Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z. |
Configuratie
De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.
Eigenschappen | Beschrijving |
---|---|
type | Moet assistantQuery zijn. |
direction | Moet in zijn. |
name | De naam van de invoerbinding. |
id | Hiermee haalt u de id van de assistent op om een query uit te voeren. |
timeStampUtc | Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z. |
Configuratie
De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:
Eigenschappen | Description |
---|---|
id | Hiermee haalt u de id van de assistent op om een query uit te voeren. |
timeStampUtc | Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z. |
Gebruik
Zie de sectie Voorbeeld voor volledige voorbeelden.