OpenAI: ação Executar função de assistente

A OpenAI: A ação Executar função de assistente traz um novo nível de capacidade para o seu assistente do OpenAI. Ele utiliza a API de assistentes do OpenAI, permitindo ativamente que assistentes recorram a funcionalidades externas durante conversas. Este recurso funciona como uma ponte, conectando ativamente seu assistente a uma vasta caixa de ferramentas com potencialidades adicionais.

Pré-requisitos

  • Você precisa ter a função Criador de bots para usar a ação Executar função de assistente do OpenAI em uma automação.
  • Certifique-se de ter as credenciais obrigatórias para enviar uma solicitação e de ter incluído Ação de autenticação antes de chamar qualquer ação do OpenAI.
  • Você precisa ter um OpenAI: ação Executar assistente antes de chamar Executar função de assistente do OpenAI.

Este exemplo investiga o uso de Executar função de assistente do OpenAI que estende os recursos do seu assistente. Você explorará como chamar um assistente existente no ambiente de Execução, extrair informações cruciais (Thread ID, Call ID e Run ID) e aproveitar esses IDs para definir uma resposta de função personalizada. Por exemplo, aqui um assistente do mercado de ações é carregado e os resultados da função são definidos usando tools output list (Resposta da função).

Procedimento

  1. Na Automation Anywhere Control Room, navegue até o painel Ações, selecione IA generativa > OpenAI, arraste a ação Autenticar e coloque-a na tela. Para autenticar, você precisa de uma chave de API. Para obter mais informações sobre como gerar uma chave de API e autenticação, consulte Ação de autenticação.OpenAI: Executar função de assistente
  2. Coloque a ação OpenAI: Executar assistente abaixo da ação Autenticar e use Carregar assistentes, para carregar um assistente (Assistente do mercado de ações). Digite uma Mensagem (Get Stock price for AAINC) [Obter preço das ações para AAINC]. A resposta é salva em uma variável de string str_Response. Para ver mais informações sobre como usar OpenAI: Ação Executar assistente, consulte OpenAI: ação Executar assistente.OpenAI: Executar assistente - Ação
    Nota: Apenas para fins ilustrativos, o código de ações fictício AAINC é usado neste exemplo. O preço de US$ 3.200 atribuído à AAINC é um valor de amostra e não representa o preço de nenhuma ação real.

    O Assistente do mercado de ações carregado do OpenAI contém as seguintes instruções e funções:

    You are a stock market assistant. When asked a question related to stocks use the function and get the stock price.
    {
       "name":"get_stock_price",
       "description":"Get the current stock price",
       "parameters":{
          "type":"object",
          "properties":{
             "symbol":{
                "type":"string",
                "description":"The stock symbol"
             }
          },
          "required":[
             "symbol"
          ]
       }
    }
  3. No painel Ações, arraste a ação JSON > Iniciar sessão e solte-a na tela abaixo da ação OpenAI: Executar assistente.
    1. No campo Fonte de dados, selecione Texto e insira $str_Response$.
    2. No campo Sessão do objeto JSON, selecione Sessão local e insira Default.
      Decodificação JSON
      Agora você tem todo o JSON. A próxima tarefa é extrair os campos obrigatórios do corpo. O trecho a seguir mostra um exemplo de JSON:
      {
         "data":{
            "thread_id":"thread_hiCr3najXMSxuuiIntJDXDXd",
            "tool_calls":[
               {
                  "id":"call_Beu0XFPGR91RZGoXBA8ODSke",
                  "type":"function",
                  "function":{
                     "name":"get_stock_price",
                     "arguments":"{\n\"symbol\": \"AAINC\"\n}"
                  }
               }
            ],
            "id":"run_LnR669bHLcMAaIGOcvIE0nVa"
         },
         "status":"requires_action"
      }
    Nota: tool_calls e tool_outputs dentro de uma mensagem do Assistente do OpenAI podem lidar com cenários em que o usuário faz várias solicitações em uma única mensagem. Por exemplo, Get the stock price of AAINC and BBINC (Obtenha o preço das ações de AAINC e BBINC). Na verdade, essa única mensagem contém duas solicitações distintas: encontrar o preço das ações de AAINC e encontrar o preço das ações de BBINC.
  4. Extraia os campos obrigatórios do JSON para executar a função OpenAI: Executar função de assistente.
    1. No painel Ações, arraste a ação Json > Obter valor do nó para a tela abaixo da ação Json > Obter valor do nó. Para mais informações sobre JSON: Ação Obter valor do nó, consulte ação Obter valor do nó no JSON.
    2. Especifique os nós que serão extraídos. Por exemplo, para extrair thread_id, você pode usar data.thread_id
    3. Crie uma variável thread_id e atribua a saída a essa variável.
    4. De maneira similar, extraia run_id e call_id(data.id e data.tool_calls[0].id) e salve em uma variável run_id e call_id.
  5. Acesse o painel Ações, selecione IA generativa > OpenAI, arraste OpenAI: Executar função de assistente e coloque-o sob a última ação Obter valor do nó.
    1. Use o $thread_id$ extraído no campo ID do thread.
    2. Use o $run_id$ extraído no campo ID da execução.
    3. Defina uma Resposta de função usando o esquema padrão abaixo. O esquema é um objeto JSON contendo informações sobre a saída de uma ferramenta (função) usada pelo Assistente do OpenAI.
      {
         "tool_outputs":[
            {
               "tool_call_id":"Enter the call ID",
               "output":"{Enter your output}"
            }
         ]
      }

      Depois de processar sua solicitação e executar a função apropriada, você precisa comunicar os resultados à API do Assistente do OpenAI. Para fazer isso, você precisa criar uma lista especial conforme mostrado acima, chamada tools output list. Essa lista contém as seguintes propriedades:

      • tool_call_id (string): Essa propriedade contém um identificador exclusivo para a chamada específica da ferramenta (função) que gerou a saída. Esse ID ajuda a rastrear e referenciar a instância de execução específica da ferramenta.
      • output (any): Esta propriedade contém os dados de saída reais gerados pela ferramenta. O tipo de dados de saída pode variar conforme a ferramenta específica e sua finalidade. Pode ser:
        • Uma string (como um texto gerado por uma função de escrita criativa)
        • Um número (como o resultado de um cálculo)
        • Uma lista (como uma coleção de pontos de dados recuperados)
        • Um dicionário (como uma estrutura de dados complexa com múltiplos valores)
        • Qualquer outro tipo de dados JSON válido

      Por exemplo, neste exemplo, insira o seguinte JSON:

      {
         "tool_outputs":[
            {
               "tool_call_id":"$call_id
      quot;, "output":"{3200}" } ] }
    4. Digite Padrão como o nome da sessão para restringir a sessão atual.
    5. Salve a resposta em uma variável. Neste exemplo, a resposta é salva em uma variável de string str_FunctionResponse. A saída é um JSON que exibe o valor solicitado para a saída e, abaixo, apresentamos um exemplo da saída gerada pela execução acima:
      :
      {
         "data":[
            {
               "metadata":{
                  
               },
               "role":"assistant",
               "content":[
                  {
                     "type":"text",
                     "text":{
                        "value":"The current stock price for AAINC is $3200.",
                        "annotations":[
                           
                        ]
                     }
                  }
               ]
            }
         ],
         "status":"completed"
      }}
    A OpenAI: A ação Executar função do assistente revoluciona a forma como os Assistentes do OpenAI operam, transformando-os de simples provedores de informações em ferramentas potentes capazes de agir e atender a solicitações. Ao aproveitar funcionalidades externas, os assistentes podem agora realizar tarefas complexas, dar recomendações personalizadas, como mostrado no exemplo acima, e, em última análise, oferecer uma experiência de usuário mais abrangente e útil.