Executar ação RAG

Envia um prompt ou adiciona e remove dados de um espaço RAG no servidor de modelo de IA especificado por uma conta RAG.

Opções 

  • Nome da conta RAG é uma expressão de texto da conta RAG usada por esta etapa de script. No arquivo atual, use a etapa de script Etapa de script Configurar conta RAG para configurar a conta e atribuir esse nome a ela antes que a etapa de script seja executada.

  • ID do espaço é uma expressão de texto que especifica o ID exclusivo do espaço RAG para trabalhar na conta RAG especificada.

  • Ação especifica o tipo de operação a ser realizada em um espaço RAG. Essa opção controla a disponibilidade de outras opções na etapa de script. Escolha entre:

    • Adicionar Dados adiciona um documento (dados de texto ou um arquivo PDF) a um espaço RAG.

    • Enviar prompt envia um prompt para consultar um espaço RAG e obter uma resposta gerada por IA.

    • Remover dados remove documentos de um espaço RAG.

Opções disponíveis somente quando Ação é Adicionar dados:

  • Dados RAG especifica o documento a ser adicionado ao espaço RAG:

    • Do texto adiciona texto diretamente através de uma expressão de texto.

    • Do arquivo adiciona um arquivo PDF dado um caminho, transferido de forma síncrona.

    • Do arquivo (assíncrono) adiciona um arquivo PDF dado um caminho, transferido de forma assíncrona (melhor para arquivos grandes).

    • Do container adiciona um arquivo PDF de um campo de container, transferido de forma síncrona.

    • Do container (assíncrono) adiciona um arquivo PDF de um campo de container, transferido de forma assíncrona (melhor para arquivos grandes).

  • Arquivo de entrada especifica uma lista de um ou mais caminhos para um arquivo PDF. A etapa de script pesquisa a lista e adiciona o primeiro arquivo PDF localizado com sucesso. Os caminhos devem usar um dos prefixos de caminho de imagem. Consulte Criação de caminhos de arquivo.

  • Campo de container especifica o campo de container que armazena o arquivo PDF a ser adicionado.

Opções disponíveis somente quando Ação é Enviar prompt:

  • O valor para Enviar prompt é uma expressão de texto para o prompt em linguagem natural do usuário ou pergunta.

  • Nome da conta de IA é uma expressão de texto para o nome da conta de IA a ser usada para gerar uma resposta. 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.

  • Fluxo controla como a resposta é fornecida:

    • Ativado: a resposta é recuperada e entregue de forma incremental (palavra por palavra ou em frases). Isso pode fazer com que o cliente FileMaker pareça mais responsivo.

    • Desativado: toda a resposta é recuperada antes de ser disponibilizada. Isso pode fazer com que o cliente FileMaker pareça não responder enquanto aguarda a resposta completa.

  • 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.

  • Destino da resposta especifica o campo ou a variável em que a resposta do modelo deve ser armazenada.

  • 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": "Treat 'today' as 25/08/2025"}.

Opções disponíveis somente quando Ação é Remover Dados:

  • Parâmetros é uma expressão de texto para um objeto JSON contendo uma chave id cujo valor é uma matriz dos IDs dos documentos a serem removidos do espaço RAG especificado. Por exemplo, {"id" : [2, 3, 5, 7]}. Para obter os IDs de todos os documentos em um espaço RAG, use a função Função GetRAGSpaceInfo. Consulte Exemplo 3.

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 

Esta etapa de script permite criar e gerenciar um cache de conhecimento de documentos (dados de texto e arquivos PDF) no servidor do modelo de IA fornecido com o FileMaker Server. Você pode então alavancar esse cache com uma técnica chamada geração de recuperação aumentada (RAG). Com essa técnica, a etapa de script envia um prompt ou pergunta para um modelo de IA, juntamente com os fatos mais relevantes recuperados do seu cache de conhecimento, melhorando a confiabilidade e a precisão da resposta do modelo.

A opção Ação determina o que esta etapa de script faz:

Ação Faz isso

Adicionar dados

