Ejecutar búsqueda en lenguaje natural

Envía una indicación en lenguaje natural y una lista de campos de la presentación actual a un modelo, lo que devuelve una solicitud de búsqueda de FileMaker y ejecuta una búsqueda.

Temas relacionados 

Opciones 

  • Nombre de cuenta es una expresión de texto de la cuenta de IA que debe usar este paso de guión. En el archivo actual, utilice el paso de guión Configurar cuenta de IA para configurar la cuenta y asignarle este nombre en cualquier momento antes de que se ejecute este paso de guión.

  • Modelo es el nombre del modelo de generación de texto que se utiliza. Especifique el nombre del modelo como expresión de texto. Para conocer los modelos compatibles, consulte las Especificaciones técnicas de FileMaker.

  • Indicación es una expresión de texto para la solicitud o pregunta de lenguaje natural que se enviará al modelo.

  • Get especifica el tipo de respuesta que debe recuperarse del modelo.

    • Conjunto encontrado: ejecuta la petición de búsqueda generada por el modelo y actualiza el conjunto encontrado en la ventana actual.

    • Conjunto encontrado como JSON: ejecuta la petición de búsqueda generada por el modelo y devuelve los datos del conjunto encontrado en forma de objeto JSON. No cambia el conjunto encontrado en la ventana actual.

    • Petición de búsqueda como JSON: no realiza la búsqueda. Devuelve la petición de búsqueda de FileMaker generada por el modelo en forma de objeto JSON.

  • Nombre de plantilla de indicaciones especifica el nombre de una plantilla de indicaciones personalizada configurada utilizando el paso de guion paso de guión Configurar plantilla de indicaciones. Utilice esta opción para diseñar una indicación adicional con el fin de contribuir a lograr una respuesta óptima en un modelo de IA.

  • Parámetros es una expresión de texto para un objeto JSON que consiste en pares clave-valor para parámetros adicionales que son compatibles con el proveedor del modelo. Por ejemplo: {"temperatura": 0.7, "semilla": 42}. Consulte la documentación del proveedor del modelo para conocer los nombres clave de los parámetros admitidos y sus rangos válidos.

    La clave context_prompt es un parámetro especial que le permite incorporar instrucciones o contexto adicionales al modelo antes de la indicación principal. Por ejemplo: {"context_prompt": "Tratar 'hoy' como 06/26/2025"}.

  • Objetivo de respuesta especifica el campo o la variable donde se almacenará el resultado del paso de guion.

Compatibilidad 

Producto Format
FileMaker Pro
FileMaker Go
FileMaker WebDirect
FileMaker Server
FileMaker Cloud
FileMaker Data API
Publicación en la Web personalizada

Se origina en 

22.0

Descripción 

Este paso de guión le permite realizar peticiones de búsqueda de FileMaker en sus datos utilizando un lenguaje natural sin especificar criterios de búsqueda como en el paso de guión Ejecutar búsqueda. Utiliza un modelo de IA para interpretar las indicaciones en lenguaje natural, analizar los campos disponibles en la presentación actual y generar una petición de búsqueda de FileMaker adecuada (y un tipo de ordenación, si corresponde).

La interacción entre este paso de guión y el modelo suele seguir estos pasos:

  1. El paso de guión identifica todos los campos accesibles mediante una búsqueda en la presentación actual. Envía información sobre estos campos (similar a la salida de la función función GetFieldsOnLayout) junto con la indicación al modelo especificado. (Esto incluye indicaciones proporcionadas en una plantilla de indicaciones opcional y el parámetro context_prompt).

  2. El modelo analiza la indicación y la información del campo de presentación y luego genera una petición de búsqueda de FileMaker y un tipo de ordenación diseñado para recuperar los registros solicitados.

  3. Este paso de guión recibe la petición de búsqueda generada y el tipo de ordenación.

  4. El paso de guión realiza una acción basada en la opción Get.

La opción Get determina lo que sucede después de que el modelo genere la petición de búsqueda:

Obtener (Get) Hace lo siguiente

Conjunto encontrado

Ejecuta la petición de búsqueda generada en la presentación actual y, en el paso 4, actualiza el conjunto encontrado. Si el modelo generó un tipo de ordenación, el conjunto encontrado también se ordena en consecuencia. El Objetivo de respuesta no se utiliza cuando se selecciona esta opción.

Conjunto encontrado como JSON

