찾기 세트에 임베딩 삽입

찾기 세트의 모든 레코드의 경우, 원본 필드에서 임베딩 모델로 데이터를 보내고 반환된 벡터 표현을 대상 필드에 삽입합니다.

다음도 참조하십시오. 

옵션 

  • 계정 이름은 이 스크립트 단계에서 사용할 AI 계정의 텍스트 표현식입니다. 현재 파일에서 AI 계정 구성 스크립트 단계를 사용하여 계정을 설정하고 이 스크립트 단계가 실행되기 전에 언제든지 이 이름을 할당하십시오.

  • 임베딩 모델은 임베딩 벡터를 생성하는 모델의 이름입니다. 모델 제공자에서 사용할 수 있는 텍스트 표현식으로 모델 이름을 지정하십시오.

  • 원본 필드는 이 스크립트 단계에서 임베딩 벡터로 변환하기 위해 모델에 값을 보내는 텍스트 필드 또는 컨테이너 필드입니다. 필드가 비어 있으면 모델에 아무것도 전송되지 않으며 대상 필드는 변경되지 않습니다.

  • 대상 필드는 반환된 임베딩 벡터를 삽입할 필드를 지정합니다. 텍스트 필드를 지정하면, 반환된 데이터는 텍스트로 저장됩니다. 컨테이너 필드를 지정하면, 반환된 데이터는 이진 데이터로 저장됩니다. 이는 텍스트로 저장될 때보다 작을 수 있으며 임베딩 벡터로 수행되는 추가 처리를 개선할 수 있습니다.

  • 대상 콘텐츠 대치 대상 필드의 내용을 바꿉니다(있는 경우). 이 옵션이 꺼져 있으면 필드가 비어 있는 경우에만 대상 필드에 임베딩 데이터가 추가됩니다. 그렇지 않으면 필드는 변경되지 않습니다. 원본 필드의 내용이 자주 바뀌는 경우, 이 옵션을 켜는 것이 유용합니다.

  • 매개 변수는 모델로 전송된 요청의 크기, 수 및 빈도에 대한 제한을 지정하는 JSON 대상체의 텍스트 표현식입니다. 이를 사용하여 데이터의 양, 사용 중인 모델, 모델 공급자의 토큰 제한 및 모델이 실행 중인 기계의 기술 사양(코어, RAM 등)에 따라 스크립트를 최적화하십시오. 자세한 내용은 설명을 참조하십시오.

호환성 

제품 지원
FileMaker Pro 예
FileMaker Go 예
FileMaker WebDirect 예
FileMaker Server 예
FileMaker Cloud 예
FileMaker Data API 예
사용자 설정 웹 발행 예

다음 버전에서 시작됨 

21.0

설명 

현재 찾기 세트의 모든 레코드에 대해, 이 스크립트 단계는 대상 필드에 저장된 임베딩 벡터로 변환하기 위해 원본 필드의 값을 지정된 모델로 보냅니다.

임베딩 벡터를 사용하는 방법의 한 가지 예는 이 스크립트 단계 또는 임베딩 삽입 스크립트 단계에서 생성된 벡터 데이터를 쿼리할 수 있는 시맨틱 찾기 수행 스크립트 단계입니다.

이미지 및 텍스트 임베딩 벡터의 경우, FileMaker Pro와 별도로 제공되거나 FileMaker Server와 함께 설치된 오픈 소스 모델 서버에서 지원하는 모델을 사용할 수 있습니다. Claris 엔지니어링 블로그를 참조하십시오.

매개 변수 옵션의 경우, 필요하다면 JSON 대상체에서 다음 키와 값을 사용하여 이 스크립트 단계의 동작을 조정할 수 있습니다. 키가 지정되지 않았거나 매개 변수 옵션을 사용하지 않으면 기본값이 사용됩니다.

매개 변수 키

설명

데이터 유형1

기본값

값의 범위

OpenAI만

MaxRecPerCall

각 API 호출로 처리할 최대 레코드 수

JSONNumber

20

1부터 500까지

—

MaxRetryPerWorker

API 호출이 실패할 경우 최대 재시도 횟수

JSONNumber

5

1부터 100까지

—

MaxWaitPerRetry

OpenAI API 호출 사이의 최대 대기 시간(밀리초 단위)입니다. 이는 OpenAI가 분당 받는 요청이 너무 많은 경우에만 사용됩니다. 이 경우, 이 스크립트 단계는 OpenAI API 호출 간에 MaxWaitPerRetry까지 기다립니다. 대기 시간이 이 최대치를 초과하면, 이 스크립트 단계는 중지되고 오류를 반환합니다.

JSONNumber

60,000

20부터 3600000까지

예

TruncateTokenLimit

TruncateEnabled가 켜져 있을 때 원본 필드에서 입력을 삭제할 토큰 수입니다.

JSONNumber

8,185

0부터 100000까지

예

TruncateEnabled

OpenAI로 보내기 전에 1(true)는 원본 필드에서 TruncateTokenLimit까지 입력을 자릅니다.

