Utför RAG-åtgärd

Skickar en prompt till, eller lägger till och tar bort data från, en RAG-plats på AI-modellservern som anges av ett RAG-konto.

Tillval 

  • RAG-kontonamn är ett textuttryck för RAG-kontot som scriptsteget ska använda. Använd Scriptsteget Konfigurera RAG-konto i den aktuella filen för att konfigurera kontot och tilldela det namnet när som helst innan scriptsteget körs.

  • Plats-ID är ett textuttryck som anger det unika ID:t för den RAG-plats som ska användas i det angivna RAG-kontot.

  • Åtgärd anger vilken typ av åtgärd som ska utföras på en RAG-plats. Det här alternativet styr tillgängligheten av andra alternativ i scriptsteget. Välj mellan:

    • Lägg till data lägger till ett dokument (textdata eller en PDF-fil) i en RAG-plats.

    • Skicka prompt skickar en prompt för att söka på en RAG-plats och få ett AI-genererat svar.

    • Ta bort data tar bort dokument från en RAG-plats.

Ytterligare alternativ som är tillgängliga när Åtgärd är Lägg till data.

  • RAG-data anger det dokument som ska läggas till på RAG-platsen:

    • Från text lägger till text direkt via ett textuttryck, som överförs synkront.

    • Från fil lägger till en PDF-fil givet en sökväg, som överförs synkront.

    • Från fil (Async) lägger till en PDF-fil givet en sökväg, som överförs asynkront (bäst för stora filer).

    • Från container lägger till en PDF-fil från ett containerfält, som överförs synkront.

    • Från container (Async) lägger till en PDF-fil från ett containerfält, som överförs asynkront (bäst för stora filer).

  • Indatafil anger en lista med en eller flera sökvägar för en PDF-fil. Scriptsteget söker igenom listan och lägger till den första PDF-filen som hittas. Sökvägarna måste använda ett av sökvägsprefixen image. Mer information finns i Skapa filsökvägar.

  • Containerfält anger det containerfält som lagrar PDF-filen som ska läggas till.

  • Identifiera vertikal text förbättrar extraktionen av text från PDF-filer som innehåller lodrät text som ofta finns i japanska litterära verk, tidningar, myndighetsdokument och akademiska uppsatser. Det här alternativet är inte tillgängligt när RAG-data är Från text.

  • Tokens per textsegment är ett numeriskt uttryck som anger hur många tokens som ska ingå i varje textsegment när text eller PDF-filer läggs till på RAG-platsen. Giltiga värden är 75 till 512. Om inget eller 0 anges används det värde som konfigurerats för AI-modellservern i Admin Console (200 tokens som standard).

  • Mål för svar anger det fält eller den variabel där ett JSON-objekt om det tillagda dokumentet, som returneras av AI-modellservern, ska lagras. Läs mer under Beskrivning.

Ytterligare alternativ som är tillgängliga när Åtgärd är Skicka prompt:

  • Värdet för Skicka prompt är ett textuttryck för användarprompten eller frågan på naturligt språk.

  • AI-kontonamn är ett textuttryck för namnet på det AI-konto som ska användas för att generera ett svar. Använd Scriptsteget Konfigurera AI-konto i den aktuella filen för att konfigurera kontot och tilldela det namnet när som helst innan scriptsteget körs.

  • Modell är namnet på den textgenereringsmodell som ska användas. Ange modellnamnet som ett textuttryck. Information om vilka modeller som stöds finns i Tekniska specifikationer för FileMaker.

  • Stream styr hur svaret levereras:

    • På: Svaret hämtas och levereras inkrementellt (ord för ord eller i fraser). Det kan göra att FileMaker-klienten upplevs svara snabbare.

    • Av: Hela svaret hämtas innan det görs tillgängligt. Det kan innebär att FileMaker-klienten upplevs inte svara i väntan på det fullständiga svaret.

  • Promptmallens namn anger namnet på en anpassad promptmall som konfigurerats med Scriptsteget Konfigurera promptmall. Använd det här alternativet om du vill utforma en ytterligare prompt för att uppnå ett optimalt svar från en AI-modell.

  • Mål för svar anger det fält eller den variabel där svaret fr¨n modellen ska lagras.

  • Parametrar är ett textuttryck för ett JSON-objekt som kan innehålla följande:

    • FileMaker-klientparametrar som behandlas och tas bort innan begäran skickas:

      CURLOPT_TIMEOUT anger en övre tidsgräns (i sekunder) för att slutföra begäran. Värdet måste vara ett icke-negativt heltal. Till exempel: {"CURLOPT_TIMEOUT": 30}. Om inget svar ges inom den här tiden avbryter FileMaker-klienten begäran och scriptsteget returnerar felkod 1629 ("Ingen anslutning (timeout)").

    • Parametrar för AI-modellservern som åsidosätter inställningar som konfigurerats i Admin Console endast under det här scriptsteget. Om inget anges används de värden som angetts i Admin Console. Parametrarna bearbetas och tas bort innan eventuella andra parametrar som du inkluderar i JSON-objektet skickas direkt till modelleverantören.

      Mer information finns i Beskrivning.

    • Modelleverantörsspecifika parametrar som skickas direkt till modelleverantören tillsammans med prompten. Till exempel: {"temperatur": 0,7, "frö": 42}.

      Obs!  Se modelleverantörens dokumentation för information om vilka parametrar och värden som stöds av den modell du använder.

