팔란티어 제공 언어 모델을 사용하려면, 가입에서 AIP가 먼저 활성화되어야 합니다. AIP 개발자 기능을 사용할 권한이 있어야 합니다. 사용자 지정 모델을 사용하고 있습니까? 대신 사용자 지정 모델을 사용하여 시맨틱 검색 워크플로 생성하기를 참조하세요.
이 페이지에서는 팔란티어 제공 임베딩 모델을 사용하여 개념적인 end-to-end 시맨틱 검색 워크플로를 구축하는 과정을 설명합니다.
먼저, vector
유형이 있는 오브젝트 유형에 임베딩을 생성하고 저장해야 합니다. 그런 다음 Workshop에서 시맨틱 검색 워크플로를 설정하거나, AIP Interactive Workshop 위젯 솔루션을 구축하거나, Workshop 및 AIP Logic에서 사용할 사용자 지정 시맨틱 검색 함수를 생성할 수 있습니다.
전제 조건:
옵션:
Pipeline Builder를 사용하여 데이터셋의 텍스트를 Text to Embeddings 표현식으로 벡터로 임베딩합니다. 표현식은 문자열을 팔란티어 제공 모델 중 하나를 사용하여 벡터로 변환합니다. 이 경우에는 text-embedding-ada-002
임베딩 모델을 사용합니다.
이 임베딩은 온톨로지에 벡터 속성으로 추가할 수 있습니다.
팔란티어 제공 모델을 사용하여 임베딩을 생성하는 데 더 많은 제어를 원한다면, Python Transforms 내의 언어 모델을 참조하세요.
Workshop 내에서 KNN 오브젝트셋을 구성하는 것은 간단한 시맨틱 검색 워크플로를 구축하는 쉬운 방법입니다.
+ On a property
옵션을 선택한 다음 메뉴에서 속성 목록에서 임베딩 속성을 선택합니다.이 패널에서 다음을 구성할 수 있습니다:
보다 맞춤화된 시맨틱 검색 로직을 원하면, 함수에 대한 섹션을 참조하세요.
AIP Interactive Widget은 코드가 필요 없으므로 오브젝트 간 시맨틱 검색을 시작하는 데 유용한 도구입니다. 기능에 대한 더 많은 제어를 사용하여 시맨틱 검색 포함에 대해 자세히 알아보세요.
먼저, Workshop 모듈에 AIP Interactive Widget을 추가하세요.
시작점으로, 예를 들어 “직무는 사용자 질문에 대답하기 위해 고객 인보이스 시맨틱 검색 도구를 사용하는 것입니다.” 라는 프롬프트를 추가하세요. 아래 이미지와 같이 도구 추가 옵션을 사용하여 Ontology 시맨틱 검색 도구를 추가하세요:
이 초기 설정은 Interactive 위젯에 오브젝트를 시맨틱 검색하도록 요청할 수 있게 해줍니다. AIP Interactive 위젯 내의 도구에 대한 추가 문서를 검토하여 기타 구성 옵션을 확인하세요.
타입스크립트 리포지토리를 생성하고 오브젝트 유형을 쿼리하는 함수를 생성할 수 있습니다. 전체 목표는 사용자 입력을 받아 앞서 사용한 같은 팔란티어 제공 모델을 사용하여 벡터를 생성한 다음 오브젝트 유형에 대해 KNN 검색을 수행하는 것입니다. 팔란티어 제공 모델을 가져오는 방법에 대한 자세한 정보는 Functions 내의 언어 모델을 참조하세요.
아래 코드 스니펫에서 ObjectApiName
인스턴스를 고유한 ObjectType으로 모두 바꿉니다. 식별자는 때로는 첫 글자가 소문자인 objectApiName
으로 나타날 수 있습니다.
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 발행하는 것을 잊지 마세요.
kValue
를 지정된 제한 내에서 원하는 결과 수로 설정합니다.발행된 Function을 AIP Logic 내 도구로 추가합니다. 이와 같은 프롬프트를 사용해 언어 모델에 도구 사용을 지시합니다:
fetchRelevantObjects 도구를 kValue가 5인 상태로 사용해 가장 관련 있는 오브젝트를 찾습니다. 도구를 사용할 때 쿼리 주변에 따옴표를 추가하는 것을 잊지 마세요.