Ejecuta la petición de búsqueda generada y, en el paso 4, devuelve los datos del conjunto encontrado resultante en forma de objeto JSON en el Objetivo de respuesta. La estructura JSON es la misma que la respuesta a una petición de búsqueda realizada a través de la API de datos de FileMaker. Incluye los datos del conjunto encontrado, información de datos (como el recuento encontrado y el recuento total de registros) y los posibles mensajes (errores o advertencias). Vea el ejemplo a continuación y el ejemplo del paso de guión Ejecutar FileMaker Data API.

Petición de búsqueda como JSON

No realiza la búsqueda. En el paso 4, devuelve la petición de búsqueda y el tipo de ordenación de FileMaker generados en forma de objeto JSON en el Objetivo de respuesta. Esta opción es especialmente útil en la depuración para ver exactamente qué petición de búsqueda generó el modelo. La estructura JSON es similar a las matrices query y sort utilizadas en la llamada a FileMaker Data API para realizar una petición de búsqueda. Consulte el ejemplo a continuación y Realizar una petición de búsqueda en la guía de FileMaker Data API.

Notas 

  • Solo los campos de la presentación actual que son accesibles mediante búsqueda se envían al modelo. Para obtener más información sobre los criterios utilizados para determinar qué campos son accesibles mediante búsqueda, consulte la función función GetFieldsOnLayout, que utiliza los mismos criterios que este paso de guión. GetFieldsOnLayout devuelve la misma información que se envía al modelo (nombre del diseño, nombres de campos, tipos y descripciones).

  • Los comentarios de campo que introduzca en el cuadro de diálogo Administrar base de datos se incluyen con la información de campo enviada al modelo. Con el fin de mejorar la capacidad del modelo de generar peticiones de búsqueda útiles, puede usar el comentario para explicar el propósito del campo. Consulte Definir y modificar campos. Para obtener más información sobre cómo controlar los comentarios de campos que se envían al modelo, consulte la función GetFieldsOnLayout.

  • Si especifica un Nombre de plantilla de indicaciones, este paso de guión utiliza la plantilla configurada a través del paso de guión Configurar plantilla de indicaciones. Las plantillas de indicaciones pueden usar constantes como :schema: (que se sustituye por la información del campo de presentación), :question: (que se sustituye por la indicación) y :context: (que se sustituye por el parámetro context_prompt en Parámetros).

  • Este paso de guión se puede utilizar para búsquedas multilingües, ya que los modelos de IA pueden operar en varios idiomas.

  • Cuando no se encuentran registros relevantes, se devuelve un mensaje en el Objetivo de respuesta (si se utiliza), y la función función Get ( LastError ) devuelve el error 401 ("Ningún registro coincide con la petición").

  • Este paso de guión no puede ejecutar búsquedas que requieran funciones de agregación (por ejemplo, encontrar el registro con el valor más alto de un campo). Sin embargo, el modelo puede devolver una petición de búsqueda que incluya criterios de clasificación para ayudar a identificar dichos registros (por ejemplo, ordenar registros por el campo Precio en orden descendente).

Ejemplo 1 

Configura una cuenta de IA, va la presentación de Contactos y luego utiliza este paso de guión para buscar contactos llamados "Alea" en la presentación actual. Este paso de guión envía los campos que se pueden encontrar en la presentación actual y el mensaje "Buscar contactos llamados Alea" al modelo. El modelo devuelve una petición de búsqueda (posiblemente una petición de "Alea" en el campo Nombre), y este paso de guión realiza la búsqueda y actualiza el conjunto encontrado en la ventana actual.

Copiar
Configurar cuenta de IA [ Nombre de cuenta: "my-account" ; Proveedor del modelo: OpenAI ; API key: "sk-..." ]

Ir a la presentación [ "Contactos" (Contactos) ; Animación: Ninguna ]

Ejecutar búsqueda en lenguaje natural [ Nombre de cuenta: "my-account" ; Modelo: "gpt-4o" ; Indicación: "Buscar contactos llamados Alea" ; Get: Conjunto encontrado ]

Ejemplo 2 

Configura una cuenta de IA, solicita al usuario una consulta y luego realiza la búsqueda y devuelve los datos del conjunto encontrado resultante como JSON en la variable $$FoundSetData. Las consultas se ejecutan en la presentación actual.

Copiar
Configurar cuenta de IA [ Nombre de cuenta: "my-account" ; Proveedor del modelo: OpenAI ; API key: "sk-..." ]

