Associação de saída de criação do assistente do OpenAI do Azure para Azure Functions
Importante
Atualmente, a extensão do OpenAI do Azure para Azure Functions está em versão prévia.
A associação de saída de criação do assistente do OpenAI do Azure permite que você crie um novo chatbot assistente a partir da execução do código de função.
Para obter informações sobre os detalhes de configuração da extensão do OpenAI do Azure, consulte Extensões do OpenAI do Azure para Azure Functions. Para saber mais sobre os assistentes do OpenAI do Azure, consulte API de Assistentes do OpenAI do Azure.
Observação
Referências e exemplos só são fornecidos para o modelo do Node.js v4.
Observação
Referências e exemplos só são fornecidos para o modelo do Python v2.
Observação
Embora ambos os modelos de processo C# sejam suportados, apenas exemplos de modelo de trabalho isolado são fornecidos.
Exemplo
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
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 = 202 },
ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
{
ChatStorageConnectionSetting = "AzureWebJobsStorage",
CollectionName = "SampleChatState",
},
};
}
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
@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);
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();
}
Ainda não há exemplos disponíveis.
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
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: "AzureWebJobsStorage",
collectionName: "SampleChatState"
}
context.extraOutputs.set(chatBotCreateOutput, createRequest)
return { status: 202, jsonBody: { assistantId: assistantId } }
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
Aqui está o arquivo de function.json para Criar Assistente:
{
"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"
}
]
}
Para obter mais informações sobre as propriedades do arquivo function.json, consulte a seção Configuração.
{{Isso vem do comentário de código de exemplo}}
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" = "SampleChatState"
}
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"
}
})
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
@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,
"chatStorageConnectionSection": "AzureWebJobsStorage",
"collectionName": "SampleChatState"
}
requests.set(json.dumps(create_request))
Atributos
Aplique o atributo CreateAssistant
para definir uma associação de saída de criação do assistente, que dá suporte a esses parâmetros:
Parâmetro | Descrição |
---|---|
Id | O identificador do assistente a ser criado. |
Instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Anotações
A anotação CreateAssistant
permite que você defina uma associação de saída de criação do assistente, que dá suporte a esses parâmetros:
Element | Descrição |
---|---|
name | Obtém ou define o nome da associação de saída. |
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Decoradores
Durante a versão prévia, defina a associação de saída como uma associação generic_output_binding
do tipo createAssistant
, que dá suporte a esses parâmetros:
Parâmetro | Descrição |
---|---|
arg_name | O nome da variável que representa o parâmetro de associação. |
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Configuração
A associação dá suporte a essas propriedades de configuração definidas no arquivo function.json.
Propriedade | Descrição |
---|---|
tipo | Deve ser CreateAssistant . |
direction | Deve ser out . |
name | O nome da associação de saída. |
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Configuração
A associação dá suporte a estas propriedades, que são definidas no código:
Propriedade | Descrição |
---|---|
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Uso
Consulte a Seção de exemplo para obter exemplos completos.