Ytterligare alternativ som är tillgängliga när Åtgärd är Ta bort data.

  • Parametrar är ett textuttryck för ett JSON-objekt som innehåller nyckeln id vars värde är en matris med ID:n för de dokument som ska tas bort från den angivna RAG-platsen. Till exempel:

    Kopiera
    {"id" : ["5f7677a0-3258-55a3-bc86-737005cb3574", "f95d4266-66cd-5b50-a01b-07a4dd66c501"]}

    Dokument-ID:n som returnerats i Mål för svar när dokumentet lades till kan lagras och senare användas för att ta bort ett dokument. Alternativt kan man hämta ID:n för alla dokument på en RAG-plats med Funktionen GetRAGSpaceInfo.

Kompatibilitet 

Produkt Stöds
FileMaker Pro Ja
FileMaker Go Ja
FileMaker WebDirect Ja
FileMaker Server Ja
FileMaker Cloud Ja
FileMaker Data API Ja
Anpassad webbpublicering Ja

Ursprungsversion 

22.0

Beskrivning 

Med det här scriptsteget kan du skapa och hantera en kunskapscache med dokument (textdata och PDF-filer) på Claris AI Model Server. Du kan sedan använda cachen med en teknik som kallas retrieval-augmented generation (RAG). Med hjälp av den här tekniken skickar scriptsteget en prompt till en AI-modell tillsammans med de mest relevanta fakta som hämtas från din kunskapscache, vilket förbättrar tillförlitligheten och noggrannheten hos svaret från modellen.

Alternativet Åtgärd avgör vad det här scriptsteget gör.

Åtgärden Lägg till data.

