RAG 동작 수행
RAG 계정으로 지정된 AI 모델 서버의 RAG 공간에 프롬프트를 보내거나 데이터를 추가 및 제거합니다.
다음도 참조하십시오.
옵션
-
RAG 계정 이름은 이 스크립트 단계에서 사용할 RAG 계정의 텍스트 표현식입니다. 현재 파일에서 RAG 계정 구성 스크립트 단계를 사용하여 계정을 설정하고 이 스크립트 단계가 실행되기 전에 언제든지 이 이름을 할당하십시오.
-
공간 ID는 지정된 RAG 계정에서 작업할 RAG 공간의 고유 ID를 지정하는 텍스트 표현식입니다.
-
동작은 RAG 공간에서 수행할 동작 유형을 지정합니다. 이 옵션은 스크립트 단계에서 다른 옵션의 가용성을 제어합니다. 다음 중에서 선택하십시오.
-
데이터 추가는 RAG 공간에 document(텍스트 데이터 또는 PDF 파일)를 추가합니다.
-
프롬프트 보내기는 RAG 공간을 쿼리하고 AI 생성 응답을 얻기 위한 프롬프트를 보냅니다.
-
데이터 제거는 RAG 공간에서 문서를 제거합니다.
-
동작이 데이터 추가인 경우에만 사용 가능한 옵션:
-
RAG 데이터는 RAG 공간에 추가할 문서를 지정합니다.
-
텍스트에서는 텍스트 표현식을 통해 직접 텍스트를 추가합니다.
-
파일에서는 경로가 제공되고 동기식으로 전송되는 PDF 파일을 추가합니다.
-
파일에서(비동기)는 경로가 제공되고 비동기식으로 전송되는 PDF 파일을 추가합니다(대용량 파일에 가장 적합).
-
컨테이너에서는 컨테이너 필드에서 동기식으로 전송되는 PDF 파일을 추가합니다.
-
컨테이너에서 (비동기) 컨테이너 필드에서 비동기식으로 전송되는 PDF 파일을 추가합니다(대용량 파일에 가장 적합).
-
-
입력 파일은 PDF 파일에 대한 하나 이상의 경로 목록을 지정합니다. 스크립트 단계는 목록을 검색하여 찾은 첫 번째 PDF 파일을 추가합니다. 경로는
image
경로 접두사 중 하나를 사용해야 합니다. 파일 경로 생성하기를 참조하십시오. -
컨테이너 필드는 추가할 PDF 파일을 저장하는 컨테이너 필드를 지정합니다.
동작이 프롬프트 보내기인 경우에만 사용 가능한 옵션:
-
프롬프트 보내기의 값은 자연어 사용자 프롬프트 또는 질문에 대한 텍스트 표현식입니다.
-
AI 계정 이름은 응답을 생성하는 데 사용할 AI 계정 이름의 텍스트 표현식입니다. 현재 파일에서 AI 계정 구성 스크립트 단계를 사용하여 계정을 설정하고 해당 스크립트 단계가 실행되기 전에 언제든지 이 이름을 할당하십시오.
-
모델은 사용할 텍스트 생성 모델의 이름입니다. 모델 이름을 텍스트 표현식으로 지정합니다. 지원되는 모델은 FileMaker 기술 사양을 참조하십시오.
-
스트림은 응답이 전달되는 방식을 제어합니다.
-
켬: 응답이 검색되고 점진적으로 전달됩니다(단어별 또는 구문 단위). 이를 통해 FileMaker 클라이언트가 더 반응성을 느낄 수 있습니다.
-
끔: 전체 응답을 사용할 수 있게 되기 전에 검색됩니다. 이로 인해 완전한 응답을 기다리는 동안 FileMaker 클라이언트가 응답하지 않는 것처럼 보일 수 있습니다.
-
-
프롬프트 템플릿 이름은 프롬프트 템플릿 구성 스크립트 단계를 사용하여 구성된 사용자 설정 프롬프트 템플릿의 이름을 지정합니다. 이 옵션을 사용하여 AI 모델에서 최적의 응답을 달성하는 데 도움이 되는 추가 프롬프트를 설계합니다.
-
응답 대상은 모델의 응답을 저장할 필드 또는 변수를 지정합니다.
-
매개 변수는 모델 제공자가 지원하는 추가 매개 변수에 대한 키-값 쌍으로 구성된 JSON 객체의 텍스트 표현식입니다. 예를 들어 다음과 같습니다.
{"온도": 0.7, "seed": 42}
. 지원되는 매개 변수의 키 이름과 유효한 범위는 모델 공급자의 문서를 참조하십시오.context_prompt
키는 메인 프롬프트 전에 모델에 추가 지침이나 컨텍스트를 삽입할 수 있는 특수 매개 변수입니다. 예를 들어 다음과 같습니다.{"context_prompt": "'오늘'을 2025-08-20(으)로 처리"}
.
동작이 데이터 제거인 경우에만 사용 가능한 옵션:
-
매개 변수는 지정된 RAG 공간에서 제거될 문서의 ID 배열을 값으로 하는
id
키를 포함하는 JSON 대상체에 대한 텍스트 표현식입니다. 예를 들어,{"id" : [2, 3, 5, 7]}
입니다. RAG 공간에 있는 모든 문서의 ID를 가져오려면 GetRAGSpaceInfo 함수를 사용하십시오. 예제 3을 참조하십시오.
호환성
제품 | 지원 |
FileMaker Pro | 예 |
FileMaker Go | 예 |
FileMaker WebDirect | 예 |
FileMaker Server | 예 |
FileMaker Cloud | 예 |
FileMaker Data API | 예 |
사용자 설정 웹 발행 | 예 |
다음 버전에서 시작됨
22.0
설명
이 스크립트 단계를 사용하면 FileMaker Server와 함께 제공되는 AI 모델 서버에서 문서(텍스트 데이터 및 PDF 파일)의 지식 캐시를 생성하고 관리할 수 있습니다. 그런 다음 검색 증강 생성(RAG)이라는 기술로 이 캐시를 활용할 수 있습니다. 이 기술을 사용하면 스크립트 단계에서는 지식 캐시에서 검색된 가장 관련성이 높은 사실과 함께 AI 모델에 프롬프트 또는 질문을 보내 모델의 응답의 신뢰성과 정확성을 개선합니다.
동작 옵션은 이 스크립트 단계가 수행할 동작을 결정합니다.
동작 | 방법 |
---|---|
데이터 추가 |
지정된 문서에서 텍스트(모든 텍스트 표현식), 경로별 PDF 파일, 현재 또는 관련 레코드에서 컨테이너 필드의 PDF 파일과 같은 RAG 데이터를 추가합니다. 이 프로세스는 다음 단계를 따릅니다.
|
프롬프트 보내기 |
지정된 RAG 공간에서 가장 관련성이 높은 데이터를 가져오기 위해 사용자 프롬프트를 AI 모델 서버로 보낸 다음, 프롬프트 템플릿 및 RAG 콘텐츠를 포함한 사용자 프롬프트를 AI 모델로 보냅니다. 이 프로세스는 다음 단계를 따릅니다.
|
데이터 제거 |
RAG 공간에서 문서를 제거합니다. 매개 변수 옵션에 지정된 경우에는 지정된 문서만 제거되며, 지정되지 않은 경우에는 RAG 공간의 모든 문서가 제거됩니다. 참고 RAG 공간에서 문서를 제거하는 동작은 취소할 수 없습니다. 원본 문서를 다시 추가해야 할 수 있으므로 미리 다른 곳에 보관하십시오. |
참고
-
이 스크립트 단계를 사용하기 전에 RAG 계정 구성 스크립트 단계를 따라 RAG 계정을 구성해야 합니다.
-
프롬프트 보내기 동작의 경우 AI 계정 구성 스크립트 단계을 따라 AI 계정도 구성해야 합니다.
-
암호화되거나 암호로 보호된 PDF 파일은 데이터 추가 동작으로 처리할 수 없습니다.
-
RAG 공간은 영구적이며 데이터 제거 동작을 사용하여 명시적으로 제거할 때까지 문서를 보관합니다.
-
RAG 공간에 이미 있는 문서와 동일한 이름의 PDF 파일을 추가하면 기존 PDF 파일은 제거되고 새 문서 ID가 지정된 새 PDF 파일이 추가됩니다. 이 동작은 경로 또는 컨테이너 필드를 통해 PDF 파일을 추가할 경우에도 동일합니다.
-
프롬프트 템플릿 이름을 지정하는 경우 이 스크립트 단계는 프롬프트 템플릿 구성 스크립트 단계를 통해 설정된 템플릿을 사용합니다. 프롬프트 템플릿은
:question:
(프롬프트 보내기 값으로 대체됨) 및:context:
(매개 변수의context_prompt
매개변수로 대체됨)와 같은 상수를 사용할 수 있습니다. -
AI 응답의 품질은 모델 및 RAG 공간에 추가된 문서의 관련성과 품질에 따라 달라집니다.
-
FileMaker WebDirect에서는 이 스크립트 단계에서 데이터 추가 동작을 사용하고 RAG 데이터가 파일에서 또는 파일에서(비동기)인 경우, 사용자가 업로드할 PDF 파일을 선택할 수 있눈 삽입 대화상자가 열립니다. 입력 파일 옵션은 무시됩니다.
예제 1 - RAG 공간에 텍스트 추가
고객 지식 베이스의 RAG 공간에 텍스트 콘텐츠를 추가합니다.
RAG 계정 구성 [ RAG 계정 이름: "customer-support-rag-account" ; 엔드포인트: "https://myserver.example.com/llm/v1/" ; API 키: "eyJh..." ; SSL 인증서 확인 ]
RAG 동작 수행 [ RAG 계정 이름 : "customer-support-rag-account" ; 공간 ID: "knowledge-base" ; 동작: 데이터 추가 ; RAG 데이터: 텍스트에서 ; "반품 및 교환 처리에 대한 고객 지원 정책 및 절차..." ]
예제 2- RAG 공간을 쿼리하라는 프롬프트 보내기
예제 1과 동일한 RAG 공간을 쿼리하라는 프롬프트를 보내고 응답을 필드에 저장합니다.
스크립트는 FileMaker Server와 함께 제공되는 AI 모델 서버를 사용하도록 RAG 계정과 AI 계정을 모두 설정합니다. 프롬프트를 보내면 스크립트는 응답 생성을 위해 사용자 설정 매개 변수를 모델에 보내고 응답을 필드로 스트림합니다.
RAG 계정 구성 [ RAG 계정 이름: "customer-support-rag-account" ; 엔드포인트: "https://myserver.example.com/llm/v1/" ; API 키: Global::RAG_API_Key ; SSL 인증서 확인]
AI 계정 구성 [ 계정 이름: "AI_Model_Server" ; 모델 제공자: 사용자 설정 ; 엔드포인트: "https://myserver.example.com/llm/v1/" ; API 키: Global::Text_Gen_API_Key ; SSL 인증서 확인 ]
RAG 동작 수행 [ RAG 계정 이름: "customer-support-rag" ; 공간 ID: "knowledge-base" ; 동작: 프롬프트 보내기; 프롬프트 보내기: "결함 있는 제품에 대한 반품 정책은 무엇입니까?" ; AI 계정 이름: "AI_Model_Server" ; 모델: Global::ModelName ; 스트림: 켬 ; 응답 대상: Customer_Support::AI_Response ; 매개 변수: "{\"temperature\": 0.3, \"max_tokens\": 500}" ]
Customer_Support::AI_Response 필드의 결과는 "결함 있는 제품에 대한 반품 정책에 따라 14일 이내에 제품을 반품하실 수 있습니다."와 같이 시작할 수 있습니다.
예제 3 - RAG 공간에서 PDF 파일 추가 및 제거
Policies.pdf라는 이름의 PDF 파일을 RAG 공간에 추가한 다음 제거합니다.
AI 모델 서버에서 사용할 RAG 계정을 구성한 후 스크립트는 파일 경로를 지정하여 Policies.pdf 파일을 RAG 공간에 추가합니다.
파일을 제거하기 전에 스크립트는 파일이 추가되었을 때 할당된 문서 ID를 찾아야 합니다. 먼저 스크립트는 GetRAGSpaceInfo 함수를 사용하여 RAG 공간에 대한 정보를 가져옵니다. 그런 다음 $id 변수의 경우 values
배열을 가져오고 While 루프를 사용하여 filename
키가 "Policies.pdf"인 요소를 찾아 해당 요소의 id
값을 반환합니다.
$idArrayToRemove를 필요한 JSON으로 설정하여 $id를 지정하면 스크립트는 매개 변수 옵션을 $idArrayToRemove로 설정하여 데이터를 제거하는 RAG 동작 수행을 호출합니다.
RAG 계정 구성[ RAG 계정 이름: "customer-support-rag-account" ; 엔드포인트: "https://myserver.example.com/llm/v1/" ; API 키: Global::RAG_API_Key ; SSL 인증서 확인 ]
RAG 동작 수행 [ RAG 계정 이름: "customer-support-rag-account" ; 공간 ID: "knowledge-base" ; 동작: 데이터 추가; RAG 데이터: 파일에서; "Policies.pdf" ]
변수 설정 [ $ragSpaceInfo ; 값: GetRAGSpaceInfo ( "customer-support-rag-account" ; "knowledge-base" ) ]
변수 설정 [ $id ; 값:
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
)
]
변수 설정 [ $idArrayToRemove ; 값: "{\"id\": [" & $id & "]}" ]
RAG 동작 수행 [ RAG 계정 이름: "customer-support-rag-account" ; 공간 ID: "knowledge-base" ; 동작: 데이터 제거; 매개 변수: $idArrayToRemove ]