찾기 세트에 임베딩 삽입

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

다음도 참조하십시오. 

옵션 

  • 계정 이름은 이 스크립트 단계에서 사용할 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 ; 대상 콘텐츠 대치 ]