Den här åtgärden lägger till RAG-data från det angivna dokumentet: text (som ett textuttryck), en PDF-fil med hjälp av sökväg eller en PDF-fil från ett containerfält i den aktuella eller relaterade posten. Processen följer dessa steg:

  1. Scriptsteget skickar dokumentet till AI-modellservern.

    Om du lägger till en PDF-fil skickar scriptsteget filen synkront eller asynkront, beroende på alternativet RAG-data. Om du skickar synkront fortsätter scriptet inte till nästa steg förrän filöverföringen är klar. Om du skickar asynkront fortsätter scriptet till nästa steg medan filöverföringen pågår (bäst för stora filer), vilket gör att FileMaker-klienten fortsätter att svara på användarinteraktion.

  2. AI-modellservern tilldelar dokumentet ett ID och bearbetar det:

    • Om dokumentet är en PDF-fil extraherar servern endast text från PDF-filen. Den extraherade texten bearbetas sedan på samma sätt som text som läggs till med alternativet Från text.

    • Servern delar upp texten i segment enligt alternativet Tokens per textsegment (om det har angetts) eller den segmentstorlek som har konfigurerats i Admin Console.

      Om texten är i JSONL-format (JSON Lines) – där varje rad är ett giltigt JSON-objekt – identifierar servern automatiskt detta format och behandlar varje rad som en separat semantisk enhet: Varje rad segmenteras separat, men raderna sammanfogas aldrig. Det ger bättre hämtningsnoggrannheten för strukturerade data, till exempel sådana som läggs till från en FileMaker-tabell där varje post kan formateras som en JSON-rad, och säkerställer att postgränserna bevaras.

    • Servern får slutligen inbäddningsvektorer för alla segment med hjälp av den textinbäddningsmodell som är konfigurerad för RAG på servern.

  3. Om Mål för svar har angetts returnerar AI-modellservern ett JSON-objekt som innehåller dokument-ID och metadata för det tillagda dokumentet. På så sätt kan du lagra dokument-ID:t för senare användning (om du till exempel vill ta bort dokumentet).

    Det returnerade JSON-objektet innehåller följande nycklar:

    • id: Det dokument-ID som tilldelats av AI-modellservern som en hexadecimalkodad UUID (Universally Unique Identifier). Mer information om ID-formatet finns i Anteckningar.

    • model: Inbäddningsmodellen som används av AI-modellservern för att generera inbäddningsvektorer för dokumentet.

    • rag_space_id: ID för den RAG-plats där dokumentet lades till.

    • result eller error:

      • result: Status för det tillagda dokumentet när det inte finns några fel. För dokument som överförs synkront är värdet "ok". För dokument som överförs asynkront är värdet en sträng som innehåller plats-ID och det cachelagrade filnamnet, eftersom processen inte har slutförts ännu.

      • error: En sträng med ett felmeddelande när AI-modellservern stöter på ett fel.

    • text eller file, beroende på vad som valts för RAG-data:

      • text: Texten från dokumentet när det lagts till med alternativet Från text för RAG-data.

      • file: Filnamnet på PDF-filen när den lagts till med fil- eller containeralternativet för RAG-data.

    • usage: Information om tokenanvändning när ett dokument överförs synkront. Det returnerade JSON-objektet är {"prompt_tokens":<antal>, "total_tokens":<antal>}, där prompt_tokens är antalet tokens i indata (de textsegment som bäddats in) och total_tokens är det totala antalet tokens som behandlats. Om AI-modellservern är inställd på att inte logga tokenanvändning returneras inga tokenantal.

    Obs!  För dokument som överförs asynkront returnerar nycklarna rag_space_id, model och usage "N/A" eftersom dessa värden inte är tillgängliga förrän behandlingen har slutförts.

Åtgärden Skicka prompt

Den här åtgärden skickar användarprompten till AI-modellservern för att få de mest relevanta data från den angivna RAG-platsen, och skickar sedan användarprompten tillsammans med promptmallen och RAG-innehållet till AI-modellen. Processen följer dessa steg:

  1. Scriptsteget skickar prompten som anges av Skicka prompt och Plats-ID till AI-modellservern som anges av RAG-kontonamn.

  2. AI-modellservern får inbäddningsvektorer för prompten, utför en semantisk sökning för prompten på den angivna RAG-platsen och returnerar sedan RAG-resultaten till scriptsteget.

    RAG-resultaten är de N mest relevanta dokumentsegmenten från RAG-platsen som text (N kan konfigureras i Admin Console eller åsidosättas av alternativet Parametrar enligt nedan).

  3. Scriptsteget skickar prompten, promptmallen, Parametrar för modellen och RAG-resultaten till den modell som angetts med AI-kontonamn och Modell.

  4. Modellen returnerar ett svar som scriptsteget lagrar i Mål för svar.

Parametrar för AI-modellservern

För alternativet Parametrar kan du använda följande nycklar och värden, som är specifika för AI-modellservern, för att justera scriptstegets funktion. Om de här värdena anges åsidosätts de värden som angetts i Admin Console. Det kan vara användbart när olika prompter kräver olika precisionsnivåer eller kontextstorlek (till exempel om frågan skickas till en stor dokumentuppsättning eller en liten). Om ingen nyckel anges används de värden som konfigurerats i Admin Console.

Parameternyckel

Beskrivning

Värdeintervall

similarity_threshold

Lägsta värde för cosinuslikhet för RAG-resultat som ska inkluderas i kontexten. Högre värden ger färre men mer relevanta resultat.

-1 till 1

num_top_ranked_results

Högsta heltal topprankade dokumentsegment som ska inkluderas i kontexten som skickas till AI-modellen. Värdet 0 innebär att inget RAG-innehåll inkluderas.

1 till 100

Det här JSON-objektet anger till exempel dessa nycklar i alternativet Parametrar:

Kopiera
{
    "similarity_threshold" : .5,
    "num_top_ranked_results" : 10
}

Åtgärden Ta bort data.

