Compartilhar via


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.