Solicitação ao ChatGPT#

Este bloco permite enviar solicitações para os novos modelos generativos da Open AI, começando com o ChatGPT. Com ele, você pode criar novos textos sob demanda, realizar diversas tarefas:

  • classificação,
  • sumarização,
  • tradução e reescrita de textos,
  • escrita de protótipos de código em diferentes linguagens de programação,
  • parsear dados semiestruturados e não estruturados,
  • extrair e processar fatos,
  • manter diálogos sobre diversos temas, e muito mais.

O pagamento pelo uso dessa funcionalidade é debitado da conta do cliente na plataforma. Para fins de teste, cada novo Usuário tem a oportunidade de testar essa funcionalidade sem custo. Ao utilizar essa funcionalidade após a conclusão do desenvolvimento do Robô, é necessário efetuar o pagamento.

Histórico de chat

[Tabela de Dados] Adicione o histórico de chat, com base no contexto do qual a rede neural deve gerar a resposta.

A tabela de dados deve conter colunas com os nomes "role" e "content". Na ausência dessas colunas, a primeira coluna da tabela será usada como "role" e a segunda como "content".

Na coluna "role", você pode especificar apenas um dos seguintes valores:

  • system,
  • assistant,
  • user.

A função system é destinada a configurar o tom e as configurações básicas da rede neural, por exemplo:

  • com a função "system", você pode escrever: "You are helpful assistant on used cars selection. You know everything on how to choose the best deal for used car";
  • com a função "assistant", é recomendável incluir mensagens anteriores geradas pela própria rede neural;
  • com a função "user", é recomendável incluir falas escritas pelo Usuário-conversador.

Mensagens mais antigas devem ser colocadas no início da tabela, as mais novas no final. A coluna "content" deve conter a própria mensagem.

Essa propriedade pode ser deixada em branco, então a geração será realizada apenas com base no conteúdo das propriedades "Role" e "Request".

Se a propriedade "Tools" for utilizada, a tabela deve ter 4 colunas:

  • "role",
  • "content",
  • "tool_call_id",
  • "name".
Solicitação System[Texto] Insira o texto de uma nova solicitação para a rede neural. A solicitação será executada com a função system.
Solicitação User[Texto] Insira o texto de uma nova solicitação para a rede neural. A solicitação será executada com a função user.
ModeloEscolha o modelo para gerar a resposta.
Palavras de parada[Texto/Lista] String ou lista contendo no máximo 4 strings que interromperão a geração subsequente. O texto retornado não conterá essas palavras.
Temperatura

[Número] Número decimal entre 0 e 1, que indica o grau de "aleatoriedade" ou "criatividade" do resultado, onde:

  • 0 - resultado menos criativo,
  • 1 - resultado mais aleatório.

Para a maioria das tarefas criativas, o valor 0.7 é mais adequado, e se você deseja receber a mesma resposta para a mesma solicitação toda vez - defina o valor como 0.

Comprimento máximo

[Número] Comprimento máximo do resultado, expresso em tokens condicionais.

Para o inglês, 1 token é 4 caracteres, para a maioria das outras línguas, 1 token é 1 caractere.

Reduza esse número se quiser receber, em média, solicitações mais curtas, aumente para obter solicitações mais longas. Lembre-se de que esse número limita o comprimento da resposta, no entanto, a resposta obtida não necessariamente terá o comprimento que você especificou - dependendo do conteúdo da solicitação, ela pode ser mais curta.

Auto-limitação de comprimento

Quando ativado, o comprimento máximo especificado será automaticamente ajustado.

Para isso, calcula-se o número de tokens na solicitação e considera-se o número máximo possível de tokens para o modelo escolhido.

Ferramentas

[Tabela de Dados] Tabela com a descrição das ferramentas que a rede neural pode escolher para resolver a tarefa em vez de uma resposta textual. Essa funcionalidade não é suportada por todos os modelos.

A tabela de dados deve conter três colunas:

  • "name" - nome da ferramenta (letras latinas e números, no máximo 64 caracteres),
  • "description" - descrição da ferramenta (pode estar em idiomas diferentes do inglês),
  • "parameters" - argumentos passados para a ferramenta ao chamá-la no formato JSON.

