Realizar busca por Linguagem natural
Envia um prompt em linguagem natural e uma lista de campos no layout atual para um modelo, que retorna uma solicitação de busca do FileMaker e executa uma busca.
Consulte também
Opções
-
Nome da conta é uma expressão de texto da conta de IA usada por esta etapa de script. No arquivo atual, use a etapa de script Etapa de script Configurar a conta de IA para configurar a conta e atribuir esse nome a ela antes que a etapa de script seja executada.
-
Modelo é o nome do modelo de geração de texto a ser usado. Especifique o nome do modelo como uma expressão de texto. Para modelos compatíveis, consulte Especificações técnicas do FileMaker.
-
Prompt é uma expressão de texto para a solicitação ou pergunta em linguagem natural que será enviada ao modelo.
-
Obter especifica o tipo de resposta a ser recuperada do modelo.
-
Conjunto encontrado: executa a solicitação de busca gerada pelo modelo e atualiza o conjunto encontrado na janela atual.
-
Conjunto encontrado como JSON: executa a solicitação de busca gerada pelo modelo e retorna os dados do conjunto encontrado como um objeto JSON. Não altera o conjunto encontrado na janela atual.
-
Solicitação de busca como JSON: não executa a busca. Retorna a solicitação de busca do FileMaker gerada pelo modelo como um objeto JSON.
-
-
Nome do modelo de solicitação especifica o nome de um modelo de solicitação personalizado configurado usando a etapa de script Etapa de script Configurar modelo de prompt. Use essa opção para criar um prompt adicional para ajudar a obter uma resposta ideal de um modelo de IA.
-
Parâmetros é uma expressão de texto para um objeto JSON que consiste em pares chave-valor para parâmetros adicionais que são suportados pelo provedor do modelo. Por exemplo:
{"temperature": 0,7, "seed": 42}
. Consulte a documentação do provedor do modelo para obter nomes de parâmetros suportados e seus intervalos válidos.A chave
context_prompt
é um parâmetro especial que permite injetar instruções ou contexto adicionais no modelo antes do prompt principal. Por exemplo:{"context_prompt": "Tratar 'hoje' como 06/26/aaaa"}
. -
Destino da resposta especifica o campo ou variável onde o resultado da etapa de script deve ser armazenado.
Compatibilidade
Produto | Compatível |
FileMaker Pro | Sim |
FileMaker Go | Sim |
FileMaker WebDirect | Sim |
FileMaker Server | Sim |
FileMaker Cloud | Sim |
FileMaker Data API | Sim |
Publicação na Web personalizada | Sim |
Originada na versão
22.0
Descrição
Essa etapa de script permite que você realize solicitações de busca do FileMaker em seus dados usando linguagem natural sem especificar critérios de busca como na etapa de script Etapa de script Realizar busca. Ela usa um modelo de IA para interpretar um prompt em linguagem natural, analisar os campos disponíveis no layout atual e gerar uma solicitação de busca apropriada do FileMaker (e ordem de classificação, se aplicável).
A interação entre essa etapa de script e o modelo normalmente segue estas etapas:
-
Essa etapa de script identifica todos os campos acessíveis por uma busca no layout atual. Ela envia informações sobre esses campos (semelhantes à saída da função Função GetFieldsOnLayout) junto com o Prompt para o Modelo especificado. (Isso inclui prompts fornecidos em um modelo de prompt opcional e o parâmetro
context_prompt
.) -
O modelo analisa as informações do prompt e do campo de layout e, em seguida, gera uma solicitação de busca do FileMaker e uma ordem de classificação projetada para recuperar os registros solicitados.
-
Essa etapa de script recebe a solicitação de busca gerada e a ordem de classificação.
-
A etapa de script realiza uma ação com base na opção Obter.
A opção Obter determina o que acontece depois que o modelo gera a solicitação de busca:
Obter | Faz isso |
---|---|
Conjunto encontrado |
Realiza a solicitação de busca gerada no layout atual e, na etapa 4, atualiza o conjunto encontrado. Se o modelo gerou uma ordem de classificação, o conjunto encontrado também é classificado de acordo. O Destino da resposta não é usado quando essa opção é selecionada. |
Conjunto encontrado como JSON |
Executa a solicitação de busca gerada e, na etapa 4, retorna os dados do conjunto encontrado resultante como um objeto JSON no Destino da resposta. A estrutura JSON é a mesma que a resposta a uma solicitação de busca executada por meio da FileMaker Data API. Inclui os dados do conjunto encontrado, informações de dados (como contagem encontrada e contagem total de registros) e quaisquer mensagens (erros ou avisos). Veja o exemplo abaixo e o exemplo na Etapa de script Executar FileMaker Data API. |
Solicitação de busca como JSON |
Não executa a busca. Na etapa 4, retorna a solicitação de busca e a ordem de classificação do FileMaker gerada como um objeto JSON no Destino da resposta. Essa opção é útil principalmente para depuração, para ver exatamente qual solicitação de busca o modelo gerou. A estrutura JSON é semelhante às matrizes |
Notas
-
Somente os campos acessíveis por uma busca no layout atual são enviados para o modelo. Para saber mais sobre os critérios usados para determinar quais campos são acessíveis por uma busca, consulte a função Função GetFieldsOnLayout, que usa os mesmos critérios que esta etapa de script. As mesmas informações enviadas ao modelo (nome do layout, nomes de campos, tipos e descrições) são retornadas por GetFieldsOnLayout.
-
Os comentários de campo inseridos na caixa de diálogo Gerenciar banco de dados são incluídos com as informações de campo enviadas ao modelo. Para melhorar a capacidade do modelo de gerar solicitações de busca úteis, você pode usar o comentário para explicar o propósito do campo. Consulte Definição e alteração de campos. Para saber mais sobre como controlar quais comentários de campos são enviados para o modelo, consulte a função Função GetFieldsOnLayout.
-
Se você especificar um Nome do modelo de solicitação, esta etapa de script usará o modelo configurado por meio da etapa de script Etapa de script Configurar modelo de prompt. Os modelos de prompt podem usar constantes como
:schema:
(substituído por informações de campo do layout),:question:
(substituído por Prompt) e:context:
(substituído pelo parâmetrocontext_prompt
em Parâmetros). -
Esta etapa de script pode ser usada para buscas multilíngues, pois os modelos de IA podem operar em vários idiomas.
-
Quando nenhum registro relevante é encontrado, uma mensagem é retornada no Destino da resposta (se usado) e a função Função Get(LastError) retorna o erro 401 ("Nenhum registro correspondeu com a solicitação").
-
Esta etapa de script não pode realizar buscas que exigem funções agregadas (por exemplo, encontrar o registro com o valor mais alto em um campo). No entanto, o modelo pode retornar uma solicitação de busca que inclui critérios de classificação para ajudar a identificar esses registros (por exemplo, classificação de registros pelo campo Preço em ordem decrescente).
Exemplo 1
Configura uma conta de IA, vai para o layout de Contatos e, em seguida, usa esta etapa de script para buscar contatos chamados "Alea" no layout atual. Esta etapa de script envia os campos encontráveis no layout atual e o prompt "Encontre contatos chamados Alea" para o modelo. O modelo envia de volta uma solicitação de busca (possivelmente, uma solicitação de "Alea" no campo Nome), e esta etapa de script executa a busca, atualizando o conjunto encontrado na janela atual.
Configurar conta de IA [ Nome da conta: "minha-conta" ; Provedor do modelo: OpenAI ; Chave de API: "sk-..." ]
Ir para layout [ "Contatos" (Contatos) ; Animação: Nenhum ]
Realizar busca por Linguagem natural [ Nome da conta: "minha-conta" ; Modelo: "gpt-4o" ; Prompt: "Encontre contatos chamados Alea" ; Obter: Conjunto encontrado ]
Exemplo 2
Configura uma conta de IA, solicita uma consulta para o usuário, depois realiza a busca e retorna os dados do conjunto encontrado resultante como JSON na variável $$FoundSetData. As consultas são executadas no layout atual.
Configurar conta de IA [ Nome da conta: "minha-conta" ; Provedor do modelo: OpenAI ; Chave de API: "sk-..." ]
Ir para layout [ "Produtos" (Produtos) ; Animação: Nenhum ]
Mostrar caixa de diálogo personalizada [ "Encontrar produtos:" ; $$UserPrompt ]
If [ not IsEmpty ( $$UserPrompt ) ]
Realizar busca por Linguagem natural [ Nome da conta: "minha-conta" ; Modelo: "gpt-4o" ; Prompt: $$UserPrompt ; Obter: Conjunto encontrado como JSON ; Destino da resposta: $$FoundSetData ]
Mostrar caixa de diálogo personalizada [ "Dados do conjunto encontrado" ; JSONFormatElements ( $$FoundSetData ) ]
End If
Possível saída armazenada em $$FoundSetData (formatada usando JSONFormatElements), assumindo que o prompt foi "Encontre produtos com preço menor que 6 e classifique-os em ordem decrescente por preço":
{
"mensagens" :
[
{
"código" : "0",
"mensagem" : "OK"
}
],
"resposta" :
{
"dados" :
[
{
"fieldData" :
{
"Preço" : 5,99,
"ProductID" : 107,
"ProductName" : "Óculos de proteção",
"Status" : "Em estoque"
},
"modId" : "0",
"portalData" : {},
"recordId" : "61"
},
{
"fieldData" :
{
"Preço" : 5,5,
"ProductID" : 122,
"ProductName" : "Espátula",
"Status" : "Em estoque"
},
"modId" : "0",
"portalData" : {},
"recordId" : "76"
}
],
"dataInfo" :
{
"banco de dados" : "Sistema de pedidos",
"foundCount" : 2,
"layout" : "Produtos",
"returnedCount" : 2,
"tabela" : "Produtos",
"totalRecordCount" : 42
}
}
}
Exemplo 3
Configura uma conta de IA e, em seguida, configura um modelo de prompt personalizado que usa o prompt predefinido para uma solicitação de busca. O prompt predefinido descreve o formato JSON para uma solicitação de busca e inclui o seguinte: Use as seguintes informações como contexto: \":context:\"
.
Depois de ir para o layout de Produtos e definir a variável $$Today para uma frase em linguagem natural para usar no contexto posterior, esta etapa de script substitui a constante :context:
usada no modelo de prompt pelo valor da chave context_prompt
em Parâmetros. Em seguida, ela envia essa informação junto com o prompt "Encontre registros criados hoje classificados por nome do produto" para o modelo.
O modelo retorna a solicitação de busca como um objeto JSON na variável $$FindRequestJSON, que você pode usar para fins de depuração.
Configurar conta de IA [ Nome da conta: "minha-conta" ; Provedor do modelo: OpenAI ; Chave de API: "sk-..." ]
Configurar modelo de prompt [ Nome do modelo: "FindToday" ; Provedor do modelo: OpenAI ; Tipo de modelo: Solicitação de busca ; Prompt da solicitação de busca: "Gere e somente retorne uma consulta de layout JSON para executar uma solicitação de busca..." ]
Ir para layout [ "Produtos" (Produtos) ; Animação: Nenhum ]
Definir variável [ $$Today ; Valor: "Hoje é " & Obter ( CurrentDate ) ]
Realizar busca por Linguagem natural [ Nome da conta: "minha-conta" ; Modelo: "gpt-4o" ; Prompt: "Encontre registros criados hoje classificados por nome do produto" ; Obter: Solicitação de busca como JSON ; Parâmetros: JSONSetElement ( "{}" ; "context_prompt" ; $$Today ; JSONString ) ; Destino da resposta: $$FindRequestJSON ]
Mostrar caixa de diálogo personalizada [ "Solicitação de busca gerada" ; JSONFormatElements ( $$FindRequestJSON ) ]
Possível saída armazenada em $$FindRequestJSON (formatada usando JSONFormatElements), assumindo que a data atual seja 06/26/aaaa e o layout tenha os campos CreationDate e ProductName:
{
"layouts" : "Produtos",
"consulta" :
[
{
"Products::CreationDate" : "06/26/aaaa"
}
],
"sort" :
[
{
"fieldName" : "Products::ProductName",
"sortOrder" : "crescente"
}
]
}