본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

팔란티어 제공 모델을 사용하여 시맨틱 검색 워크플로 생성하기

팔란티어 제공 언어 모델을 사용하려면, 가입에서 AIP가 먼저 활성화되어야 합니다. AIP 개발자 기능을 사용할 권한이 있어야 합니다. 사용자 지정 모델을 사용하고 있습니까? 대신 사용자 지정 모델을 사용하여 시맨틱 검색 워크플로 생성하기를 참조하세요.

이 페이지에서는 팔란티어 제공 임베딩 모델을 사용하여 개념적인 end-to-end 시맨틱 검색 워크플로를 구축하는 과정을 설명합니다.

설명서

먼저, vector 유형이 있는 오브젝트 유형에 임베딩을 생성하고 저장해야 합니다. 그런 다음 Workshop에서 시맨틱 검색 워크플로를 설정하거나, AIP Interactive Workshop 위젯 솔루션을 구축하거나, WorkshopAIP Logic에서 사용할 사용자 지정 시맨틱 검색 함수를 생성할 수 있습니다.

전제 조건:

옵션:

임베딩 생성 및 오브젝트 유형 생성

Pipeline Builder를 사용하여 데이터셋의 텍스트를 Text to Embeddings 표현식으로 벡터로 임베딩합니다. 표현식은 문자열을 팔란티어 제공 모델 중 하나를 사용하여 벡터로 변환합니다. 이 경우에는 text-embedding-ada-002 임베딩 모델을 사용합니다.

Text to Embedding

이 임베딩은 온톨로지에 벡터 속성으로 추가할 수 있습니다.

Pipeline Builder 출력 오브젝트 속성에서 벡터 속성 구성

팔란티어 제공 모델을 사용하여 임베딩을 생성하는 데 더 많은 제어를 원한다면, Python Transforms 내의 언어 모델을 참조하세요.

Workshop 내에서 KNN 오브젝트셋을 사용하여 간단한 시맨틱 검색 워크플로 생성 (코드 없음)

Workshop 내에서 KNN 오브젝트셋을 구성하는 것은 간단한 시맨틱 검색 워크플로를 구축하는 쉬운 방법입니다.

  1. 오브젝트셋 변수를 생성하고 임베딩 속성이 있는 오브젝트 유형을 선택합니다.
  2. + On a property 옵션을 선택한 다음 메뉴에서 속성 목록에서 임베딩 속성을 선택합니다.
  3. 선택한 후 K-nearest-neighbors 구성이 표시되어야 합니다. 이 구성이 나타나지 않으면 선택한 속성이 임베딩 속성인지 확인하세요.

Workshop KNN 구성

이 패널에서 다음을 구성할 수 있습니다:

  • K-value: 시맨틱 검색에서 반환할 오브젝트 수를 결정하는 1-100 사이의 숫자.
  • Query: 시맨틱 검색을 수행할 때 사용할 문자열 변수.
  1. 다음으로, 문자열 선택기 위젯을 생성하고 위에서 본 KNN 쿼리 옵션에 출력 변수를 추가합니다.
  2. 마지막으로, 오브젝트 테이블 위젯을 추가하고 입력 변수를 새로 생성된 KNN 오브젝트셋으로 구성합니다.

Workshop KNN 시맨틱 검색

보다 맞춤화된 시맨틱 검색 로직을 원하면, 함수에 대한 섹션을 참조하세요.

AIP Interactive 위젯 사용 (코드 없음)

AIP Interactive Widget은 코드가 필요 없으므로 오브젝트 간 시맨틱 검색을 시작하는 데 유용한 도구입니다. 기능에 대한 더 많은 제어를 사용하여 시맨틱 검색 포함에 대해 자세히 알아보세요.

먼저, Workshop 모듈에 AIP Interactive Widget을 추가하세요.

AIP Interactive 위젯 초기 화면

