Insertar incrustación en el conjunto encontrado

Para cada registro del conjunto encontrado, envía los datos de un campo de origen a un modelo de incrustación e inserta la representación vectorial devuelta en un campo de destino.

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 de incrustación es el nombre del modelo para generar vectores de incrustación. Especifique el nombre del modelo como una expresión de texto, que está disponible en el proveedor del modelo.

  • Campo de origen es el campo contenedor o de texto cuyos valores envía este paso de guión al modelo para su conversión a vectores de incrustación. Si el campo está vacío, no se envía nada al modelo y el campo objetivo no cambia.

  • Campo objetivo especifica el campo en el que insertar los vectores de incrustación devueltos. Si especifica un campo de texto, los datos devueltos se almacenan como texto. Si especifica un campo contenedor, los datos devueltos se almacenan como datos binarios, que pueden ser más pequeños que cuando se almacenan como texto y pueden mejorar cualquier procesamiento adicional realizado con los vectores de incrustación.

  • Sustituir contenido de destino reemplaza el contenido del campo objetivo, si lo hay. Cuando esta opción está desactivada, los datos de incrustación se agregan al campo objetivo únicamente si el campo está vacío. De lo contrario, el campo se deja sin cambios. Activar esta opción es útil si el contenido de Campo de origen cambia con frecuencia.

  • Parámetros es una expresión de texto para un objeto JSON que especifica los límites del tamaño, el número y la frecuencia de las solicitudes enviadas al modelo. Úselos para optimizar su guión en función de la cantidad de datos, el modelo que se está utilizando, los límites de tokens del proveedor de modelos y las especificaciones técnicas (núcleos, RAM, etc.) del equipo en el que se está ejecutando el modelo. Consulte la descripción para obtener más información.

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 

21.0

Descripción 

Para cada registro del conjunto encontrado actual, este paso de guión envía el valor de Campo de origen al modelo especificado para la conversión a vectores de incrustación guardados en Campo objetivo.

Un ejemplo de cómo podría usar vectores de incrustación es con el paso de guión Realizar búsqueda semántica, que puede consultar los datos vectoriales producidos por este paso de guión o el paso de guión Insertar incrustación.

Tanto para los vectores de imagen como para los de texto, puede utilizar los modelos compatibles con el servidor de modelos de código abierto proporcionado por separado con FileMaker Pro o instalado con FileMaker Server. Consulte el blog de Claris Engineering.

Para la opción Parámetros, puede utilizar las siguientes claves y valores en un objeto JSON para ajustar el comportamiento de este paso de guión, si es necesario. Si no se especifica una clave o no se utiliza la opción Parámetros, se utilizarán los valores predeterminados.

Clave de parámetro

Descripción

Tipo de datos1

Valor predeterminado

Rango de valores

Solo OpenAI

MaxRecPerCall

Número máximo de registros a procesar con cada llamada a la API

JSONNumber

20

De 1 a 500

MaxRetryPerWorker

Número máximo de reintentos si falla la llamada a la API

JSONNumber

5

De 1 a 100

MaxWaitPerRetry

Tiempo máximo de espera entre las llamadas a la API de OpenAI (en milisegundos). Esto solo se utiliza cuando OpenAI recibe demasiadas solicitudes por minuto. En ese caso, este paso de guión espera hasta MaxWaitPerRetry entre llamadas a la API de OpenAI. Si el tiempo de espera supera este máximo, este paso de guión se detiene y devuelve un error.

JSONNumber

60 000

De 20 a 3 600 000

TruncateTokenLimit

Número de tokens para truncar la entrada desde Campo de origen cuando TruncateEnabled está activado.

JSONNumber

8185

De 0 a 100 000

TruncateEnabled

1 (verdadero) trunca la entrada desde Campo de origen hasta TruncateTokenLimit antes de enviarla a OpenAI.

Nota  Realizar búsqueda semántica puede proporcionar resultados menos precisos si la entrada está truncada.

JSONNumber

1

0 o 1

  1. Si utiliza la función JSONSetElement para crear el objeto JSON, utilice la constante indicada para el parámetro type.

Por ejemplo, este objeto JSON establece todas las claves en la opción Parámetros:

Copiar
{
    "MaxRecPerCall" : 40,
    "MaxRetryPerWorker" : 10,
    "MaxWaitPerRetry" : 300000,
    "TruncateTokenLimit" : 4000,
    "TruncateEnabled" : 1
}

