Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.
Met de Azure OpenAI-assistent na invoerbinding kunt u prompts verzenden naar chatbots met assistentchats.
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 POST-functie waarmee gebruikersprompts worden verzonden naar de chatbot van de assistent. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
/// <summary>
/// HTTP POST function that sends user prompts to the assistant chat bot.
/// </summary>
[Function(nameof(PostUserQuery))]
public static IActionResult PostUserQuery(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantPostInput("{assistantId}", "{Query.message}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
return new OkObjectResult(state.RecentMessages.Any() ? state.RecentMessages[state.RecentMessages.Count - 1].Content : "No response returned.");
}
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP POST-functie waarmee gebruikersprompts worden verzonden naar de chatbot van de assistent. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
/*
* HTTP POST function that sends user prompts to the assistant chat bot.
*/
@FunctionName("PostUserResponse")
public HttpResponseMessage postUserResponse(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantPost(name="newMessages", id = "{assistantId}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", userMessage = "{Query.message}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
final ExecutionContext context) {
List<AssistantMessage> recentMessages = state.getRecentMessages();
String response = recentMessages.isEmpty() ? "No response returned." : recentMessages.get(recentMessages.size() - 1).getContent();
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response)
.build();
}
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP POST-functie waarmee gebruikersprompts worden verzonden naar de chatbot van de assistent. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
const { app, input, output } = require("@azure/functions");
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [assistantPostInput],
handler: async (_, context) => {
const chatState = context.extraInputs.get(assistantPostInput)
const content = chatState.recentMessages[0].content
return {
status: 200,
body: content,
headers: {
'Content-Type': 'text/plain'
}
};
}
})
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [assistantPostInput],
handler: async (_, context) => {
const chatState: any = context.extraInputs.get(assistantPostInput)
const content = chatState.recentMessages[0].content
return {
status: 200,
body: content,
headers: {
'Content-Type': 'text/plain'
}
};
}
})
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP POST-functie waarmee gebruikersprompts worden verzonden naar de chatbot van de assistent. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
Dit is het function.json-bestand voor een query na de gebruiker:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "State",
"type": "assistantPost",
"direction": "in",
"dataType": "string",
"id": "{assistantId}",
"userMessage": "{Query.message}",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"chatStorageConnectionSetting": "AzureWebJobsStorage",
"collectionName": "ChatState"
}
]
}
Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.
using namespace System.Net
param($Request, $TriggerMetadata, $State)
$recent_message_content = "No recent messages!"
if ($State.recentMessages.Count -gt 0) {
$recent_message_content = $State.recentMessages[0].content
}
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $recent_message_content
Headers = @{
"Content-Type" = "text/plain"
}
})
In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP POST-functie waarmee gebruikersprompts worden verzonden naar de chatbot van de assistent. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.
@apis.function_name("PostUserQuery")
@apis.route(route="assistants/{assistantId}", methods=["POST"])
@apis.assistant_post_input(
arg_name="state",
id="{assistantId}",
user_message="{Query.message}",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def post_user_response(req: func.HttpRequest, state: str) -> func.HttpResponse:
# Parse the JSON string into a dictionary
data = json.loads(state)
# Extract the content of the recentMessage
recent_message_content = data["recentMessages"][0]["content"]
return func.HttpResponse(
recent_message_content, status_code=200, mimetype="text/plain"
)
Kenmerken
Pas het PostUserQuery
kenmerk toe om een assistent na invoerbinding te definiëren, die ondersteuning biedt voor deze parameters:
Kenmerk | Beschrijving |
---|---|
Legitimatiebewijs | De id van de assistent die moet worden bijgewerkt. |
UserMessage | Hiermee wordt het gebruikersbericht opgehaald of ingesteld voor het voltooiingsmodel van de chat, gecodeerd als een tekenreeks. |
AIConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
ChatModel |
Optioneel. Hiermee wordt de id van het model opgehaald of ingesteld voor gebruik als een tekenreeks, met een standaardwaarde van gpt-3.5-turbo . |
Temperatuur |
Optioneel. Hiermee wordt de steekproeftemperatuur opgehaald of ingesteld voor gebruik als tekenreeks tussen 0 en 2 . Hogere waarden (0.8 ) maken de uitvoer willekeuriger, terwijl lagere waarden zoals (0.2 ) uitvoer meer gericht en deterministisch maken. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
TopP |
Optioneel. Hiermee wordt een alternatief voor steekproeven met temperatuur, zogenaamde kernsampling, opgehaald of ingesteld als een tekenreeks. In deze steekproefmethode houdt het model rekening met de resultaten van de tokens met top_p waarschijnlijkheidsmassa. Dit betekent dat 0.1 alleen de tokens die de top 10% kansdichtheid omvatten, worden beschouwd. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
MaxTokens |
Optioneel. Hiermee haalt of stelt u het maximum aantal tokens op dat moet worden gegenereerd in de voltooiing, als een tekenreeks met een standaardwaarde.100 Het tokenaantal van uw prompt plus max_tokens kan de contextlengte van het model niet overschrijden. De meeste modellen hebben een contextlengte van 2048 tokens (met uitzondering van de nieuwste modellen, die 4096 ondersteunen). |
IsReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Aantekeningen
Met de PostUserQuery
aantekening kunt u een assistent na invoerbinding definiëren, die deze parameters ondersteunt:
Onderdeel | Beschrijving |
---|---|
naam | De naam van de uitvoerbinding. |
ID | De id van de assistent die moet worden bijgewerkt. |
userMessage | Hiermee wordt het gebruikersbericht opgehaald of ingesteld voor het voltooiingsmodel van de chat, gecodeerd als een tekenreeks. |
aiConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
chatModel | Hiermee wordt de id van het model opgehaald of ingesteld voor gebruik als een tekenreeks, met een standaardwaarde van gpt-3.5-turbo . |
temperatuur |
Optioneel. Hiermee wordt de steekproeftemperatuur opgehaald of ingesteld voor gebruik als tekenreeks tussen 0 en 2 . Hogere waarden (0.8 ) maken de uitvoer willekeuriger, terwijl lagere waarden zoals (0.2 ) uitvoer meer gericht en deterministisch maken. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
topP |
Optioneel. Hiermee wordt een alternatief voor steekproeven met temperatuur, zogenaamde kernsampling, opgehaald of ingesteld als een tekenreeks. In deze steekproefmethode houdt het model rekening met de resultaten van de tokens met top_p waarschijnlijkheidsmassa. Dit betekent dat 0.1 alleen de tokens die de top 10% kansdichtheid omvatten, worden beschouwd. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
maxTokens |
Optioneel. Hiermee haalt of stelt u het maximum aantal tokens op dat moet worden gegenereerd in de voltooiing, als een tekenreeks met een standaardwaarde.100 Het tokenaantal van uw prompt plus max_tokens kan de contextlengte van het model niet overschrijden. De meeste modellen hebben een contextlengte van 2048 tokens (met uitzondering van de nieuwste modellen, die 4096 ondersteunen). |
isReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Decorateurs
Definieer tijdens de preview de uitvoerbinding als een generic_output_binding
binding van het type postUserQuery
, die ondersteuning biedt voor deze parameters:
Kenmerk | Beschrijving |
---|---|
arg_name | De naam van de variabele die de bindingsparameter vertegenwoordigt. |
ID | De id van de assistent die moet worden bijgewerkt. |
user_message | Hiermee wordt het gebruikersbericht opgehaald of ingesteld voor het voltooiingsmodel van de chat, gecodeerd als een tekenreeks. |
ai_connection_name | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
chat_model | Hiermee wordt de id van het model opgehaald of ingesteld voor gebruik als een tekenreeks, met een standaardwaarde van gpt-3.5-turbo . |
temperatuur |
Optioneel. Hiermee wordt de steekproeftemperatuur opgehaald of ingesteld voor gebruik als tekenreeks tussen 0 en 2 . Hogere waarden (0.8 ) maken de uitvoer willekeuriger, terwijl lagere waarden zoals (0.2 ) uitvoer meer gericht en deterministisch maken. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
top_p |
Optioneel. Hiermee wordt een alternatief voor steekproeven met temperatuur, zogenaamde kernsampling, opgehaald of ingesteld als een tekenreeks. In deze steekproefmethode houdt het model rekening met de resultaten van de tokens met top_p waarschijnlijkheidsmassa. Dit betekent dat 0.1 alleen de tokens die de top 10% kansdichtheid omvatten, worden beschouwd. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
max_tokens |
Optioneel. Hiermee haalt of stelt u het maximum aantal tokens op dat moet worden gegenereerd in de voltooiing, als een tekenreeks met een standaardwaarde.100 Het tokenaantal van uw prompt plus max_tokens kan de contextlengte van het model niet overschrijden. De meeste modellen hebben een contextlengte van 2048 tokens (met uitzondering van de nieuwste modellen, die 4096 ondersteunen). |
is_reasoning _model |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Configuratie
De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.
Eigenschappen | Beschrijving |
---|---|
soort | Moet PostUserQuery zijn. |
richting | Moet out zijn. |
naam | De naam van de uitvoerbinding. |
ID | De id van de assistent die moet worden bijgewerkt. |
userMessage | Hiermee wordt het gebruikersbericht opgehaald of ingesteld voor het voltooiingsmodel van de chat, gecodeerd als een tekenreeks. |
aiConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
chatModel | Hiermee wordt de id van het model opgehaald of ingesteld voor gebruik als een tekenreeks, met een standaardwaarde van gpt-3.5-turbo . |
temperatuur |
Optioneel. Hiermee wordt de steekproeftemperatuur opgehaald of ingesteld voor gebruik als tekenreeks tussen 0 en 2 . Hogere waarden (0.8 ) maken de uitvoer willekeuriger, terwijl lagere waarden zoals (0.2 ) uitvoer meer gericht en deterministisch maken. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
topP |
Optioneel. Hiermee wordt een alternatief voor steekproeven met temperatuur, zogenaamde kernsampling, opgehaald of ingesteld als een tekenreeks. In deze steekproefmethode houdt het model rekening met de resultaten van de tokens met top_p waarschijnlijkheidsmassa. Dit betekent dat 0.1 alleen de tokens die de top 10% kansdichtheid omvatten, worden beschouwd. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
maxTokens |
Optioneel. Hiermee haalt of stelt u het maximum aantal tokens op dat moet worden gegenereerd in de voltooiing, als een tekenreeks met een standaardwaarde.100 Het tokenaantal van uw prompt plus max_tokens kan de contextlengte van het model niet overschrijden. De meeste modellen hebben een contextlengte van 2048 tokens (met uitzondering van de nieuwste modellen, die 4096 ondersteunen). |
isReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Configuratie
De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:
Eigenschappen | Beschrijving |
---|---|
ID | De id van de assistent die moet worden bijgewerkt. |
userMessage | Hiermee wordt het gebruikersbericht opgehaald of ingesteld voor het voltooiingsmodel van de chat, gecodeerd als een tekenreeks. |
aiConnectionName | Optioneel. Hiermee haalt u de naam van de configuratiesectie op voor connectiviteitsinstellingen voor AI-services. Voor Azure OpenAI: Als dit is opgegeven, zoekt u in deze configuratiesectie naar de waarden 'Eindpunt' en 'Sleutel'. Als deze niet is opgegeven of de sectie niet bestaat, valt u terug op omgevingsvariabelen: AZURE_OPENAI_ENDPOINT en AZURE_OPENAI_KEY. Voor door de gebruiker toegewezen beheerde identiteitverificatie is deze eigenschap vereist. Stel voor openAI-service (niet-Azure) de omgevingsvariabele OPENAI_API_KEY in. |
chatModel | Hiermee wordt de id van het model opgehaald of ingesteld voor gebruik als een tekenreeks, met een standaardwaarde van gpt-3.5-turbo . |
temperatuur |
Optioneel. Hiermee wordt de steekproeftemperatuur opgehaald of ingesteld voor gebruik als tekenreeks tussen 0 en 2 . Hogere waarden (0.8 ) maken de uitvoer willekeuriger, terwijl lagere waarden zoals (0.2 ) uitvoer meer gericht en deterministisch maken. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
topP |
Optioneel. Hiermee wordt een alternatief voor steekproeven met temperatuur, zogenaamde kernsampling, opgehaald of ingesteld als een tekenreeks. In deze steekproefmethode houdt het model rekening met de resultaten van de tokens met top_p waarschijnlijkheidsmassa. Dit betekent dat 0.1 alleen de tokens die de top 10% kansdichtheid omvatten, worden beschouwd. U moet een van Temperature beide gebruiken of TopP , maar niet beide. |
maxTokens |
Optioneel. Hiermee haalt of stelt u het maximum aantal tokens op dat moet worden gegenereerd in de voltooiing, als een tekenreeks met een standaardwaarde.100 Het tokenaantal van uw prompt plus max_tokens kan de contextlengte van het model niet overschrijden. De meeste modellen hebben een contextlengte van 2048 tokens (met uitzondering van de nieuwste modellen, die 4096 ondersteunen). |
isReasoningModel |
Optioneel. Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het voltooiingsmodel van de chat een redeneringsmodel is. Deze optie is experimenteel en gekoppeld aan het redeneringsmodel totdat alle modellen pariteit hebben in de verwachte eigenschappen, met een standaardwaarde van false . |
Gebruik
Zie de sectie Voorbeeld voor volledige voorbeelden.