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.
Med Azure OpenAI-assistenten efter indatabindningen kan du skicka frågor till chattrobotar för assistenter.
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 POST som skickar användarfrågor till chattroboten assistent. Svaret på uppmaningen returneras i HTTP-svaret.
/// <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.");
}
Det här exemplet visar skapandeprocessen, där FUNKTIONEN HTTP POST som skickar användarfrågor till chattroboten assistent. Svaret på uppmaningen returneras i HTTP-svaret.
/*
* 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();
}
Det här exemplet visar skapandeprocessen, där FUNKTIONEN HTTP POST som skickar användarfrågor till chattroboten assistent. Svaret på uppmaningen returneras i HTTP-svaret.
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'
}
};
}
})
Det här exemplet visar skapandeprocessen, där FUNKTIONEN HTTP POST som skickar användarfrågor till chattroboten assistent. Svaret på uppmaningen returneras i HTTP-svaret.
Här är function.json-filen för postanvändarfråga:
{
"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"
}
]
}
Mer information om function.json filegenskaper finns i avsnittet Konfiguration .
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"
}
})
Det här exemplet visar skapandeprocessen, där FUNKTIONEN HTTP POST som skickar användarfrågor till chattroboten assistent. Svaret på uppmaningen returneras i HTTP-svaret.
@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"
)
Attribut
PostUserQuery Använd attributet för att definiera en assistent efter indatabindning, som stöder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| ID | ID:t för assistenten som ska uppdateras. |
| UserMessage | Hämtar eller anger användarmeddelandet för chattens slutförandemodell, kodad som en sträng. |
| AIConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| ChatModel |
Valfritt. Hämtar eller anger ID för modellen som ska användas som en sträng, med standardvärdet gpt-3.5-turbo. |
| Temperatur |
Valfritt. Hämtar eller ställer in samplingstemperaturen som ska användas, som en sträng mellan 0 och 2. Högre värden (0.8) gör utdata mer slumpmässiga, medan lägre värden som (0.2) gör utdata mer fokuserade och deterministiska. Du bör använda antingen Temperature eller TopP, men inte båda. |
| TopP |
Valfritt. Hämtar eller anger ett alternativ till sampling med temperatur, som kallas kärnsampling, som en sträng. I den här samplingsmetoden tar modellen hänsyn till resultatet av token med top_p sannolikhetsmassa. Det 0.1 innebär att endast de token som består av de 10 främsta% sannolikhetsmassan beaktas. Du bör använda antingen Temperature eller TopP, men inte båda. |
| MaxTokens |
Valfritt. Hämtar eller anger det maximala antalet token som ska genereras i slutförandet, som en sträng med standardvärdet 100. Tokenantalet för din fråga plus max_tokens får inte överskrida modellens kontextlängd. De flesta modeller har en kontextlängd på 2 048 token (förutom de senaste modellerna, som stöder 4096). |
| IsReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Kommentarer
Med anteckningen PostUserQuery kan du definiera en assistent efter indatabindningen, som stöder följande parametrar:
| Komponent | Beskrivning |
|---|---|
| Namn | Namnet på utdatabindningen. |
| ID | ID:t för assistenten som ska uppdateras. |
| userMessage | Hämtar eller anger användarmeddelandet för chattens slutförandemodell, kodad som en sträng. |
| aiConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| chatModel | Hämtar eller anger ID för modellen som ska användas som en sträng, med standardvärdet gpt-3.5-turbo. |
| temperatur |
Valfritt. Hämtar eller ställer in samplingstemperaturen som ska användas, som en sträng mellan 0 och 2. Högre värden (0.8) gör utdata mer slumpmässiga, medan lägre värden som (0.2) gör utdata mer fokuserade och deterministiska. Du bör använda antingen Temperature eller TopP, men inte båda. |
| topP |
Valfritt. Hämtar eller anger ett alternativ till sampling med temperatur, som kallas kärnsampling, som en sträng. I den här samplingsmetoden tar modellen hänsyn till resultatet av token med top_p sannolikhetsmassa. Det 0.1 innebär att endast de token som består av de 10 främsta% sannolikhetsmassan beaktas. Du bör använda antingen Temperature eller TopP, men inte båda. |
| maxTokens |
Valfritt. Hämtar eller anger det maximala antalet token som ska genereras i slutförandet, som en sträng med standardvärdet 100. Tokenantalet för din fråga plus max_tokens får inte överskrida modellens kontextlängd. De flesta modeller har en kontextlängd på 2 048 token (förutom de senaste modellerna, som stöder 4096). |
| isReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Dekoratörer
Under förhandsversionen definierar du utdatabindningen som en generic_output_binding bindning av typen postUserQuery, som stöder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| arg_name | Namnet på variabeln som representerar bindningsparametern. |
| ID | ID:t för assistenten som ska uppdateras. |
| user_message | Hämtar eller anger användarmeddelandet för chattens slutförandemodell, kodad som en sträng. |
| ai_connection_name | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| chat_model | Hämtar eller anger ID för modellen som ska användas som en sträng, med standardvärdet gpt-3.5-turbo. |
| temperatur |
Valfritt. Hämtar eller ställer in samplingstemperaturen som ska användas, som en sträng mellan 0 och 2. Högre värden (0.8) gör utdata mer slumpmässiga, medan lägre värden som (0.2) gör utdata mer fokuserade och deterministiska. Du bör använda antingen Temperature eller TopP, men inte båda. |
| top_p |
Valfritt. Hämtar eller anger ett alternativ till sampling med temperatur, som kallas kärnsampling, som en sträng. I den här samplingsmetoden tar modellen hänsyn till resultatet av token med top_p sannolikhetsmassa. Det 0.1 innebär att endast de token som består av de 10 främsta% sannolikhetsmassan beaktas. Du bör använda antingen Temperature eller TopP, men inte båda. |
| max_tokens |
Valfritt. Hämtar eller anger det maximala antalet token som ska genereras i slutförandet, som en sträng med standardvärdet 100. Tokenantalet för din fråga plus max_tokens får inte överskrida modellens kontextlängd. De flesta modeller har en kontextlängd på 2 048 token (förutom de senaste modellerna, som stöder 4096). |
| is_reasoning _model |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Konfiguration
Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.
| Fastighet | Beskrivning |
|---|---|
| typ | Måste vara PostUserQuery. |
| riktning | Måste vara out. |
| Namn | Namnet på utdatabindningen. |
| ID | ID:t för assistenten som ska uppdateras. |
| userMessage | Hämtar eller anger användarmeddelandet för chattens slutförandemodell, kodad som en sträng. |
| aiConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| chatModel | Hämtar eller anger ID för modellen som ska användas som en sträng, med standardvärdet gpt-3.5-turbo. |
| temperatur |
Valfritt. Hämtar eller ställer in samplingstemperaturen som ska användas, som en sträng mellan 0 och 2. Högre värden (0.8) gör utdata mer slumpmässiga, medan lägre värden som (0.2) gör utdata mer fokuserade och deterministiska. Du bör använda antingen Temperature eller TopP, men inte båda. |
| topP |
Valfritt. Hämtar eller anger ett alternativ till sampling med temperatur, som kallas kärnsampling, som en sträng. I den här samplingsmetoden tar modellen hänsyn till resultatet av token med top_p sannolikhetsmassa. Det 0.1 innebär att endast de token som består av de 10 främsta% sannolikhetsmassan beaktas. Du bör använda antingen Temperature eller TopP, men inte båda. |
| maxTokens |
Valfritt. Hämtar eller anger det maximala antalet token som ska genereras i slutförandet, som en sträng med standardvärdet 100. Tokenantalet för din fråga plus max_tokens får inte överskrida modellens kontextlängd. De flesta modeller har en kontextlängd på 2 048 token (förutom de senaste modellerna, som stöder 4096). |
| isReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Konfiguration
Bindningen stöder dessa egenskaper, som definieras i koden:
| Fastighet | Beskrivning |
|---|---|
| ID | ID:t för assistenten som ska uppdateras. |
| userMessage | Hämtar eller anger användarmeddelandet för chattens slutförandemodell, kodad som en sträng. |
| aiConnectionName | Valfritt. Hämtar eller anger namnet på konfigurationsavsnittet för anslutningsinställningar för AI-tjänsten. För Azure OpenAI: Om det anges söker du efter värdena "Slutpunkt" och "Nyckel" i det här konfigurationsavsnittet. Om det inte anges eller om avsnittet inte finns återgår du till miljövariabler: AZURE_OPENAI_ENDPOINT och AZURE_OPENAI_KEY. För användartilldelad hanterad identitetsautentisering krävs den här egenskapen. För OpenAI-tjänsten (icke-Azure) anger du miljövariabeln OPENAI_API_KEY. |
| chatModel | Hämtar eller anger ID för modellen som ska användas som en sträng, med standardvärdet gpt-3.5-turbo. |
| temperatur |
Valfritt. Hämtar eller ställer in samplingstemperaturen som ska användas, som en sträng mellan 0 och 2. Högre värden (0.8) gör utdata mer slumpmässiga, medan lägre värden som (0.2) gör utdata mer fokuserade och deterministiska. Du bör använda antingen Temperature eller TopP, men inte båda. |
| topP |
Valfritt. Hämtar eller anger ett alternativ till sampling med temperatur, som kallas kärnsampling, som en sträng. I den här samplingsmetoden tar modellen hänsyn till resultatet av token med top_p sannolikhetsmassa. Det 0.1 innebär att endast de token som består av de 10 främsta% sannolikhetsmassan beaktas. Du bör använda antingen Temperature eller TopP, men inte båda. |
| maxTokens |
Valfritt. Hämtar eller anger det maximala antalet token som ska genereras i slutförandet, som en sträng med standardvärdet 100. Tokenantalet för din fråga plus max_tokens får inte överskrida modellens kontextlängd. De flesta modeller har en kontextlängd på 2 048 token (förutom de senaste modellerna, som stöder 4096). |
| isReasoningModel |
Valfritt. Hämtar eller anger ett värde som anger om chattens slutförandemodell är en resonemangsmodell. Det här alternativet är experimentellt och associerat med resonemangsmodellen tills alla modeller har paritet i de förväntade egenskaperna, med standardvärdet false. |
Förbrukning
Se avsnittet Exempel för fullständiga exempel.