Den här åtgärden tar bort dokument från en RAG-plats. Om det anges i alternativet Parametrar tas endast de angivna dokumenten bort, annars tas alla dokument på RAG-platsen bort.

Obs!  Det går inte att ångra borttagning av dokument från RAG-platsen. Kom ihåg att att behålla originaldokumenten någon annanstans om du behöver lägga till dem igen.

Kommentarer 

  • Ett RAG-konto måste konfigureras med Scriptsteget Konfigurera RAG-konto innan du kan använda det här scriptsteget.

  • För Skicka prompt-åtgärder måste ett AI-konto också konfigureras med hjälp av Scriptsteget Konfigurera AI-konto.

  • PDF-filer med kryptering eller lösenordsskydd kan inte bearbetas med åtgärden Lägg till data.

  • RAG-platser är beständiga och behåller sina dokument tills de uttryckligen tas bort med hjälp av åtgärden Ta bort data.

  • Om du lägger till en PDF-fil med samma filnamn som en fil som redan finns på RAG-platsen tas den befintliga PDF-filen bort och den nya PDF-filen läggs till med ett nytt dokument-ID. Funktionen är densamma oavsett om du lägger till PDF-filen via en sökväg eller ett containerfält.

  • Dokument som lagts till på en RAG-plats före version 26.0.1 av AI-modellservern har numeriska dokument-ID:n (till exempel 1, 2, 3). Från och med version 26.0.1 utgörs dokument-ID:n av UUID-strängar (till exempel "5f7677a0-3258-55a3-bc86-737005cb3574"). När du arbetar med RAG-platser som innehåller dokument som lagts till före och efter ändringen av ID-format behöver dina script hantera båda formaten för dokument-ID.

    Mer information finns i Exempel 3.

  • Om du anger Promptmallens namn använder scriptsteget den mall som konfigurerats via Scriptsteget Konfigurera promptmall. Promptmallar kan använda konstanter som :question: (ersätts med värdet Skicka prompt) och :context: (ersätts med de RAG-hämtade dokumentsegmenten från RAG-platsen).

  • För alternativet Tokens per textsegment:

    • Större segmentstorlekar bevarar mer kontext men kan sänka hämtningsprecisionen. Mindre segmentstorlekar förbättrar precisionen men kan tappa kontext. Det kan vara bra att använda större värden (till exempel 250 till 300) för språk som japanska, kinesiska eller koreanska, där tokenisering ger färre tecken per token, så ett fast tokenantal täcker betydligt mindre text.

    • Om du vill ändra segmentstorleken för befintliga dokument på en RAG-plats måste du ta bort dokumenten från RAG-platsen och lägga till dem igen med en ny segmentstorlek.

    • Om du anger ett värde utanför det giltiga intervallet returnerar scriptsteget felkod 887 ("Ogiltig RAG-platsåtgärd").

  • AI-svarens kvalitet beror på modellen och relevansen och kvaliteten på de dokument som läggs till på RAG-platsen.

  • I FileMaker WebDirect: När det här scriptsteget använder åtgärden Lägg till data och RAG-data är Från fil eller Från fil (Async), öppnas dialogrutan Infoga där användaren väljer en PDF-fil att ladda upp. Alternativet Indatafil ignoreras.

Exempel 1 - Lägg till text på en RAG-plats

Lägger till textinnehåll på en RAG-plats för en kundkunskapsbas.

