Inserir a incorporação no conjunto encontrado

Para cada registro no conjunto encontrado, envia dados de um campo de origem para um modelo de incorporação e insere a representação retornada do vetor em um campo de destino.

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 de incorporação é o nome do modelo que gera vetores de incorporação. Especifique o nome do modelo como uma expressão de texto, que é disponibilizada pelo provedor do modelo.

  • Campo de origem é o campo de texto ou container cujos valores esta etapa de script envia para o modelo para conversão em vetores de incorporação. Se o campo estiver vazio, nada será enviado para o modelo e o campo de destino permanecerá inalterado.

  • Campo alvo especifica o campo no qual inserir os vetores de incorporação retornados. Se você especificar um campo de texto, os dados retornados serão armazenados como texto. Se você especificar um campo de contêiner, os dados retornados serão armazenados como dados binários, que podem ser menores do que quando armazenados como texto e podem melhorar os processamentos adicionais realizados com os vetores de incorporação.

  • Substituir o conteúdo de destino substitui o conteúdo do campo de destino, se houver. Quando essa opção está desativada, os dados de incorporação são adicionados ao campo de destino somente se este estiver vazio; caso contrário, o campo permanecerá inalterado. É útil ativar esta opção se o conteúdo do Campo de origem muda com frequência.

  • Parâmetros é uma expressão de texto para um objeto JSON que especifica os limites de tamanho, número e frequência das solicitações enviadas ao modelo. Use-os para otimizar seu script dependendo da quantidade de dados, do modelo em uso, dos limites de token do provedor de modelo e das especificações técnicas (núcleos, RAM etc.) da máquina em que o modelo é executado. Consulte a Descrição para obter detalhes.

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

21.0

Descrição

Para cada registro no conjunto encontrado atual, esta etapa de script envia o valor do Campo de origem para o modelo especificado para conversão em vetores de incorporação que são salvos no Campo alvo.

Um exemplo de como você pode usar vetores de incorporação é com a Etapa de script Executar a pesquisa semântica, que pode consultar os dados vetoriais produzidos por esta etapa de script ou pela etapa de script Inserir incorporação.

Para vetores de incorporação de imagem e texto, você pode usar os modelos suportados pelo servidor de modelos de código aberto fornecidos separadamente com o FileMaker Pro ou instalados com o FileMaker Server. Consulte o Claris Engineering Blog.

Para a opção Parâmetros, você pode usar as chaves e valores a seguir em um objeto JSON para ajustar o comportamento desta etapa de script, se necessário. Se uma chave não for especificada ou se a opção Parâmetros não for usada, os valores padrão serão usados.

Chave de parâmetro

Descrição

Tipo de dados1

Valor padrão

Intervalo de valores

Apenas OpenAI

MaxRecPerCall

Número máximo de registros a serem processados com cada chamada de API

JSONNumber

20

1 a 500

MaxRetryPerWorker

Número máximo de novas tentativas em caso de falha da chamada de API

JSONNumber

5

1 a 100

MaxWaitPerRetry

Tempo máximo para esperar entre as chamadas de API do OpenAI (em milissegundos).É usado apenas quando o OpenAI recebe muitas solicitações por minuto. Nesse caso, esta etapa de script espera até MaxWaitPerRetry entre as chamadas de API da OpenAI. Se o tempo de espera exceder esse máximo, esta etapa de script será interrompida e retornará um erro.

JSONNumber

60.000

20 a 3.600.000

Sim

TruncateTokenLimit

Número de tokens para truncar o Campo de origem quando TruncateEnabled está ativado.

JSONNumber

8.185

0 a 100.000

Sim

TruncateEnabled

1 (verdadeiro) trunca a entrada do Campo de origem de acordo com TruncateTokenLimit antes de enviá-lo para a OpenAI.

Nota  Realizar busca semântica pode fornecer resultados menos precisos se a entrada for truncada.

JSONNumber

1

0 ou 1

Sim

  1. Ao usar a Função JSONSetElement para criar o objeto JSON, use a constante indicada para o parâmetro tipo.

Por exemplo, este objeto JSON define todas as chaves na opção Parâmetros:

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