Adiciona Dados RAG do documento especificado: texto (como qualquer expressão de texto), um arquivo PDF por caminho ou um arquivo PDF de um campo de container no registro atual ou relacionado. O processo segue estas etapas:

  1. A etapa de script envia o documento para o servidor do modelo de IA.

    Se adicionar um arquivo PDF, a etapa de script enviará o arquivo de forma síncrona ou assíncrona, dependendo da opção Dados RAG. Se o envio for sincronizado, o script não continuará para a próxima etapa até que a transferência de arquivo seja concluída. Se o envio for enviado de forma assíncrona, o script passará para a próxima etapa enquanto a transferência de arquivos estiver em andamento (melhor para arquivos grandes), permitindo que o cliente FileMaker permaneça responsivo à interação do usuário.

  2. O Servidor do modelo de IA atribui um ID ao documento. Se for um arquivo PDF, ele extrai apenas texto do arquivo PDF. Se for um documento de texto, ele divide o documento de texto em fragmentos. Em seguida, obtém vetores de incorporação para todos os pedaços usando o modelo de incorporação de texto configurado para RAG no servidor.

Enviar prompt

Envia o prompt do usuário para o servidor do modelo de IA para obter os dados mais relevantes do espaço RAG especificado e, em seguida, envia o prompt do usuário junto com o modelo de prompt e o conteúdo RAG para o modelo AI. O processo segue estas etapas:

  1. A etapa de script envia o prompt especificado por Enviar prompt e o ID do espaço para o servidor do modelo de IA especificado por Nome da conta RAG.

  2. O servidor do modelo de IA recebe vetores de incorporação para o prompt, realiza uma pesquisa semântica para o prompt no espaço RAG especificado e, em seguida, retorna os resultados do RAG para a etapa de script.

    Os resultados do RAG são os N fragmentos de documento mais relevantes do espaço RAG como texto (N pode ser configurado no console do FileMaker Server Admin).

  3. A etapa de script envia o prompt, o modelo de prompt, os Parâmetros do modelo e os resultados do RAG para o modelo especificado por Nome da conta de IA e Modelo.

  4. O modelo retorna uma resposta que a etapa de script armazena em Destino da resposta.

Remover dados

Remove documentos de um espaço RAG. Se especificado na opção Parâmetros, apenas os documentos especificados serão removidos. Caso contrário, todos os documentos no espaço RAG serão removidos.

Nota  A remoção de documentos de um espaço RAG não pode ser desfeita. Mantenha os documentos originais em outro lugar, caso precise adicioná-los novamente.

Notas 

  • Uma conta RAG deve ser configurada seguindo a Etapa de script Configurar conta RAG antes de usar essa etapa de script.

  • Para ações Enviar prompt, uma conta de IA também deve ser configurada usando a Etapa de script Configurar a conta de IA.

  • Arquivos PDF com criptografia ou proteção por senha não podem ser processados com a ação Adicionar dados.

  • Os espaços RAG são persistentes e retêm seus documentos até serem explicitamente removidos com a ação Remover dados.

  • Se você adicionar um arquivo PDF com o mesmo nome de um arquivo que já está no espaço RAG, o arquivo PDF existente será removido e o novo será adicionado com um novo ID de documento. Esse comportamento é o mesmo se adicionar o arquivo PDF por meio de um caminho ou de um campo de container.

  • Se você especificar um Nome do modelo de solicitação, esta etapa de script usará o modelo configurado por meio da Etapa de script Configurar modelo de prompt. Os modelos de prompt podem usar as constantes como :question: (substituído pelo valor Enviar prompt) e :context: (substituído pelo parâmetro context_prompt em Parâmetros).

  • A qualidade das respostas da IA depende do modelo e da relevância e da qualidade dos documentos adicionados ao espaço RAG.

  • No FileMaker WebDirect, quando essa etapa de script usa a ação Adicionar Dados e Dados RAG é Do arquivo ou Do arquivo (assíncrono), a caixa de diálogo Inserir é aberta para o usuário escolher um arquivo PDF para carregar e a opção Arquivo de entrada é ignorada.

Exemplo 1 - Adicionar texto a um espaço RAG

Adiciona conteúdo de texto a um espaço RAG de uma base de conhecimento do cliente.

Copiar
Configurar conta RAG [ Nome da conta RAG: "customer-support-rag-account" ; Ponto de extremidade: "https://myserver.example.com/llm/v1/" ; Chave de API: "eyJh..." ; Verificar certificados SSL ]

Executar ação RAG [ Nome da conta RAG : "customer-support-rag-account" ; ID do espaço: "knowledge-base" ; Ação: Adicionar dados ; Dados RAG: Do texto ; "As políticas e os procedimentos de suporte do cliente para tratamento de devoluções e trocas..." ]