Kopiera
Konfigurera RAG-konto [ RAG-kontonamn: "kundsupport-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: "eyJh..." ; Verifiera SSL-certifikat ]

Utför RAG-åtgärd [ RAG-kontonamn : "kundsupport-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Lägg till data ; RAG-data: Från text ; "Policyer och procedurer i kundsupport för hantering av returer och byten..." ]

Exempel 2 - Skicka en prompt som fråga till en RAG-plats

Skickar en prompt som fråga till samma RAG-plats som i Exempel 1 och lagrar svaret i ett fält.

Scriptet ställer in både RAG-kontot och AI-kontot för att använda AI-modellservern.

Variabeln $parametrar innehåller similarity_threshold som angetts till 0,6 så att endast mycket relevanta RAG-resultat tas med, och num_top_ranked_results som angetts till 5 för att begränsa kontexten till de 5 mest relevanta dokumentsegmenten och åsidosätter de standardvärden som konfigurerats i Admin Console. Den innehåller också CURLOPT_TIMEOUT för att avbryta begäran efter 30 sekunder om det inte kommer något svar.

När prompten skickas skickar scriptet parametrarna temperature och max_tokens till modellen för svarsgenerering och streamar svaret till ett fält.

Kopiera
Konfigurera RAG-konto [ RAG-kontonamn: "kundtjänst-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::RAG_API-nyckel ; Verifiera SSL-certifikat ]

Konfigurera AI-konto [ Kontonamn: "AI-modellserver" ; Modelleverantör: Anpassad ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::Text_Gen_API-nyckel ; Verifiera SSL-certifikat ]

Ange variabel [ $parametrar ; Värde: 
  JSONSetElement ( "{}" ;
    [ "temperature" ; ,3 ; JSONNumber ] ;
    [ "max_tokens" ; 500 ; JSONNumber ] ;
    [ "similarity_threshold" ; ,6 ; JSONNumber ] ;
    [ "num_top_ranked_results" ; 5 ; JSONNumber ]
  )
]

Utför RAG-åtgärd [ RAG-kontonamn: "kundtjänst-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Skicka prompt ; Skicka prompt: "Vad är returpolicyn för defekta produkter?" ; AI-kontonamn: "AI-modellserver" ; Modell: Global::Modellnamn ; Stream: På ; Mål för svar: Kundtjänst::AI-svar ; Parametrar: $parametrar ]

Ett möjligt resultat i fältet Kundsupport::AI-svar börjar med ”Returpolicyn för defekta produkter innebär att du kan returnera varan inom 14 kalenderdagar.”

Exempel 3 - Lägg till och ta bort en PDF-fil från en RAG-plats

Lägger till en PDF-fil med namnet Policyer.pdf på en RAG-plats och tar sedan bort den.

När RAG-kontot har konfigurerats för användning på AI-modellservern lägger scriptet till filen Policyer.pdf på RAG-platsen genom att ange filsökvägen. Innan filen kan tas bort måste scriptet hitta det dokument-ID som tilldelades när filen lades till. Dokument-ID returneras av Mål för svar och lagras i $ragLäggTillSvar. Till exempel:

Kopiera
{
  "file": "Policyer.pdf",
  "id": "f95d4266-66cd-5b50-a01b-07a4dd66c501",
  "model": "multi-qa-MiniLM-L6-cos-v1",
  "rag_space_id": "kunskapsbas",
  "result": "ok",
  "usage": {
    "prompt_tokens": 3803,
    "total_tokens": 3803
  }
}

Först hämtar scriptet dokument-ID från $ragLäggTillSvar och lagrar det i $id. Det hämtar också ID:ts datatyp med hjälp av Funktionen JSONGetElementType och lagrar den i $idTyp. Datatypen blir JSONString för UUID:er eller JSONNumber för numeriska ID:n (se Anteckningar för mer information om ID-format).

Därefter bygger scriptet variabeln $idMatrisAttTaBort som ett JSON-objekt med nyckeln id med värden som utgör en matris med de dokument-ID som ska tas bort. När ID:t läggs till i matrisen använder scriptet $idTyp för att bevara den ursprungliga datatypen från $ragLäggTillSvar. Det säkerställer att scriptet fungerar korrekt oavsett vilket ID-format AI-modellservern använder.

Slutligen anropar scriptet Utför RAG-åtgärd för att ta bort data genom att ställa in alternativet Parametrar till $idMatrisAttTaBort.

Kopiera
Konfigurera RAG-konto [ RAG-kontonamn: "kundtjänst-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::RAG_API-nyckel ; Verifiera SSL-certifikat ]

Utför RAG-åtgärd [ RAG-kontonamn: "kundtjänst-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Lägg till data ; RAG-data: Från fil ; "Policyer.pdf" ; Mål för svar: $ragLäggTillSvar ]

Ange variabel [ $id ; Värde: JSONGetElement ( $ragLäggTillSvar ; "id" ) ]
Ange variabel [ $idTyp ; Värde: JSONGetElementType ( $ragLäggTillSvar ; "id" ) ]


Ange variabel [ $idMatrisAttTaBort ; Värde: 
  JSONSetElement ( "{}" ; "id" ; 
    JSONSetElement ( "[]" ; 0 ; $id ; $idTyp ) ; 
    JSONArray 
  ) 
]

Utför RAG-åtgärd [ RAG-kontonamn: "kundtjänst-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Ta bort data ; Parametrar: $idMatrisAttTaBort ]

Exempel 4 - Lägg till dokument med olika segmentstorlekar

Lägger till både engelsk och japansk dokumentation på samma RAG-plats, med olika segmentstorlekar optimerade för respektive språk.

Scriptet använder en mindre segmentstorlek (150 tokens) för teknisk dokumentation på engelska för att möjliggöra exakt hämtning av specifika tekniska detaljer.

För regeldokumentationen på japanska använder scriptet en större segmentstorlek (300 tokens) eftersom japansk tokenisering ger kortare textsegment per token, vilket kräver fler tokens för att bevara tillräcklig kontext. Scriptet väljer också alternativet Identifiera vertikal text för att förbättra extraheringen av lodrät text från PDF-filen.

Kopiera
Konfigurera RAG-konto [ RAG-kontonamn: "produktdok-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::RAG_API-nyckel ; Verifiera SSL-certifikat ]

Utför RAG-åtgärd [ RAG-kontonamn: "produktdok-rag-konto" ; Plats-ID: "produktdokumentation" ; Åtgärd: Lägg till data ; RAG-data: Från fil ; "TechnicalSpecs_EN.pdf" ; Tokens per textsegment: 150 ]

Utför RAG-åtgärd [ RAG-kontonamn: "produktdok-rag-konto" ; Plats-ID: "produktdokumentation" ; Åtgärd: Lägg till data ; RAG-data: Från fil ; "Regulations_JA.pdf" ; Identifiera vertikal text ; Tokens per textsegment: 300 ]

Exempel 5 - Lägg till poster som JSONL-text

Lägger till FAQ-poster från en FileMaker-tabell till en RAG-plats med JSONL-format, där varje rad representerar en fullständig FAQ-post.

Scriptet loopar igenom posterna i FAQ-tabellen och skapar en JSONL-textsträng där varje rad är ett JSON-objekt som innehåller frågans ID, fråga och svar. När den JSONL-formaterade texten läggs till på RAG-platsen identifierar AI-modellservern automatiskt formatet och behandlar varje rad (varje FAQ-post) som en separat semantisk enhet, vilket bevarar postgränserna och förbättrar hämtningsnoggrannheten.

Kopiera
Konfigurera RAG-konto [ RAG-kontonamn: "kundtjänst-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::RAG_API-nyckel ; Verifiera SSL-certifikat ]

Ange variabel [ $jsonlText ; Värde: "" ]
Gå till layout [ "FAQ" (FAQ) ; Animering: Ingen ]

Gå till post/sökpost/sida [ Första ]
Loop [ Rensa: Alltid ]
  Ange variabel [ $jsonLine ; Värde: 
    JSONSetElement ( "{}" ;
      [ "id" ; FAQ::FrågeID ; JSONString ] ;
      [ "question" ; FAQ::Fråga ; JSONString ] ;
      [ "answer" ; FAQ::Svar ; JSONString ]
    )
  ]
  Ange variabel [ $jsonlText ; Värde: $jsonlText & $jsonLine & ¶ ]
  Gå till post/sökpost/sida [ Nästa ; Avbryt efter sista: På ]
End Loop

Utför RAG-åtgärd [ RAG-kontonamn: "kundtjänst-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Lägg till data ; RAG-data: Från text ; $jsonlText ; Mål för svar: $ragSvar ]

Den resulterande variabeln $jsonlText innehåller JSONL-formaterad text som:

Kopiera
{"id":"001","fråga":"Vad har ni för returpolicy?","svar":"Varor kan returneras inom 30 dagar …"}
{"id":"002","fråga":"Hur kan jag spåra min beställning?","svar":"Du kan spåra din beställning med spårningsnumret  …"}
{"id":"003","fråga":"Kan ni leverera till andra länder?","svar":"Ja, vi levererar till fler 100 länder runt om i världen …"}

Om en rad är tillräckligt kort hanterar AI-modellservern den som ett enda segment. Om en rad överskrider gränsen för tokens per textsegment delas raden upp i flera segment. Eftersom raderna aldrig sammanfogas kommer de hämtade segmenten endast att innehålla innehåll från en enda FAQ-post när du söker i RAG-platsen, vilket gör det lättare att identifiera vilken post som tillhandahöll relevant information.