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 vytvoří výstupní vazbu, která vám umožní vytvořit nového chatovacího robota asistenta z provádění kódu funkce.
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 PUT, která vytvoří nového chatovacího robota asistenta se zadaným ID. Odpověď na výzvu se vrátí v odpovědi HTTP.
/// <summary>
/// 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 = 201 },
ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
{
ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
CollectionName = DefaultCollectionName,
},
};
}
public class CreateChatBotOutput
{
[AssistantCreateOutput()]
public AssistantCreateRequest? ChatBotCreateRequest { get; set; }
[HttpResult]
public IActionResult? HttpResponse { get; set; }
}
Tento příklad ukazuje proces vytvoření, kde funkce HTTP PUT, která vytvoří nového chatovacího robota asistenta se zadaným ID. Odpověď na výzvu se vrátí v odpovědi HTTP.
/**
* The default storage account setting for the table storage account.
* This constant is used to specify the connection string for the table storage
* account
* where chat data will be stored.
*/
final 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.
*/
final 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,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
String instructions = "Don't make assumptions about what values to plug into functions.\n" +
"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();
}
Tento příklad ukazuje proces vytvoření, kde funkce HTTP PUT, která vytvoří nového chatovacího robota asistenta se zadaným ID. Odpověď na výzvu se vrátí v odpovědi HTTP.
const { app, input, output } = require("@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, 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 } }
}
})
Tento příklad ukazuje proces vytvoření, kde funkce HTTP PUT, která vytvoří nového chatovacího robota asistenta se zadaným ID. Odpověď na výzvu se vrátí v odpovědi HTTP.
Tady je soubor function.json pro Nástroj Create Assistant:
{
"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"
}
]
}
Další informace o function.json vlastnosti souboru naleznete v části Konfigurace .
{{Pochází z ukázkového komentáře ke kódu}}
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"
}
})
Tento příklad ukazuje proces vytvoření, kde funkce HTTP PUT, která vytvoří nového chatovacího robota asistenta se zadaným ID. Odpověď na výzvu se vrátí v odpovědi HTTP.
DEFAULT_CHAT_STORAGE_SETTING = "AzureWebJobsStorage"
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,
}
requests.set(json.dumps(create_request))
response_json = {"assistantId": assistantId}
return func.HttpResponse(
json.dumps(response_json), status_code=202, mimetype="application/json"
)
Atributy
CreateAssistant Použijte atribut k definování výstupní vazby pomocníka, který podporuje tyto parametry:
| Parametr | Popis |
|---|---|
| Id | Identifikátor asistenta, který se má vytvořit. |
| Pokyny | Volitelné. Pokyny, které jsou k dispozici asistentovi, které je třeba dodržovat. |
| ChatStorageConnectionSetting |
Volitelné. Název oddílu konfigurace pro nastavení tabulky pro úložiště chatu. Výchozí hodnota je AzureWebJobsStorage. |
| Název kolekce |
Volitelné. Název kolekce tabulek pro úložiště chatu. Výchozí hodnota je ChatState. |
Poznámky
Poznámka CreateAssistant umožňuje definovat asistenta vytvořit výstupní vazbu, která podporuje tyto parametry:
| Element (Prvek) | Popis |
|---|---|
| Jméno | Získá nebo nastaví název výstupní vazby. |
| id | Identifikátor asistenta, který se má vytvořit. |
| instrukce | Volitelné. Pokyny, které jsou k dispozici asistentovi, které je třeba dodržovat. |
| chatStorageConnectionSetting |
Volitelné. Název oddílu konfigurace pro nastavení tabulky pro úložiště chatu. Výchozí hodnota je AzureWebJobsStorage. |
| collectionName |
Volitelné. Název kolekce tabulek pro úložiště chatu. Výchozí hodnota je ChatState. |
Dekoratéry
Během verze Preview definujte výstupní vazbu jako generic_output_binding vazbu typu createAssistant, která podporuje tyto parametry:
| Parametr | Popis |
|---|---|
| arg_name | Název proměnné, která představuje parametr vazby. |
| id | Identifikátor asistenta, který se má vytvořit. |
| instrukce | Volitelné. Pokyny, které jsou k dispozici asistentovi, které je třeba dodržovat. |
| chat_storage_connection_setting |
Volitelné. Název oddílu konfigurace pro nastavení tabulky pro úložiště chatu. Výchozí hodnota je AzureWebJobsStorage. |
| collection_name |
Volitelné. Název kolekce tabulek pro úložiště chatu. Výchozí hodnota je ChatState. |
Konfigurace
Vazba podporuje tyto vlastnosti konfigurace, které jste nastavili v souboru function.json.
| Vlastnost | Popis |
|---|---|
| typ | Musí být CreateAssistant. |
| směr | Musí být out. |
| Jméno | Název výstupní vazby. |
| id | Identifikátor asistenta, který se má vytvořit. |
| instrukce | Volitelné. Pokyny, které jsou k dispozici asistentovi, které je třeba dodržovat. |
| chatStorageConnectionSetting |
Volitelné. Název oddílu konfigurace pro nastavení tabulky pro úložiště chatu. Výchozí hodnota je AzureWebJobsStorage. |
| collectionName |
Volitelné. Název kolekce tabulek pro úložiště chatu. Výchozí hodnota je ChatState. |
Konfigurace
Vazba podporuje tyto vlastnosti, které jsou definovány v kódu:
| Vlastnost | Popis |
|---|---|
| id | Identifikátor asistenta, který se má vytvořit. |
| instrukce | Volitelné. Pokyny, které jsou k dispozici asistentovi, které je třeba dodržovat. |
| chatStorageConnectionSetting |
Volitelné. Název oddílu konfigurace pro nastavení tabulky pro úložiště chatu. Výchozí hodnota je AzureWebJobsStorage. |
| collectionName |
Volitelné. Název kolekce tabulek pro úložiště chatu. Výchozí hodnota je ChatState. |
Využití
Kompletní příklady najdete v části Příklad.