Exemplo 2- Envie um prompt para consultar um espaço RAG

Envia um prompt para consultar o mesmo espaço RAG em Exemplo 1 e armazena a resposta em um campo.

O script configura a conta RAG e a conta AI para usar o Servidor do modelo de IA fornecido com o FileMaker Server. Quando envia o prompt, o script envia parâmetros personalizados para o modelo para geração de resposta e transmite a resposta para um campo.

Copiar
Configurar conta RAG [ Nome da Conta RAG: "customer-support-rag-account" ; Ponto de extremidade: "https://myserver.example.com/llm/v1/" ; Chave de API: Global::RAG_API_Key ; Verificar certificados SSL ]

Configurar conta IA [ Nome da Conta: "AI_Model_Server" ; Provedor do modelo: Personalizado ; Ponto de extremidade: "https://myserver.example.com/llm/v1/" ; Chave de API: Global::Text_Gen_API_Key ; Verificar certificados SSL ]

Executar ação RAG [ Nome da Conta RAG: "customer-support-rag" ; ID do espaço: "knowledge-base" ; Ação: Enviar prompt ; Enviar prompt: "Qual é a política de devolução para produtos com defeito?" ; Nome da Conta de IA: "AI_Model_Server" ; Modelo: Global::ModelName ; Fluxo: Ativado ; Destino da resposta: Customer_Support::AI_Response ; Parâmetros: "{\"temperatura\": 0.3, \"max_tokens\": 500}" ]

Um possível resultado no campo Customer_Support::AI_Response começa "A política de devolução para produtos defeituosos permite devolver o item dentro de 14 dias corridos".

Exemplo 3 - Adicione e remova um arquivo PDF de um espaço RAG

Adiciona um arquivo PDF chamado Policies.pdf a um espaço RAG e, em seguida, o remove.

Depois de configurar a conta RAG para usar no servidor do modelo de IA, o script adiciona o arquivo Policies.pdf ao espaço RAG, especificando o caminho do arquivo.

Antes de poder remover o arquivo, o script precisa encontrar o ID do documento atribuído quando o arquivo foi adicionado. Primeiro, o script usa a Função GetRAGSpaceInfo para obter informações sobre o espaço RAG. Então, para a variável $id, ele obtém a matriz valores e usa um loop Enquanto para encontrar o elemento cuja chave filename é "Policies.pdf", retornando o valor do id desse elemento.

Depois de definir $idArrayToRemove para o JSON necessário para especificar o $id, o script chama Executar ação RAG para remover os dados definindo a opção Parâmetros para $idArrayToRemove.

Copiar
Configurar conta RAG [ Nome da conta RAG: "conta-rag-de-suporte-ao-cliente" ; Ponto de extremidade: "https://myserver.example.com/llm/v1/" ; Chave de API: Global::RAG_API_Key ; Verificar certificados SSL ]

Executar ação RAG [ Nome da conta RAG: "customer-support-rag-account" ; ID do espaço: "knowledge-base" ; Ação: Adicionar dados ; Dados RAG: Do arquivo ; "Policies.pdf" ]

Definir variável [ $ragSpaceInfo ; Valor: GetRAGSpaceInfo ( "customer-support-rag-account" ; "knowledge-base" ) ]

Definir variável [ $id ; Valor: 
  Let ( [
    json = $ragSpaceInfo ;
    values = JSONGetElement ( json ; "values" ) ;
    arrayCount = ValueCount ( JSONListKeys ( values ; "" ) ) ;
    
    search = While ( 
      [ i = 0 ; result = "" ] ; 
      
      i < arrayCount and IsEmpty ( result ) ; 
      
      [ 
        filename = JSONGetElement ( values ; "[" & i & "].filename" ) ;
        result = Case ( 
          filename = "Policies.pdf" ; 
          JSONGetElement ( values ; "[" & i & "].id" ) ; 
          "" 
        ) ;
        i = i + 1 
      ] ; 
      
      result 
    )
  ] ;

  search
  )
]

Definir variável [ $idArrayToRemove ; Valor: "{\"id\": [" & $id & "]}" ]

Executar ação RAG [ Nome da conta RAG: "customer-support-rag-account" ; ID do espaço: "knowledge-base" ; Ação: Remover dados ; Parâmetros: $idArrayToRemove ]