시작점으로, 예를 들어 “직무는 사용자 질문에 대답하기 위해 고객 인보이스 시맨틱 검색 도구를 사용하는 것입니다.” 라는 프롬프트를 추가하세요. 아래 이미지와 같이 도구 추가 옵션을 사용하여 Ontology 시맨틱 검색 도구를 추가하세요:

AIP Interactive 위젯 시맨틱 검색 도구 구성

이 초기 설정은 Interactive 위젯에 오브젝트를 시맨틱 검색하도록 요청할 수 있게 해줍니다. AIP Interactive 위젯 내의 도구에 대한 추가 문서를 검토하여 기타 구성 옵션을 확인하세요.

Workshop 또는 AIP Logic에서 사용할 함수 생성

타입스크립트 리포지토리를 생성하고 오브젝트 유형을 쿼리하는 함수를 생성할 수 있습니다. 전체 목표는 사용자 입력을 받아 앞서 사용한 같은 팔란티어 제공 모델을 사용하여 벡터를 생성한 다음 오브젝트 유형에 대해 KNN 검색을 수행하는 것입니다. 팔란티어 제공 모델을 가져오는 방법에 대한 자세한 정보는 Functions 내의 언어 모델을 참조하세요.

대체

아래 코드 스니펫에서 ObjectApiName 인스턴스를 고유한 ObjectType으로 모두 바꿉니다. 식별자는 때로는 첫 글자가 소문자인 objectApiName으로 나타날 수 있습니다.

functions-typescript/src/index.ts

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import { Function, Integer } from "@foundry/functions-api"; import { Objects, ObjectApiName } from "@foundry/ontology-api"; import { TextEmbeddingAda_002 } from "@foundry/models-api/language-models" export class MyFunctions { // 관련 객체 찾기 함수 @Function() public async findRelevantObjects( query: string, // 질의 문자열 kValue: Integer, // 가장 가까운 이웃 개수 ): Promise<ObjectApiName[]> { // 질의 문자열이 비어 있을 경우 빈 배열 반환 if (query.length < 1) { return [] } // 질의 문자열에 대한 임베딩 생성 const embedding = await TextEmbeddingAda_002.createEmbeddings({inputs: [query]}).then(r => r.embeddings[0]);; // 가장 가까운 이웃 객체 찾아서 반환 return Objects.search() .objectApiName() // 가장 가까운 이웃 객체 찾기 .nearestNeighbors(obj => obj.embeddings.near(embedding, {kValue: kValue})) .orderByRelevance() // 관련성 순으로 정렬 .take(kValue); // 상위 kValue개 객체 반환 } }

이 시점에서, 자연어를 사용해 오브젝트를 쿼리하는 시맨틱 검색을 실행할 수 있는 Function이 있습니다. Foundry 내에서 어디에서나 Function을 사용할 수 있도록 Function 발행하는 것을 잊지 마세요.

Workshop에서 시맨틱 검색 Functions 사용하기

  1. Workshop 애플리케이션 생성부터 시작합니다.
  2. 발행된 KNN 문서 가져오기 Function의 입력값으로 사용될 텍스트 입력 위젯을 추가합니다.
  3. 아래와 같이 표시된 입력값과 Function에서 생성된 오브젝트셋을 입력으로 가지는 오브젝트 목록 위젯을 추가합니다:
오브젝트셋을 생성하는 KNN Function
  1. kValue지정된 제한 내에서 원하는 결과 수로 설정합니다.

AIP Logic에서 시맨틱 검색 Functions 사용하기

발행된 Function을 AIP Logic 내 도구로 추가합니다. 이와 같은 프롬프트를 사용해 언어 모델에 도구 사용을 지시합니다:

fetchRelevantObjects 도구를 kValue가 5인 상태로 사용해 가장 관련 있는 오브젝트를 찾습니다. 도구를 사용할 때 쿼리 주변에 따옴표를 추가하는 것을 잊지 마세요.