Esegui azione RAG

Invia un prompt a, o aggiunge e rimuove dati da, uno spazio RAG sul server modello AI specificato da un account RAG.

Opzioni 

  • Nome account RAG è un'espressione di testo dell'account RAG per questa istruzione di script da utilizzare. Nel file corrente, utilizzare l'istruzione di script Configura account RAG per configurare l'account e assegnargli questo nome in qualsiasi momento prima che questa istruzione di script venga eseguita.

  • ID spazio è un'espressione di testo che specifica l'ID univoco dello spazio RAG con cui lavorare nell'account RAG specificato.

  • Azione specifica il tipo di operazione da eseguire su uno spazio RAG. Questa opzione controlla la disponibilità di altre opzioni nell'istruzione di script. Scegliere tra:

    • Aggiungi dati aggiunge un documento (dati di testo o un file PDF) a uno spazio RAG.

    • Invia prompt invia un prompt per interrogare uno spazio RAG e ottenere una risposta generata dall'AI.

    • Rimuovi dati rimuove i documenti da uno spazio RAG.

Opzioni disponibili solo quando Azione è impostato su Aggiungi dati:

  • Dati RAG specifica il documento da aggiungere allo spazio RAG:

    • Da testo aggiunge testo direttamente tramite un'espressione di testo.

    • Da file aggiunge un file PDF dato un percorso, trasferito in modo sincrono.

    • Da file (Async) aggiunge un file PDF dato un percorso, trasferito in modo asincrono (ideale per file di grandi dimensioni).

    • Da contenitore aggiunge un file PDF da un campo Contenitore, trasferito in modo sincrono.

    • Da contenitore (Async) aggiunge un file PDF da un campo Contenitore, trasferito in modo asincrono (ideale per file di grandi dimensioni).

  • File di input specifica un elenco di uno o più percorsi per un file PDF. L'istruzione di script esegue una ricerca nell'elenco e aggiunge il primo file PDF che riesce a individuare. I percorsi devono utilizzare uno dei prefissi di percorso image. Vedere Creazione dei percorsi di file.

  • Campo Contenitore specifica il campo Contenitore che memorizza il file PDF da aggiungere.

Opzioni disponibili solo quando Azione è impostato su Invia prompt:

  • Il valore per Invia prompt è un'espressione di testo per il prompt o la domanda dell'utente in linguaggio naturale.

  • Nome account AI è un'espressione di testo per il nome dell'account AI da utilizzare per generare una risposta. Nel file corrente, utilizzare l'istruzione di script Configura account AI per configurare questo account e assegnargli questo nome in qualsiasi momento prima che questa istruzione di script venga eseguita.

  • Modello è il nome del modello di generazione di testo da utilizzare. Specificare il nome del modello come espressione di testo. Per i modelli supportati, vedere le Specifiche tecniche di FileMaker.

  • Flusso controlla come viene fornita la risposta:

    • Attivato: la risposta viene recuperata e consegnata in modo incrementale (parola per parola o in frasi). Questo può far sì che il client FileMaker appaia più reattivo.

    • Disattivato: viene recuperata l'intera risposta prima di essere resa disponibile. Ciò potrebbe far sembrare il client FileMaker non reattivo in attesa della risposta completa.

  • Nome modello prompt specifica il nome di un modello di prompt personalizzato configurato utilizzando l'istruzione di script Configura modello di prompt. Utilizzare questa opzione per progettare un prompt aggiuntivo per aiutare a ottenere una risposta ottimale da un modello di AI.

  • Destinazione risposta specifica il campo o la variabile in cui deve essere memorizzata la risposta dal modello.

  • Parametri è un'espressione di testo per un oggetto JSON costituita da coppie chiave-valore per parametri aggiuntivi supportati dal fornitore del modello. Ad esempio: {"temperature": 0.7, "seed": 42}. Fare riferimento alla documentazione del fornitore del modello per i nomi delle chiavi dei parametri supportati e i relativi intervalli validi.

    La chiave context_prompt è un parametro speciale che consente di inserire ulteriori istruzioni o contesto nel modello prima del prompt principale. Ad esempio: {"context_prompt": "Tratta 'oggi' come 25/08/2025"}.

Opzioni disponibili solo quando Azione è impostato su Rimuovi dati:

  • Parametri è un'espressione di testo per un oggetto JSON contenente una chiave id il cui valore è un array degli ID dei documenti da rimuovere dallo spazio RAG specificato. Ad esempio, {"id" : [2, 3, 5, 7]}. Per ottenere gli ID di tutti i documenti di uno spazio RAG, utilizzare la funzione GetRAGSpaceInfo. Vedere l'Esempio 3.

Compatibilità 

Prodotto Supportata
FileMaker Pro
FileMaker Go
FileMaker WebDirect
FileMaker Server
FileMaker Cloud
FileMaker Data API
Pubblicazione Web personalizzata

Creata nella versione 

22.0

Descrizione 