Ir a la presentación [ "Productos" (Productos) ; Animación: Ninguna ]

Mostrar cuadro de diálogo personalizado [ "Buscar productos:" ; $$UserPrompt ]

If [ not IsEmpty ( $$UserPrompt ) ]

    Ejecutar búsqueda en lenguaje natural [ Nombre de cuenta: "my-account" ; Modelo: "gpt-4o" ; Indicación: $$UserPrompt ; Get: Conjunto encontrado como JSON ; Objetivo de respuesta: $$FoundSetData ]
    
    Mostrar cuadro de diálogo personalizado [ "Datos del conjunto encontrado:" ; JSONFormatElements ( $$FoundSetData ) ]
    
End If

Posible salida almacenada en $$FoundSetData (formateada usando JSONFormatElements), asumiendo que la indicación era "Busca productos con un precio inferior a 6, y colócalos en orden descendente de precio":

Copiar
{
    "messages"
    [
        {
            "code" : "0",
            "message" : "OK"
        }
    ],
    "response"
    {
        "data"
        [
            {
                "fieldData"
                {
                    "Price" : 5.99,
                    "ProductID" : 107,
                    "ProductName" : "Gafas de seguridad",
                    "Status" : "En existencias"
                },
                "modId" : "0",
                "portalData" : {},
                "recordId" : "61"
            },
            {
                "fieldData"
                {
                    "Price" : 5.5,
                    "ProductID" : 122,
                    "ProductName" : "Espátula",
                    "Status" : "En existencias"
                },
                "modId" : "0",
                "portalData" : {},
                "recordId" : "76"
            }
        ],
        "dataInfo"
        {
            "database" : "Sistema de clasificación",
            "foundCount" : 2,
            "layout" : "Productos",
            "returnedCount" : 2,
            "table" : "Productos",
            "totalRecordCount" : 42
        }
    }
}

Ejemplo 3 

Configura una cuenta de IA y luego configura una plantilla de petición personalizada que utiliza la indicación predefinida para una petición de búsqueda. La indicación predefinida describe el formato JSON para una petición de búsqueda e incluye lo siguiente: Usa la siguiente información como contexto: \":context:\".

Después de ir a la presentación de Productos y establecer la variable $$Today en una frase de lenguaje natural para usar en el contexto más tarde, este paso de guión reemplaza la constante :context: utilizada en la plantilla de indicaciones por el valor de la clave context_prompt en Parámetros. Luego lo envía junto con la indicación "Busca registros creados hoy ordenados por nombre de producto" al modelo.

El modelo devuelve la petición de búsqueda en forma de objeto JSON en la variable $$FindRequestJSON, que se puede utilizar para fines de depuración.

Copiar
Configurar cuenta de IA [ Nombre de cuenta: "my-account" ; Proveedor del modelo: OpenAI ; API key: "sk-..." ]

Configurar plantilla de indicaciones [ Nombre de plantilla: "FindToday" ; Proveedor del modelo OpenAI ; Tipo de plantilla: Petición de búsqueda ; Indicación de buscar solicitud: "Generar y devolver solo una consulta de presentación JSON para ejecutar una petición de búsqueda..." ]

Ir a la presentación [ "Productos" (Productos) ; Animación: Ninguna ]

Establecer variable [ $$Today ; Value: "Hoy es " & Get ( CurrentDate ) ]

Ejecutar búsqueda en lenguaje natural [ Nombre de cuenta: "my-account" ; Modelo: "gpt-4o" ; Indicación: "Busca registros creados hoy y ordénalos por nombre de producto" ; Get: Petición de búsqueda como JSON ; Parámetros: JSONSetElement ( "{}" ; "context_prompt" ; $$Today ; JSONString ) ; Objetivo de respuesta: $$FindRequestJSON ]

Mostrar cuadro de diálogo personalizado [ "Petición de búsqueda generada" ; JSONFormatElements ( $$FindRequestJSON ) ]

Posible salida almacenada en $$FindRequestJSON (formateada usando JSONFormatElements), presuponiendo que la fecha actual es 06/26/2025 y la presentación tiene los campos CreationDate y ProductName:

Copiar
{
    "layouts" : "Productos",
    "query"
    [
        {
            "Products::CreationDate" : "06/26/2025"
        }
    ],
    "sort"
    [
        {
            "fieldName" : "Products::ProductName",
            "sortOrder" : "ascend"
        }
    ]
}