Partilhar via


Assistente do Azure OpenAI criar ligação de saída para o Azure Functions

Importante

A extensão do Azure OpenAI para o Azure Functions está atualmente em visualização.

O assistente do Azure OpenAI criar vinculação de saída permite que você crie um novo bot de chat assistente a partir da execução do código de função.

Para obter informações sobre detalhes de instalação e configuração da extensão do Azure OpenAI, consulte Extensões do Azure OpenAI para Azure Functions. Para saber mais sobre os assistentes do Azure OpenAI, consulte Azure OpenAI Assistants API.

Nota

Referências e exemplos são fornecidos apenas para o modelo Node.js v4.

Nota

Referências e exemplos são fornecidos apenas para o modelo Python v2.

Nota

Embora ambos os modelos de processo C# sejam suportados, apenas exemplos de modelos de trabalho isolados são fornecidos.

Exemplo

Este exemplo demonstra o processo de criação, onde a função HTTP PUT que cria um novo bot de chat 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, onde a função HTTP PUT que cria um novo bot de chat 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,

Os exemplos ainda não estão disponíveis.

Este exemplo demonstra o processo de criação, onde a função HTTP PUT que cria um novo bot de chat 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, onde a função HTTP PUT que cria um novo bot de chat 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 function.json propriedades do arquivo, 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" = "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, onde a função HTTP PUT que cria um novo bot de chat 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 CreateAssistant atributo para definir um assistente criar ligação de saída, que suporta estes parâmetros:

Parâmetro Description
ID O identificador do assistente a ser criado.
Instruções Opcional. As instruções que são fornecidas ao assistente a seguir.

Anotações

A CreateAssistant anotação permite que você defina um assistente para criar vinculação de saída, que suporta estes parâmetros:

Elemento Description
Designação Obtém ou define o nome da ligação de saída.
id O identificador do assistente a ser criado.
Instruções Opcional. As instruções que são fornecidas ao assistente a seguir.

Decoradores

Durante a visualização, defina a ligação de saída como uma generic_output_binding associação do tipo createAssistant, que suporta estes parâmetros:

Parâmetro Description
arg_name O nome da variável que representa o parâmetro de ligação.
id O identificador do assistente a ser criado.
Instruções Opcional. As instruções que são fornecidas ao assistente a seguir.

Configuração

A associação suporta essas propriedades de configuração definidas no arquivo function.json.

Property Descrição
type Deve ser CreateAssistant.
direção Deve ser out.
Designação O nome da ligação de saída.
id O identificador do assistente a ser criado.
Instruções Opcional. As instruções que são fornecidas ao assistente a seguir.

Configuração

A associação suporta estas propriedades, que são definidas no seu código:

Property Description
id O identificador do assistente a ser criado.
Instruções Opcional. As instruções que são fornecidas ao assistente a seguir.

Utilização

Consulte a seção Exemplo para obter exemplos completos.