Exemplo de descrição JSON dos parâmetros: "{\"type\": \"object\", \"properties\": { \"query\": { \"type\": \"string\", \"description\": \"Request for a Google search result\" } }, \"required\": [\"query\"] }".

Ao chamar a ferramenta, a rede neural escolherá a ferramenta apropriada entre as disponíveis, com base na descrição que você forneceu, e também preencherá (gerará) os valores dos parâmetros que você especificou para chamar essas ferramentas. Mais detalhes sobre o mecanismo de uso das ferramentas podem ser encontrados na descrição da propriedade de saída CalledTools.

Usar ferramenta[Texto] Se necessário, você pode forçar a especificação do nome da ferramenta que a rede neural deve usar na solicitação atual. O nome deve corresponder ao nome de uma das ferramentas na coluna "name" na tabela "Ferramentas".
Timeout

[Número] Tempo máximo de espera pela resposta em segundos. O tempo real de espera depende do modelo escolhido, do comprimento da sua solicitação e do comprimento previsto da resposta, bem como da carga atual dos servidores.

Se o limite de espera for excedido, um erro ocorrerá.

Esquema de resposta[Texto] Esquema de resposta no formato JSON. Por exemplo:
{
"name": "weather",
"strict": true,
"schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Nome da cidade ou local"
},
"temperature": {
"type": "number",
"description": "Temperatura em Celsius"
},
"conditions": {
"type": "string",
"description": "Descrição das condições climáticas"
}
},
"required": ["location", "temperature", "conditions"],
"additionalProperties": false
}
}
Número de tentativas[Número] Número de tentativas em caso de erro de conexão com o servidor.
Papel da resposta[Texto] Papel com o qual a rede neural respondeu.
Resposta[Texto] Texto da resposta da rede neural.
Comprimento total[Número] Comprimento total da solicitação e do resultado (juntos), expresso em tokens condicionais.
Ferramentas chamadas

[Lista] Lista de objetos ToolItem.

Se a rede neural, após a solicitação, sugerir usar uma ou mais ferramentas especificadas na propriedade "Ferramentas" em vez de uma resposta textual, esta propriedade retornará uma lista de objetos ToolItem.

O objeto contém as seguintes propriedades:

  • id,
  • name,
  • arguments.

Os valores de id e name devem ser usados na tabela "Histórico de chat". A propriedade arguments é um dicionário, onde a chave é o nome do parâmetro da ferramenta chamada, e o valor é o valor desse parâmetro gerado pela rede neural.

Ao usar o mecanismo de ferramentas, após a chamada deste bloco, você deve verificar se a rede neural escolheu alguma ferramenta, com base no conteúdo desta lista. Se a lista não estiver vazia, você deve implementar a funcionalidade da ferramenta ou ferramentas escolhidas no cenário do Robô e, em seguida, na próxima chamada deste bloco, retornar à rede neural o resultado da execução da ferramenta, que a rede neural usará na geração de mensagens subsequentes.

O resultado da execução das ferramentas deve ser registrado na tabela "Histórico de chat" da seguinte forma:

  • na coluna "role" é registrado o valor constante "tool",
  • na coluna "content" - o valor do resultado da execução da ferramenta (que você implementou em seu cenário e agora comunica esse resultado à rede neural),
  • na coluna "tool_call_id" - o valor atual de ToolItem.id,
  • na coluna "name" - o valor atual de ToolItem.name.
Nível de tratamento

Seleção do nível de tratamento de erros. Valores possíveis:

  • "Default" - por padrão;
  • "Ignore" - erros são ignorados;
  • "Handle" - erros são tratados.

Se o valor "Default" for escolhido, será utilizado o valor do bloco "Início" deste diagrama.

Nível de mensagens

Seleção do nível de mensagens que os blocos exibirão durante a operação. Valores possíveis:

  • "Default" - por padrão;
  • "Release" - saída desativada;
  • "Debug" - saída de informações principais;
  • "Detailed" - saída de informações detalhadas.

Se o valor "Default" for escolhido, será utilizado o valor do bloco "Início" deste diagrama.

Texto do erro[Texto] Retorna informações detalhadas sobre o erro em caso de execução incorreta do bloco.