Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.
Asystent usługi Azure OpenAI tworzy powiązanie wyjściowe umożliwia utworzenie nowego asystenta czatbota na podstawie wykonywania kodu funkcji.
Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat asystentów usługi Azure OpenAI, zobacz Interfejs API asystentów usługi Azure OpenAI.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.
Uwaga
Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.
Przykład
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP PUT tworzy nowego asystenta czatbota o określonym identyfikatorze. Odpowiedź na monit jest zwracana w odpowiedzi 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; }
}
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP PUT tworzy nowego asystenta czatbota o określonym identyfikatorze. Odpowiedź na monit jest zwracana w odpowiedzi 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();
}
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP PUT tworzy nowego asystenta czatbota o określonym identyfikatorze. Odpowiedź na monit jest zwracana w odpowiedzi 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 } }
}
})
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP PUT tworzy nowego asystenta czatbota o określonym identyfikatorze. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
Oto plik function.json dla asystenta tworzenia:
{
"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"
}
]
}
Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.
{{Pochodzi to z przykładowego komentarza kodu}}
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"
}
})
W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP PUT tworzy nowego asystenta czatbota o określonym identyfikatorze. Odpowiedź na monit jest zwracana w odpowiedzi 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"
)
Atrybuty
Zastosuj atrybut , CreateAssistant aby zdefiniować asystenta utwórz powiązanie wyjściowe, które obsługuje następujące parametry:
| Parametr | Opis |
|---|---|
| Id | Identyfikator asystenta do utworzenia. |
| Instrukcje | Opcjonalne. Instrukcje podane do asystenta do naśladowania. |
| ChatStorageConnectionSetting |
Opcjonalne. Nazwa sekcji konfiguracji ustawień tabeli dla magazynu czatów. Wartość domyślna to AzureWebJobsStorage. |
| CollectionName |
Opcjonalne. Nazwa kolekcji tabel dla magazynu czatów. Wartość domyślna to ChatState. |
Adnotacje
Adnotacja CreateAssistant umożliwia zdefiniowanie asystenta tworzenia powiązania wyjściowego, które obsługuje następujące parametry:
| Składnik | Opis |
|---|---|
| nazwa | Pobiera lub ustawia nazwę powiązania wyjściowego. |
| id | Identyfikator asystenta do utworzenia. |
| instrukcje | Opcjonalne. Instrukcje podane do asystenta do naśladowania. |
| chatStorageConnectionSetting |
Opcjonalne. Nazwa sekcji konfiguracji ustawień tabeli dla magazynu czatów. Wartość domyślna to AzureWebJobsStorage. |
| collectionName |
Opcjonalne. Nazwa kolekcji tabel dla magazynu czatów. Wartość domyślna to ChatState. |
Dekoratory
W wersji zapoznawczej zdefiniuj powiązanie wyjściowe jako generic_output_binding powiązanie typu createAssistant, które obsługuje następujące parametry:
| Parametr | Opis |
|---|---|
| arg_name | Nazwa zmiennej reprezentującej parametr powiązania. |
| id | Identyfikator asystenta do utworzenia. |
| instrukcje | Opcjonalne. Instrukcje podane do asystenta do naśladowania. |
| chat_storage_connection_setting |
Opcjonalne. Nazwa sekcji konfiguracji ustawień tabeli dla magazynu czatów. Wartość domyślna to AzureWebJobsStorage. |
| collection_name |
Opcjonalne. Nazwa kolekcji tabel dla magazynu czatów. Wartość domyślna to ChatState. |
Konfigurowanie
Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.
| Właściwości | Opis |
|---|---|
| typ | Musi mieć wartość CreateAssistant. |
| kierunek | Musi mieć wartość out. |
| nazwa | Nazwa powiązania wyjściowego. |
| id | Identyfikator asystenta do utworzenia. |
| instrukcje | Opcjonalne. Instrukcje podane do asystenta do naśladowania. |
| chatStorageConnectionSetting |
Opcjonalne. Nazwa sekcji konfiguracji ustawień tabeli dla magazynu czatów. Wartość domyślna to AzureWebJobsStorage. |
| collectionName |
Opcjonalne. Nazwa kolekcji tabel dla magazynu czatów. Wartość domyślna to ChatState. |
Konfigurowanie
Powiązanie obsługuje te właściwości zdefiniowane w kodzie:
| Właściwości | Opis |
|---|---|
| id | Identyfikator asystenta do utworzenia. |
| instrukcje | Opcjonalne. Instrukcje podane do asystenta do naśladowania. |
| chatStorageConnectionSetting |
Opcjonalne. Nazwa sekcji konfiguracji ustawień tabeli dla magazynu czatów. Wartość domyślna to AzureWebJobsStorage. |
| collectionName |
Opcjonalne. Nazwa kolekcji tabel dla magazynu czatów. Wartość domyślna to ChatState. |
Użycie
Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.