Notas 

  • Para automatizar la actualización de los vectores de incrustación en un archivo alojado de FileMaker Pro de forma regular, puede configurar una programación en el anfitrión para ejecutar su guión de FileMaker sin la interacción del usuario. Consulte las programaciones de guiones de FileMaker en Ayuda de FileMaker Server o Ayuda de FileMaker Cloud.

Ejemplo 1

Configura una cuenta de IA, va a la presentación Detalles de la reunión, muestra todos los registros y, a continuación, obtiene vectores de incrustación para el texto del campo Reuniones::Nota y lo almacena como datos binarios en el campo contenedor Reuniones::Nota_Incrustación. Debido a que la opción Sustituir contenido de destino está activada, Reuniones::Nota_Incrustación se actualiza incluso si ya contiene datos.

Copiar
Configurar cuenta de IA [ Nombre de cuenta: "mi-cuenta" ; Proveedor de modelo: OpenAI ; Clave de API: "sk-RZCtpWT..." ]

Ir a la presentación [ "Detalles de la reunión" (Reuniones) ; Animación: Ninguna ]
Mostrar todos los registros

Insertar incrustación en el conjunto encontrado [ Nombre de cuenta: "mi-cuenta" ; Modelo de incrustación: "text-embedding-3-small" ; Campo de origen: Reuniones::Nota ; Campo objetivo: Reuniones::Nota_Incrustación ; Sustituir contenido de destino ]

Ejemplo 2 

Configura una cuenta de IA, va a la presentación Detalles de la reunión y luego encuentra los registros en los que el campo Reuniones::Título contiene "Estado". Para este conjunto encontrado, obtiene vectores de incrustación para el texto del campo Reuniones::Nota y lo almacena como datos binarios en el campo contenedor Reuniones::Nota_Incrustación, si no hay datos ya presentes (Sustituir contenido de destino está desactivado). También establece la opción Parámetros para aumentar los registros por llamada, el número de reintentos y el tiempo entre reintentos y para reducir el límite de tokens.

Copiar
Configurar cuenta de IA [ Nombre de cuenta: "mi-cuenta" ; Proveedor de modelo: OpenAI ; Clave de API: "sk-RZCtpWT..." ]

Ir a la presentación [ "Detalles de la reunión" (Reuniones) ; Animación: Ninguna ]
Modo Buscar [ Pausa: Inactivo ]
Establecer campo [ Reuniones::Estado ; "Hecho" ]
Ejecutar búsqueda [ ]

Insertar incrustación en el conjunto encontrado [ Nombre de cuenta: "mi-cuenta" ; Modelo de incrustación: "text-embedding-3-small" ; Campo de origen: Reuniones::Nota ; Campo objetivo: Reuniones::Nota_Incrustación ; 
Parámetros: JSONSetElement ( "" ;
    ["MaxRecPerCall" ; 40 ; JSONNumber] ; 
    ["MaxRetryPerWorker" ; 10 ; JSONNumber] ; 
    ["MaxWaitPerRetry" ; 300000 ; JSONNumber] ;
    ["TruncateTokenLimit" ; 4000 ; JSONNumber] ;
    ["TruncateEnabled" ; 1 ; JSONNumber]
) ]

Ejemplo 3

Configura una cuenta de IA para un proveedor de modelos personalizado, va a la presentación Detalles de la reunión, muestra todos los registros y, a continuación, para cada registro utiliza un modelo de incrustación de imágenes a fin de obtener vectores de incrustación para la imagen en el campo contenedor Reuniones::Imagen y los almacena como datos binarios en el campo contenedor Reuniones::Incrustación_de_imagen.

Copiar
Configurar cuenta de IA [ Nombre de cuenta: "mi-cuenta" ; Proveedor de modelo: Personalizado ; Punto de conexión: "https://my-server.example.com:8080/" ; Verificar certificados SSL ; Clave de API: Global::API_Clave ]
        
Ir a la presentación [ "Detalles de la reunión" (Reuniones) ; Animación: Ninguna ]
Mostrar todos los registros

Insertar incrustación en conjunto encontrado [ Nombre de cuenta: "mi-cuenta" ; Modelo de incrustación: "clip-ViT-L-14" ; Campo de origen: Reuniones::Imagen ; Campo objetivo: Reuniones::Imagen_Incrustación ; Sustituir contenido de destino ]