Questa istruzione di script consente di creare e gestire una cache di conoscenze di documenti (dati di testo e file PDF) sul Server modello AI fornito con FileMaker Server. È quindi possibile sfruttare questa cache con una tecnica chiamata retrieval-augmented generation (RAG). Utilizzando questa tecnica, l'istruzione di script invia un prompt o una domanda a un modello di AI insieme ai fatti più rilevanti recuperati dalla cache di conoscenze, migliorando l'affidabilità e l'accuratezza della risposta fornita dal modello.

L'opzione Azione determina che cosa fa questa istruzione di script:

Azione Operazione eseguita

Aggiungi dati

Aggiunge Dati RAG dal documento specificato: testo (come qualsiasi espressione di testo), un file PDF in base al percorso o un file PDF di un campo Contenitore nel record corrente o correlato. Il processo segue questi passaggi:

  1. L'istruzione di script invia il documento al Server modello AI.

    Se si aggiunge un file PDF, l'istruzione di script invia il file in modo sincrono o asincrono, a seconda dell'opzione Dati RAG. In caso di invio sincrono, lo script non continua con l'istruzione successiva fino a che il trasferimento del file è completato. In caso di invio asincrono, lo script continua con l'struzione successiva mentre il trasferimento dei file è in corso (ideale per file di grandi dimensioni), consentendo al client FileMaker di rimanere reattivo all'interazione dell'utente.

  2. Il Server modello AI assegna un ID al documento. Se si tratta di un file PDF, estrae solo il testo dal file PDF; se è un documento di testo, lo divide in blocchi. Quindi ottiene i vettori di embedding per tutti i blocchi utilizzando il modello di embedding di testo configurato per la RAG sul server.

Invia prompt

Invia il prompt dell'utente al Server modello AI per ottenere i dati più rilevanti dallo spazio RAG specificato, quindi invia il prompt dell'utente insieme al modello di prompt e al contenuto RAG al modello AI. Il processo segue questi passaggi:

  1. L'istruzione di script invia il prompt specificato da Invia prompt e ID spazio al Server modello AI specificato da Nome account RAG.

  2. Il Server modello AI ottiene i vettori di embedding per il prompt, esegue una ricerca semantica per il prompt nello spazio RAG specificato, quindi restituisce i risultati RAG all'istruzione di script.

    I risultati RAG sono i primi N blocchi di documento più rilevanti dallo spazio RAG come testo (N può essere configurato nella FileMaker Server Admin Console).

  3. L'istruzione di script invia il prompt, il modello di prompt, il modello Parametri e i risultati RAG al modello specificato da Nome account AI e Modello.

  4. Il modello restituisce una risposta che l'istruzione di script memorizza in Destinazione risposta.

Rimuovi dati

Rimuove i documenti da uno spazio RAG. Se specificato nell'opzione Parametri, vengono rimossi solo i documenti specificati; altrimenti vengono rimossi tutti i documenti nello spazio RAG.

Nota  La rimozione di documenti da uno spazio RAG non può essere annullata. Assicurarsi di conservare i documenti originali altrove nel caso in cui occorra aggiungerli di nuovo.

Note 

  • Un account RAG deve essere configurato utilizzando l'istruzione di script Configura account RAG prima di utilizzare questa istruzione di script.

  • Per le azioni Invia prompt, deve anche essere configurato un account AI utilizzando l'istruzione di script Configura account AI.

  • I file PDF crittografati o protetti da password non possono essere elaborati con l'azione Aggiungi dati.

  • Gli spazi RAG sono persistenti e conservano i loro documenti fino a quando non vengono rimossi esplicitamente utilizzando l'azione Rimuovi dati.

  • Se si aggiunge un file PDF con lo stesso nome di uno già presente nello spazio RAG, il file PDF esistente viene rimosso e il nuovo file PDF viene aggiunto con un nuovo ID documento. Questo comportamento è lo stesso se si aggiunge il file PDF tramite un percorso o un campo Contenitore.

  • Se si specifica un Nome modello prompt, questa istruzione di script utilizza il modello configurato tramite l'istruzione di script Configura modello di prompt. I modelli di prompt possono utilizzare costanti come :question: (sostituito con il valore Invia prompt) e :context: (sostituito con il parametro context_prompt in Parametri).

  • La qualità delle risposte dell'AI dipende dal modello e dalla pertinenza e qualità dei documenti aggiunti allo spazio RAG.

  • In FileMaker WebDirect, quando questa istruzione di script utilizza l'azione Aggiungi dati e Dati RAG è Da file o Da file (Async), la finestra di dialogo Inserisci si apre per far selezionare all'utente un file PDF da caricare; l'opzione Input File viene ignorata.

Esempio 1 - Aggiungere testo a uno spazio RAG

Aggiunge contenuti di testo a uno spazio RAG per una knowledge base del cliente.