참고  입력을 자르면 '시맨틱 찾기 수행' 결과의 정확도가 떨어질 수 있습니다.

JSONNumber

1

0 또는 1

예

  1. JSONSetElement 함수를 사용하여 JSON 대상체를 만드는 경우, 유형 매개 변수에 표시된 상수를 사용하십시오.

예를 들어, 이 JSON 대상체는 매개 변수 옵션의 모든 키를 설정합니다.

복사
{
    "MaxRecPerCall" : 40,
    "MaxRetryPerWorker" : 10,
    "MaxWaitPerRetry" : 300000,
    "TruncateTokenLimit" : 4000,
    "TruncateEnabled" : 1
}

참고 

  • 호스팅된 FileMaker Pro 파일의 임베딩 벡터 업데이트를 정기적으로 자동화하려면, 사용자 상호 작용 없이 FileMaker 스크립트를 실행하도록 호스트의 일정을 설정할 수 있습니다. FileMaker Server 도움말 또는 FileMaker Cloud 도움말에서 FileMaker 스크립트 일정을 참조하십시오.

예제 1

AI 계정을 구성하고, 미팅 세부 정보 레이아웃으로 이동하여 모든 레코드를 표시한 다음, Meetings::Note 필드에 있는 텍스트의 임베딩 벡터를 가져와 Meetings::Note_Embedding 컨테이너 필드에 이진 데이터로 저장합니다. 대상 콘텐츠 대치 옵션이 켜져 있기 때문에 Meetings::Note_Embedding 은 이미 데이터가 포함되어 있더라도 업데이트됩니다.

복사
AI 계정 구성 [계정 이름: "my-account" ; 모델 제공자: OpenAI ; API 키: "sk-
RZCtpWT..." ]

레이아웃으로 이동 [ "미팅 세부 정보"(미팅) ; 애니메이션: 없음 ] 
모든 레코드 표시  

찾기 세트에 임베딩 삽입 [ 계정 이름: "my-account" ; 임베딩 모델: "text-embedding-3-small" ; 
원본 필드: Meetings::Note ; 대상 필드: Meetings::Note_Embedding ; 대상 콘텐츠 대치 ]

예제 2 

AI 계정을 구성하고, 미팅 세부 정보 레이아웃으로 이동한 다음, Meetings::Title 필드에 "상태"가 포함된 레코드를 찾습니다. 이 찾기 세트의 경우, Meetings::Note 필드에 있는 텍스트의 임베딩 벡터를 가져오고 이미 존재하는 데이터가 없는 경우 Meetings::Note_Embedding 컨테이너 필드에 이진 데이터로 저장합니다(대상 콘텐츠 대치가 꺼져 있음). 또한 호출당 레코드, 재시도 횟수 및 재시도 사이의 시간을 늘리고 토큰 제한을 낮추려면 매개 변수 옵션을 설정합니다.

복사
AI 계정 구성 [계정 이름: "my-account" ; 모델 제공자: OpenAI ; API 키: "sk-
RZCtpWT..." ]  

레이아웃으로 이동 [ "미팅 세부 정보"(미팅) ; 애니메이션: 없음 ] 
찾기 모드 돌입 [ 일시 정지: 꺼짐 ] 
필드 설정 [ Meetings::Status ; "완료" ]
찾기 수행 [ ]
  
찾기 세트에 임베딩 삽입 [ 계정 이름: "my-account" ; 임베딩 모델: "text-embedding-3-small" ; 
원본 필드: Meetings::Note ; 대상 필드: Meetings::Note_Embedding ;  
매개 변수: JSONSetElement ( "" ;
    ["MaxRecPerCall" ; 40 ; JSONNumber] ; 
    ["MaxRetryPerWorker" ; 10 ; JSONNumber] ; 
    ["MaxWaitPerRetry" ; 300000 ; JSONNumber] ;
    ["TruncateTokenLimit" ; 4000 ; JSONNumber] ;
    ["TruncateEnabled" ; 1 ; JSONNumber]
) ]

예제 3

사용자 설정 모델 제공자의 AI 계정을 구성하고, '미팅 세부 정보' 레이아웃으로 이동하여 모든 레코드를 표시한 다음, 각 레코드에 대해 이미지 임베딩 모델을 사용하여 Meetings::Image 컨테이너 필드에 있는 이미지의 임베딩 벡터를 가져와서 Meetings::Image_Embedding 컨테이너 필드에 이진 데이터로 저장합니다.

복사
AI 계정 구성 [ 계정 이름: "my-account" ; 모델 제공자: 사용자 설정 ; 엔드포인트: "https://my-server.example.com:8080/" ; SSL 인증서 확인 ; API 키: Global::API_Key ]
        
레이아웃으로 이동 [ "미팅 세부 정보" (미팅) ; 애니메이션: 없음 ]
모든 레코드 보기

찾기 세트에 임베딩 삽입 [ 계정 이름: "my-account" ; 임베딩 모델: "clip-ViT-L-14" ; 원본 필드: Meetings::Image ; 대상 필드: Meetings::Image_Embedding ; 대상 콘텐츠 대치 ]