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 haja suporte para ambos os modelos de processo C#, apenas exemplos de modelo de trabalho isolados 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.

/// 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 = 202 },
        ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
        {
            ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
            CollectionName = DefaultCollectionName,
        },

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.

 * account
 * where chat data will be stored.
 */
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.
 */
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,

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 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
        }

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 function.json para o 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"
    }
  ]
}

Para obter mais informações sobre as propriedades do arquivo function.json, consulte a seção Configuração.

{{Isso vem do comentário do 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" = "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"
    }
})

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.

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

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.