Copia
Configura account RAG [ Nome account RAG: "account-rag-assistenza-clienti" ; Endpoint: "https://myserver.example.com/llm/v1/" ; Chiave API: "eyJh..." ; Verifica certificati SSL ]

Esegui azione RAG [ Nome account RAG: "account-rag-assistenza-clienti" ; ID spazio: "knowledge-base" ; Azione: Aggiungi dati ; Dati RAG: Da testo ; "Politiche e procedure di assistenza clienti per la gestione di resi e cambi..." ]

Esempio 2- Inviare un prompt per interrogare uno spazio RAG

Invia un prompt per interrogare lo stesso spazio RAG dell'Esempio 1 e memorizza la risposta in un campo.

Lo script configura sia l'account RAG che l'account AI per utilizzare il Server modello AI fornito con FileMaker Server. Quando invia il prompt, lo script invia parametri personalizzati al modello per la generazione di risposte e trasmette la risposta a un campo.

Copia
Configura account RAG [ Nome account RAG: "account-rag-assistenza-clienti" ; Endpoint: "https://myserver.example.com/llm/v1/" ; Chiave API: Globale::Chiave_API_RAG ; Verifica certificati SSL ]

Configura account AI [ Nome account: "Server_modello_AI" ; Fornitore modello: Personalizzato ; Endpoint: "https://myserver.example.com/llm/v1/" ; Chiave API: Globale::Chiave_API_Gen_Testo ; Verifica certificati SSL ]

Esegui azione RAG [ Nome account RAG: "rag-assistenza-clienti" ; ID spazio: "knowledge-base" ; Azione: Invia prompt ; Invia prompt: "Qual è la politica di restituzione per i prodotti difettosi?" ; Nome account AI: "Server_modello_AI" ; Modello: Globale::NomeModello ; Flusso: Attivato ; Destinazione risposta: Assistenza_clienti::Risposta_AI ; Parametri: "{\"temperatura\": 0.3, \"token_max\": 500}"]

Un possibile risultato nel campo Assistenza_clienti::Risposta_AI inizia con "La politica di restituzione per i prodotti difettosi consente di restituire l'articolo entro 14 giorni di calendario".

Esempio 3 - Aggiungere e rimuovere un file PDF da uno spazio RAG

Aggiunge un file PDF denominato Politiche.pdf a uno spazio RAG, quindi lo rimuove.

Dopo aver configurato l'account RAG da utilizzare sul Server modello AI, lo script aggiunge il file Politiche.pdf allo spazio RAG specificandone il percorso.

Prima di poter rimuovere il file, lo script deve trovare l'ID del documento che era stato assegnato al momento dell'aggiunta del file. Innanzitutto, lo script utilizza la funzione GetRAGSpaceInfo per ottenere informazioni sullo spazio RAG. Quindi per la variabile $id, ottiene l'array di valori e utilizza un loop While per trovare l'elemento la cui chiave nomefile è "Politiche.pdf", restituendo il valore dell'id di quell'elemento.

Dopo aver impostato $idArrayDaRimuovere sul JSON richiesto per specificare l'$id, lo script richiama Esegui azione RAG per rimuovere i dati impostando l'opzione Parametri su $idArrayDaRimuovere.

Copia
Configura account RAG [ Nome account RAG: "account-rag-assistenza-clienti" ; Endpoint: "https://myserver.example.com/llm/v1/" ; Chiave API: Globale::Chiave_API_RAG ; Verifica certificati SSL ]

Esegui azione RAG [ Nome account RAG: "account-rag-assistenza-clienti" ; ID spazio: "knowledge-base" ; Azione: Aggiungi dati ; Dati RAG: Da file ; "Politiche.pdf" ]

Imposta variabile [ $infoSpazioRag ; Valore: GetRAGSpaceInfo ( "account-rag-assistenza-clienti" ; "knowledge-base" ) ]

Imposta variabile [ $id ; Valore: 
  Dichiara ( [
    json = $ragSpaceInfo ;
    valori = JSONGetElement ( json ; "valori" ) ;
    conteggioArray = ConteggioValore ( JSONListKeys ( valori ; "" ) ) ;
    
    cerca = While ( 
      [ i = 0 ; risultato = "" ] ; 
      
      i < conteggioArray e EVuoto ( risultato ) ; 
      
      [ 
        nomefile = JSONGetElement ( valori ; "[" & i & "].nomefile" ) ;
        risultato = Casi ( 
          nomefile = "Politiche.pdf" ; 
          JSONGetElement ( valori ; "[" & i & "].id" ) ; 
          "" 
        ) ;
        i = i + 1 
      ] ; 
      
      risultato 
    )
  ] ;

  cerca
  )
]

Imposta variabile [ $idArrayDaRimuovere ; Valore: "{\"id\": [" & $id & "]}" ]

Esegui azione RAG [ Nome account RAG: "account-rag-assistenza-clienti" ; ID spazio: "knowledge-base" ; Azione: Rimuovi dati ; Parametri: $idArrayDaRimuovere ]