Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Rozšíření Azure OpenAI pro Azure Functions je aktuálně ve verzi Preview.
Pomocník Azure OpenAI po vstupní vazbě umožňuje odesílat výzvy chatovacím robotům asistenta.
Informace o nastavení a konfiguraci rozšíření Azure OpenAI najdete v tématu Rozšíření Azure OpenAI pro Azure Functions. Další informace o asistentech Azure OpenAI najdete v tématu Rozhraní API pomocníků Azure OpenAI.
Poznámka:
Odkazy a příklady jsou k dispozici pouze pro model Node.js v4.
Poznámka:
Odkazy a příklady jsou k dispozici pouze pro model Pythonu v2.
Poznámka:
I když jsou podporovány oba modely procesu jazyka C#, jsou k dispozici pouze příklady izolovaného modelu pracovního procesu .
Příklad
Tento příklad ukazuje proces vytvoření, kde funkce HTTP POST, která odesílá výzvu uživatele do chatovacího robota asistenta. Odpověď na výzvu se vrátí v odpovědi HTTP.
/// <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.");
}
Tento příklad ukazuje proces vytvoření, kde funkce HTTP POST, která odesílá výzvu uživatele do chatovacího robota asistenta. Odpověď na výzvu se vrátí v odpovědi HTTP.
/*
* 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();
}
Tento příklad ukazuje proces vytvoření, kde funkce HTTP POST, která odesílá výzvu uživatele do chatovacího robota asistenta. Odpověď na výzvu se vrátí v odpovědi HTTP.
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'
}
};
}
})
Tento příklad ukazuje proces vytvoření, kde funkce HTTP POST, která odesílá výzvu uživatele do chatovacího robota asistenta. Odpověď na výzvu se vrátí v odpovědi HTTP.
Tady je soubor function.json pro dotaz po uživateli:
{
"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"
}
]
}
Další informace o function.json vlastnosti souboru naleznete v části Konfigurace .
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"
}
})
Tento příklad ukazuje proces vytvoření, kde funkce HTTP POST, která odesílá výzvu uživatele do chatovacího robota asistenta. Odpověď na výzvu se vrátí v odpovědi HTTP.
@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"
)
Atributy
Pomocí atributu PostUserQuery definujte vstupní vazbu pomocníka, která podporuje tyto parametry:
| Parametr | Popis |
|---|---|
| Id | ID asistenta, který se má aktualizovat. |
| UserMessage | Získá nebo nastaví uživatelskou zprávu pro model dokončování chatu kódovaný jako řetězec. |
| AIConnectionName | Volitelné. Získá nebo nastaví název oddílu konfigurace pro nastavení připojení služby AI. Pro Azure OpenAI: Pokud je zadáno, v této části konfigurace vyhledejte hodnoty Endpoint (Koncový bod) a Key (Klíč). Pokud není zadaný nebo oddíl neexistuje, vraťte se do proměnných prostředí: AZURE_OPENAI_ENDPOINT a AZURE_OPENAI_KEY. Pro ověřování spravované identity přiřazené uživatelem je tato vlastnost povinná. Pro službu OpenAI (mimo Azure) nastavte proměnnou prostředí OPENAI_API_KEY. |
| ChatModel |
Volitelné. Získá nebo nastaví ID modelu použít jako řetězec s výchozí hodnotou gpt-3.5-turbo. |
| Teplota |
Volitelné. Získá nebo nastaví vzorkovací teplotu, která se má použít, jako řetězec mezi 0 a 2. Vyšší hodnoty (0.8) umožňují, aby byl výstup náhodnější, zatímco nižší hodnoty jako (0.2) zvýtožní výstup s větší zaměřením a deterministikou. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| TopP |
Volitelné. Získá nebo nastaví alternativu k vzorkování s teplotou, označovanou jako vzorkování jádra, jako řetězec. V této metodě vzorkování model bere v úvahu výsledky tokenů s hromadnou top_p pravděpodobností. To 0.1 znamená, že se považují pouze tokeny obsahující prvních 10% pravděpodobnostní hmotnosti. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| MaxTokens |
Volitelné. Získá nebo nastaví maximální počet tokenů, které se mají vygenerovat v dokončení, jako řetězec s výchozí hodnotou 100. Počet tokenů výzvy plus max_tokens nesmí překročit délku kontextu modelu. Většina modelů má kontextovou délku 2 048 tokenů (s výjimkou nejnovějších modelů, které podporují 4096). |
| IsReasoningModel |
Volitelné. Získá nebo nastaví hodnotu určující, zda je model dokončení chatu důvodem modelu. Tato možnost je experimentální a přidružená k modelu odůvodnění, dokud všechny modely nemají paritu v očekávaných vlastnostech s výchozí hodnotou false. |
Poznámky
Poznámka PostUserQuery umožňuje definovat pomocníka po vstupní vazbě, která podporuje tyto parametry:
| Element (Prvek) | Popis |
|---|---|
| Jméno | Název výstupní vazby. |
| id | ID asistenta, který se má aktualizovat. |
| userMessage | Získá nebo nastaví uživatelskou zprávu pro model dokončování chatu kódovaný jako řetězec. |
| aiConnectionName | Volitelné. Získá nebo nastaví název oddílu konfigurace pro nastavení připojení služby AI. Pro Azure OpenAI: Pokud je zadáno, v této části konfigurace vyhledejte hodnoty Endpoint (Koncový bod) a Key (Klíč). Pokud není zadaný nebo oddíl neexistuje, vraťte se do proměnných prostředí: AZURE_OPENAI_ENDPOINT a AZURE_OPENAI_KEY. Pro ověřování spravované identity přiřazené uživatelem je tato vlastnost povinná. Pro službu OpenAI (mimo Azure) nastavte proměnnou prostředí OPENAI_API_KEY. |
| chatModel | Získá nebo nastaví ID modelu použít jako řetězec s výchozí hodnotou gpt-3.5-turbo. |
| teplota |
Volitelné. Získá nebo nastaví vzorkovací teplotu, která se má použít, jako řetězec mezi 0 a 2. Vyšší hodnoty (0.8) umožňují, aby byl výstup náhodnější, zatímco nižší hodnoty jako (0.2) zvýtožní výstup s větší zaměřením a deterministikou. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| topP |
Volitelné. Získá nebo nastaví alternativu k vzorkování s teplotou, označovanou jako vzorkování jádra, jako řetězec. V této metodě vzorkování model bere v úvahu výsledky tokenů s hromadnou top_p pravděpodobností. To 0.1 znamená, že se považují pouze tokeny obsahující prvních 10% pravděpodobnostní hmotnosti. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| maxTokens |
Volitelné. Získá nebo nastaví maximální počet tokenů, které se mají vygenerovat v dokončení, jako řetězec s výchozí hodnotou 100. Počet tokenů výzvy plus max_tokens nesmí překročit délku kontextu modelu. Většina modelů má kontextovou délku 2 048 tokenů (s výjimkou nejnovějších modelů, které podporují 4096). |
| isReasoningModel |
Volitelné. Získá nebo nastaví hodnotu určující, zda je model dokončení chatu důvodem modelu. Tato možnost je experimentální a přidružená k modelu odůvodnění, dokud všechny modely nemají paritu v očekávaných vlastnostech s výchozí hodnotou false. |
Dekoratéry
Během verze Preview definujte výstupní vazbu jako generic_output_binding vazbu typu postUserQuery, která podporuje tyto parametry:
| Parametr | Popis |
|---|---|
| arg_name | Název proměnné, která představuje parametr vazby. |
| id | ID asistenta, který se má aktualizovat. |
| user_message | Získá nebo nastaví uživatelskou zprávu pro model dokončování chatu kódovaný jako řetězec. |
| ai_connection_name | Volitelné. Získá nebo nastaví název oddílu konfigurace pro nastavení připojení služby AI. Pro Azure OpenAI: Pokud je zadáno, v této části konfigurace vyhledejte hodnoty Endpoint (Koncový bod) a Key (Klíč). Pokud není zadaný nebo oddíl neexistuje, vraťte se do proměnných prostředí: AZURE_OPENAI_ENDPOINT a AZURE_OPENAI_KEY. Pro ověřování spravované identity přiřazené uživatelem je tato vlastnost povinná. Pro službu OpenAI (mimo Azure) nastavte proměnnou prostředí OPENAI_API_KEY. |
| chat_model | Získá nebo nastaví ID modelu použít jako řetězec s výchozí hodnotou gpt-3.5-turbo. |
| teplota |
Volitelné. Získá nebo nastaví vzorkovací teplotu, která se má použít, jako řetězec mezi 0 a 2. Vyšší hodnoty (0.8) umožňují, aby byl výstup náhodnější, zatímco nižší hodnoty jako (0.2) zvýtožní výstup s větší zaměřením a deterministikou. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| top_p |
Volitelné. Získá nebo nastaví alternativu k vzorkování s teplotou, označovanou jako vzorkování jádra, jako řetězec. V této metodě vzorkování model bere v úvahu výsledky tokenů s hromadnou top_p pravděpodobností. To 0.1 znamená, že se považují pouze tokeny obsahující prvních 10% pravděpodobnostní hmotnosti. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| max_tokens |
Volitelné. Získá nebo nastaví maximální počet tokenů, které se mají vygenerovat v dokončení, jako řetězec s výchozí hodnotou 100. Počet tokenů výzvy plus max_tokens nesmí překročit délku kontextu modelu. Většina modelů má kontextovou délku 2 048 tokenů (s výjimkou nejnovějších modelů, které podporují 4096). |
| is_reasoning _model |
Volitelné. Získá nebo nastaví hodnotu určující, zda je model dokončení chatu důvodem modelu. Tato možnost je experimentální a přidružená k modelu odůvodnění, dokud všechny modely nemají paritu v očekávaných vlastnostech s výchozí hodnotou false. |
Konfigurace
Vazba podporuje tyto vlastnosti konfigurace, které jste nastavili v souboru function.json.
| Vlastnost | Popis |
|---|---|
| typ | Musí být PostUserQuery. |
| směr | Musí být out. |
| Jméno | Název výstupní vazby. |
| id | ID asistenta, který se má aktualizovat. |
| userMessage | Získá nebo nastaví uživatelskou zprávu pro model dokončování chatu kódovaný jako řetězec. |
| aiConnectionName | Volitelné. Získá nebo nastaví název oddílu konfigurace pro nastavení připojení služby AI. Pro Azure OpenAI: Pokud je zadáno, v této části konfigurace vyhledejte hodnoty Endpoint (Koncový bod) a Key (Klíč). Pokud není zadaný nebo oddíl neexistuje, vraťte se do proměnných prostředí: AZURE_OPENAI_ENDPOINT a AZURE_OPENAI_KEY. Pro ověřování spravované identity přiřazené uživatelem je tato vlastnost povinná. Pro službu OpenAI (mimo Azure) nastavte proměnnou prostředí OPENAI_API_KEY. |
| chatModel | Získá nebo nastaví ID modelu použít jako řetězec s výchozí hodnotou gpt-3.5-turbo. |
| teplota |
Volitelné. Získá nebo nastaví vzorkovací teplotu, která se má použít, jako řetězec mezi 0 a 2. Vyšší hodnoty (0.8) umožňují, aby byl výstup náhodnější, zatímco nižší hodnoty jako (0.2) zvýtožní výstup s větší zaměřením a deterministikou. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| topP |
Volitelné. Získá nebo nastaví alternativu k vzorkování s teplotou, označovanou jako vzorkování jádra, jako řetězec. V této metodě vzorkování model bere v úvahu výsledky tokenů s hromadnou top_p pravděpodobností. To 0.1 znamená, že se považují pouze tokeny obsahující prvních 10% pravděpodobnostní hmotnosti. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| maxTokens |
Volitelné. Získá nebo nastaví maximální počet tokenů, které se mají vygenerovat v dokončení, jako řetězec s výchozí hodnotou 100. Počet tokenů výzvy plus max_tokens nesmí překročit délku kontextu modelu. Většina modelů má kontextovou délku 2 048 tokenů (s výjimkou nejnovějších modelů, které podporují 4096). |
| isReasoningModel |
Volitelné. Získá nebo nastaví hodnotu určující, zda je model dokončení chatu důvodem modelu. Tato možnost je experimentální a přidružená k modelu odůvodnění, dokud všechny modely nemají paritu v očekávaných vlastnostech s výchozí hodnotou false. |
Konfigurace
Vazba podporuje tyto vlastnosti, které jsou definovány v kódu:
| Vlastnost | Popis |
|---|---|
| id | ID asistenta, který se má aktualizovat. |
| userMessage | Získá nebo nastaví uživatelskou zprávu pro model dokončování chatu kódovaný jako řetězec. |
| aiConnectionName | Volitelné. Získá nebo nastaví název oddílu konfigurace pro nastavení připojení služby AI. Pro Azure OpenAI: Pokud je zadáno, v této části konfigurace vyhledejte hodnoty Endpoint (Koncový bod) a Key (Klíč). Pokud není zadaný nebo oddíl neexistuje, vraťte se do proměnných prostředí: AZURE_OPENAI_ENDPOINT a AZURE_OPENAI_KEY. Pro ověřování spravované identity přiřazené uživatelem je tato vlastnost povinná. Pro službu OpenAI (mimo Azure) nastavte proměnnou prostředí OPENAI_API_KEY. |
| chatModel | Získá nebo nastaví ID modelu použít jako řetězec s výchozí hodnotou gpt-3.5-turbo. |
| teplota |
Volitelné. Získá nebo nastaví vzorkovací teplotu, která se má použít, jako řetězec mezi 0 a 2. Vyšší hodnoty (0.8) umožňují, aby byl výstup náhodnější, zatímco nižší hodnoty jako (0.2) zvýtožní výstup s větší zaměřením a deterministikou. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| topP |
Volitelné. Získá nebo nastaví alternativu k vzorkování s teplotou, označovanou jako vzorkování jádra, jako řetězec. V této metodě vzorkování model bere v úvahu výsledky tokenů s hromadnou top_p pravděpodobností. To 0.1 znamená, že se považují pouze tokeny obsahující prvních 10% pravděpodobnostní hmotnosti. Měli byste použít buď Temperature nebo TopP, ale ne obojí. |
| maxTokens |
Volitelné. Získá nebo nastaví maximální počet tokenů, které se mají vygenerovat v dokončení, jako řetězec s výchozí hodnotou 100. Počet tokenů výzvy plus max_tokens nesmí překročit délku kontextu modelu. Většina modelů má kontextovou délku 2 048 tokenů (s výjimkou nejnovějších modelů, které podporují 4096). |
| isReasoningModel |
Volitelné. Získá nebo nastaví hodnotu určující, zda je model dokončení chatu důvodem modelu. Tato možnost je experimentální a přidružená k modelu odůvodnění, dokud všechny modely nemají paritu v očekávaných vlastnostech s výchozí hodnotou false. |
Využití
Kompletní příklady najdete v části Příklad.