자연어로 찾기 수행
자연어 프롬프트와 현재 레이아웃의 필드 목록을 모델에 전송하고, FileMaker 찾기 요청을 반환하고 찾기를 수행합니다.
다음도 참조하십시오.
옵션
-
계정 이름은 이 스크립트 단계에서 사용할 AI 계정의 텍스트 표현식입니다. 현재 파일에서 AI 계정 구성 스크립트 단계를 사용하여 계정을 설정하고 이 스크립트 단계가 실행되기 전에 언제든지 이 이름을 할당하십시오.
-
모델은 사용할 텍스트 생성 모델의 이름입니다. 모델 이름을 텍스트 표현식으로 지정합니다. 지원되는 모델은 FileMaker 기술 사양을 참조하십시오.
-
프롬프트는 모델에 보낼 자연어 요청 또는 질문에 대한 텍스트 표현식입니다.
-
가져오기는 모델에서 검색할 응답 유형을 지정합니다.
-
결과 세트: 모델에 의해 생성된 찾기 요청을 수행하고 현재 창에서 결과 세트를 업데이트합니다.
-
JSON으로 결과 세트: 모델에 의해 생성된 찾기 요청을 수행하고 결과 세트의 데이터를 JSON 객체로 반환합니다. 현재 창에서 결과 세트를 변경하지 않습니다.
-
JSON으로 요청 찾기: 찾기를 수행하지 않습니다. 모델에 의해 생성된 FileMaker 찾기 요청을 JSON 객체로 반환합니다.
-
-
프롬프트 템플릿 이름은 프롬프트 템플릿 구성 스크립트 단계를 사용하여 구성된 사용자 설정 프롬프트 템플릿의 이름을 지정합니다. 이 옵션을 사용하여 AI 모델에서 최적의 응답을 달성하는 데 도움이 되는 추가 프롬프트를 설계합니다.
-
매개 변수는 모델 제공자가 지원하는 추가 매개 변수에 대한 키-값 쌍으로 구성된 JSON 객체의 텍스트 표현식입니다. 예를 들어 다음과 같습니다.
{"온도": 0.7, "seed": 42}
. 지원되는 매개 변수의 키 이름과 유효한 범위는 모델 공급자의 문서를 참조하십시오.context_prompt
키는 메인 프롬프트 전에 모델에 추가 지침이나 컨텍스트를 삽입할 수 있는 특수 매개 변수입니다. 예:{"context_prompt": "Treat 'today' as 2025-06-26"}
. -
응답 대상은 스크립트 단계의 결과를 저장할 필드 또는 변수를 지정합니다.
호환성
제품 | 지원 |
FileMaker Pro | 예 |
FileMaker Go | 예 |
FileMaker WebDirect | 예 |
FileMaker Server | 예 |
FileMaker Cloud | 예 |
FileMaker Data API | 예 |
사용자 설정 웹 발행 | 예 |
다음 버전에서 시작됨
22.0
설명
이 스크립트 단계를 사용하면 찾기 수행 스크립트 단계에서와 같이 찾기 기준을 지정하지 않고 자연어를 사용하여 데이터에 대한 FileMaker 찾기 요청을 수행할 수 있습니다. AI 모델을 사용하여 자연어 프롬프트를 해석하고, 현재 레이아웃에서 사용 가능한 필드를 분석하고, 적절한 FileMaker 찾기 요청(해당되는 경우 정렬 순서)을 생성합니다.
이 스크립트 단계와 모델 간의 상호 작용은 일반적으로 다음 단계를 따릅니다.
-
이 스크립트 단계는 현재 레이아웃에서 찾기로 액세스할 수 있는 모든 필드를 식별합니다. 이 필드에 대한 정보(GetFieldsOnLayout 함수의 출력과 유사)를 프롬프트와 함께 지정된 모델로 보냅니다. (옵션 프롬프트 템플릿과
context_prompt
매개 변수에 제공된 프롬프트가 포함됩니다.) -
모델은 프롬프트 및 레이아웃 필드 정보를 분석한 다음 요청된 레코드를 검색하도록 설계된 FileMaker 찾기 요청 및 정렬 순서를 생성합니다.
-
이 스크립트 단계는 생성된 찾기 요청 및 정렬 순서를 받습니다.
-
스크립트 단계는 가져오기 옵션을 기반으로 작업을 수행합니다.
가져오기 옵션은 모델이 찾기 요청을 생성한 후 발생하는 사항을 결정합니다.
가져오기 | 방법 |
---|---|
결과 세트 |
현재 레이아웃에서 생성된 찾기 요청을 수행하고 4단계에서 결과 세트를 업데이트합니다. 모델이 정렬 순서를 생성한 경우, 결과된 세트도 그에 따라 정렬됩니다. 이 옵션을 선택하면 응답 대상이 사용되지 않습니다. |
JSON으로 결과 세트 |
생성된 찾기 요청을 수행하고, 4단계에서 결과 세트의 데이터를 응답 대상의 JSON 객체로 반환합니다. JSON 구조는 FileMaker Data API를 통해 수행된 찾기 요청에 대한 응답과 동일합니다. 여기에는 결과 세트의 데이터, 데이터 정보(결과 수 및 총 레코드 수 등) 및 모든 메시지(오류 또는 경고)가 포함됩니다. 아래 예제와 FileMaker Data API 실행 스크립트 단계의 예제를 참조하십시오. |
JSON으로 찾기 요청 |
찾기를 수행하지 않습니다. 4단계에서는 생성된 FileMaker 찾기 요청을 반환하고 응답 대상에서 JSON 객체로 정렬 순서를 반환합니다. 이 옵션은 주로 모델이 생성한 찾기 요청을 정확히 확인하는 디버깅에 유용합니다. JSON 구조는 찾기 요청을 수행하기 위해 FileMaker Data API 호출에 사용되는 |
참고
-
현재 레이아웃에서 찾기로 액세스할 수 있는 필드만 모델로 전송됩니다. 찾기로 액세스할 수 있는 필드를 결정하는 데 사용되는 기준에 대한 자세한 내용은 이 스크립트 단계와 동일한 기준을 사용하는 GetFieldsOnLayout 함수를 참조하십시오. 모델에 전송된 동일한 정보(레이아웃 이름, 필드 이름, 유형 및 설명)는 GetFieldsOnLayout에 의해 반환됩니다.
-
데이터베이스 관리 대화 상자에 입력한 필드 주석은 모델로 전송된 필드 정보와 함께 포함됩니다. 유용한 찾기 요청을 생성하는 모델의 능력을 향상시키기 위해 주석을 사용하여 필드의 목적을 설명할 수 있습니다. 필드 정의 및 변경하기를 참조하십시오. 모델에 전송되는 필드의 주석 제어에 대한 자세한 내용은 GetFieldsOnLayout 함수를 참조하십시오.
-
프롬프트 템플릿 이름을 지정하는 경우 이 스크립트 단계는 프롬프트 템플릿 구성 스크립트 단계를 통해 구성된 템플릿을 사용합니다. 프롬프트 템플릿은
:schema:
(레이아웃 필드 정보로 대체됨),:question:
(프롬프트로 대체됨) 및:context:
(매개 변수의context_prompt
매개 변수로 대체됨)와 같은 상수를 사용할 수 있습니다. -
AI 모델이 여러 언어로 작동할 수 있기 때문에 이 스크립트 단계는 다국어 찾기에 사용할 수 있습니다.
-
관련 레코드가 발견되지 않으면 응답 대상(사용된 경우)에 메시지가 반환되고 Get(마지막 오류) 함수는 오류 401("No records match the request")을 반환합니다.
-
이 스크립트 단계는 집계 함수가 필요한 찾기를 수행할 수 없습니다(예: 필드에서 가장 높은 값을 가진 레코드 찾기). 그러나 모델은 해당 레코드를 식별하는 데 도움이 되는 정렬 기준을 포함하는 찾기 요청을 반환할 수 있습니다(예: 가격 필드별 내림차순으로 레코드 정렬).
예제 1
AI 계정을 구성하고 연락처 레이아웃으로 이동한 다음 이 스크립트 단계를 사용하여 현재 레이아웃에서 "Alea"라는 연락처를 검색합니다. 이 스크립트 단계는 현재 레이아웃에서 찾을 수 있는 필드와 "Alea라는 연락처 찾기" 프롬프트를 모델로 보냅니다. 모델은 찾기 요청(이름 필드의 "Alea"에 대한 요청일 수 있음)을 다시 보내고 이 스크립트 단계는 현재 창에서 결과 세트를 업데이트하여 찾기를 수행합니다.
AI 계정 구성 [ 계정 이름: "my-account" ; 모델 제공자: OpenAI ; API 키: "sk-..." ]
레이아웃으로 이동 [ "Contacts"(연락처) ; 애니메이션: 없음 ]
자연어로 찾기 수행 [ 계정 이름: "my-account" ; 모델: "gpt-4o" ; 프롬프트: "Find contacts named Alea" ; 가져오기: 결과 세트 ]
예제 2
AI 계정을 구성하고 사용자에게 쿼리를 요청한 다음 찾기를 수행하고 $$FoundSetData 변수에서 결과 세트의 데이터를 JSON으로 반환합니다. 쿼리는 현재 레이아웃에서 수행됩니다.
AI 계정 구성 [ 계정 이름: "my-account" ; 모델 제공자: OpenAI ; API 키: "sk-..." ]
레이아웃으로 이동 [ "Products"(제품) ; 애니메이션: 없음 ]
사용자 설정 대화상자 보기 [ "Find products:" ; $$UserPrompt ]
If [ not IsEmpty ( $$UserPrompt ) ]
자연어로 찾기 수행 [ 계정 이름: "my-account" ; 모델: "gpt-4o" ; 프롬프트: $$UserPrompt ; 가져오기: JSON으로 결과 세트 ; 응답 대상: $$FoundSetData ]
사용자 설정 대화상자 보기 [ "Found Set Data:" ; JSONFormatElements ( $$FoundSetData ) ]
End If
프롬프트가 "Find products with price less than 6, and sort them in descending order by price"라고 가정한, $$FoundSetData(JSONFormatElements를 사용하여 포맷됨)에 저장된 가능한 출력:
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"Price" : 5.99,
"ProductID" : 107,
"ProductName" : "Safety Glasses",
"Status" : "In Stock"
},
"modId" : "0",
"portalData" : {},
"recordId" : "61"
},
{
"fieldData" :
{
"Price" : 5.5,
"ProductID" : 122,
"ProductName" : "Putty Knife",
"Status" : "In Stock"
},
"modId" : "0",
"portalData" : {},
"recordId" : "76"
}
],
"dataInfo" :
{
"database" : "Ordering System",
"foundCount" : 2,
"layout" : "Products",
"returnedCount" : 2,
"table" : "Products",
"totalRecordCount" : 42
}
}
}
예제 3
AI 계정을 구성한 다음, 찾기 요청에 대해 미리 정의된 프롬프트를 사용하는 사용자 설정 프롬프트 템플릿을 구성합니다. 미리 정의된 프롬프트는 찾기 요청에 대한 JSON 형식을 설명하고 다음을 포함합니다. 다음 정보를 컨텍스트로 사용합니다. \":context:\"
.
제품 레이아웃으로 이동하고 $$Today 변수를 나중에 컨텍스트에 사용할 자연어 문구로 설정한 후, 이 스크립트 단계는 프롬프트 템플릿에서 사용된 :context:
상수를 매개 변수의 context_prompt
키의 값으로 대체합니다. 그런 다음 "Find records created today sorted by product name" 프롬프트와 함께 모델에 보냅니다.
모델은 디버깅 목적으로 사용할 수 있는 $$FindRequestJSON 변수의 JSON 객체로 찾기 요청을 반환합니다.
AI 계정 구성 [ 계정 이름: "my-account" ; 모델 제공자: OpenAI ; API 키: "sk-..." ]
프롬프트 템플릿 구성 [ 템플릿 이름: "FindToday" ; 모델 제공자: OpenAI ; 템플릿 유형: 찾기 요청 ; 찾기 요청 프롬프트: "Generate and only return a JSON layout query to perform a find request..." ]
레이아웃으로 이동 [ "Products"(제품) ; 애니메이션: 없음 ]
변수 세트 [ $$Today ; 값: "Today is " & 가져오기 ( CurrentDate ) ]
자연어로 찾기 수행 [ 계정 이름: "my-account" ; 모델: "gpt-4o" ; 프롬프트: "Find records created today sorted by product name" ; 가져오기: JSON으로 찾기 요청 ; 매개 변수: JSONSetElement ( "{}" ; "context_prompt" ; $$Today ; JSONString ) ; 응답 대상: $$FindRequestJSON ]
사용자 설정 대화상자 보기 [ "Generated Find Request" ; JSONFormatElements ( $$FindRequestJSON ) ]
현재 날짜가 2025-06-26 및 레이아웃에 CreationDate 및 ProductName 필드가 있다고 가정한, $$FindRequestJSON(JSONFormatElements를 사용하여 포맷됨)에 저장된 가능한 출력:
{
"layouts" : "Products",
"query" :
[
{
"Products::CreationDate" : "2025-06-26"
}
],
"sort" :
[
{
"fieldName" : "Products::ProductName",
"sortOrder" : "ascend"
}
]
}