Notas

  • Para automatizar a atualização regular dos vetores de incorporação em um arquivo FileMaker Pro hospedado, você pode configurar uma programação no host para executar seu script do FileMaker sem a interação do usuário. Veja as programações de script do FileMaker na Ajuda do FileMaker Server ou na Ajuda do FileMaker Cloud.

Exemplo 1

Configura uma conta de IA, vai para o layout de Detalhes da reunião, mostra todos os registros e, em seguida, obtém os vetores de incorporação para o texto no campo Reuniões::Anotação e o armazena como dados binários no campo de contêiner Reuniões::Incorporação_de_anotação. Como a opção Substituir o conteúdo de destino está ativada, Reuniões::Incorporação_de_anotação é atualizado mesmo que já contenha dados.

Copiar
Configurar a conta de IA [ Nome da conta: "minha-conta" ; Provedor de modelos: OpenAI ; Chave de API: "sk-RZCtpWT..." ]

Ir para layout [ "Detalhes da reunião" (Reuniões) ; Animação: Nenhum ]
Mostrar todos os registros

Inserir a incorporação no conjunto encontrado [ Nome da conta: "minha-conta" ; Modelo de incorporação: "text-embedding-3-small" ; Campo de origem: Reuniões::Anotação; Campo alvo: Reuniões::Incorporação_de_anotação ; Substituir o conteúdo de destino ]

Exemplo 2

Configura uma conta de IA, vai para o layout de Detalhes da reunião e, em seguida, encontra os registros nos quais o campo Reuniões::Título contém "Status". Para este conjunto encontrado, obtém os vetores de incorporação para o texto no campo Reuniões::Anotação e o armazena como dados binários no campo de contêiner Reuniões::Incorporação_de_anotação se não houver dados presentes (Substituir o conteúdo de destino está desativado). Também define a opção Parâmetros para aumentar os registros por chamada, o número de tentativas e o tempo entre novas tentativas, bem como para diminuir o limite de tokens.

Copiar
Configurar a conta de IA [ Nome da conta: "minha-conta" ; Provedor de modelos: OpenAI ; Chave de API: "sk-RZCtpWT..." ]

Ir para layout [ "Detalhes da reunião" (Reuniões) ; Animação: Nenhum ]
Entrar em Modo de busca [ Pausar: Desativado ]
Definir campo [ Reuniões::Status ; "Concluído" ]
Realizar busca [ ]

Inserir a incorporação no conjunto encontrado [ Nome da conta: "minha-conta" ; Modelo de incorporação: "text-embedding-3-small" ; Campo de origem: Reuniões::Anotação ; Campo alvo: Reuniões::Incorporação_de_anotação ; 
Parâmetros: JSONSetElement ( "" ;
    ["MaxRecPerCall" ; 40 ; JSONNumber] ; 
    ["MaxRetryPerWorker" ; 10 ; JSONNumber] ; 
    ["MaxWaitPerRetry" ; 300000 ; JSONNumber] ;
    ["TruncateTokenLimit" ; 4000 ; JSONNumber] ;
    ["TruncateEnabled" ; 1 ; JSONNumber]
) ]

Exemplo 3

Configura uma conta de IA para um provedor de modelo personalizado, vai para o layout Detalhes da reunião, mostra todos os registros e, em seguida, para cada registro, usa um modelo de incorporação de imagem para obter vetores de incorporação para a imagem no campo de container Reuniões::Imagem e armazena-o como dados binários no campo de container Reuniões::Incorporação_Imagem.

Copiar
Configurar a conta de IA [ Nome da conta: "minha-conta" ; Provedor de modelos: Personalizado; Endpoint: "https://my-server.example.com:8080/" ; Verificar certificados SSL ; Chave de API: Global::Chave_API ]
        
Ir para layout [ "Detalhes da reunião" (Reuniões) ; Animação: Nenhum ]
Mostrar todos os registros

Inserir a incorporação no conjunto encontrado [ Nome da conta: "minha-conta" ; Modelo de incorporação: "clip-ViT-L-14" ; Campo de origem: Reuniões::Imagem ; Campo alvo: Reuniões::Incorporação_Imagem ; Substituir o conteúdo de destino ]