챗봇 검색 문맥
검색 문맥(Retrieval context)은 새 사용자 메시지마다 정해진 방식으로 실행되며 검색한 정보를 LLM에 전달합니다. 온톨로지 문맥, 문서 문맥과 함수 기반 문맥을 여러 개 구성할 수 있습니다. 실행 여부를 모델의 도구 선택에 맡기는 구성과 구분됩니다.
온톨로지 문맥
정해진 N개 객체를 제공하거나, 벡터 임베딩 속성이 있는 객체 유형에서 질문과 관련성이 높은 K개를 의미 기반으로 검색합니다. Static input은 전체 객체 유형을 시작 범위로 사용합니다. Variable input은 애플리케이션 상태로 전달한 필터링된 객체 집합을 사용할 수 있습니다.
각 객체에서 LLM에 출력할 속성을 선택합니다. 기본적으로 미디어 참조나 벡터 임베딩처럼 출력할 수 없는 속성을 제외한 모든 속성이 선택됩니다. 필요한 정보만 선택하여 문맥 크기를 관리합니다. 검색 결과 객체 집합과 인용 선택 결과를 각각 애플리케이션 변수로 연결할 수 있습니다.
문서 문맥
Threads에서 문서를 대화에 추가하는 것과 같은 방식으로 문서를 선택합니다. Full document text mode는 문서 전체 텍스트를 전달합니다. Relevant chunks mode는 의미 기반 검색으로 가장 관련된 K개 조각을 전달합니다.
Relevant chunks mode는 베타 기능이므로 플랫폼 인스턴스에서 제공되지 않거나 동작이 바뀔 수 있습니다. 접근이 필요하면 Palantir 담당자나 Support에 문의합니다.
함수 기반 검색
기본 검색으로 처리할 수 없는 요구사항은 함수로 구현합니다. 예를 들어 키워드 검색과 의미 기반 검색을 함께 적용하는 검색을 작성할 수 있습니다.
TypeScript v1 코드 저장소에서 AipAgentsContextRetrieval 함수 인터페이스를 가져옵니다. TypeScript v2 저장소는 함수 인터페이스를 지원하지 않습니다. 구현 함수는 @AipAgentsContextRetrieval()을 사용하고 messages: MessageList만 필수 입력으로 받아야 합니다. 반환 자료형은 RetrievedContext이며 필수 retrievedPrompt 문자열을 반환합니다. 이 문자열은 챗봇 시스템 프롬프트에 삽입됩니다.
다음은 인터페이스의 입력과 반환 형태를 보여 주는 예시입니다. ...는 업무별 검색 처리가 생략된 부분이며, 실제 함수에서는 메시지를 처리하고 검색 결과를 retrievedPrompt에 구성해야 합니다.
@AipAgentsContextRetrieval()
public exampleRetrievalFunction(messages: MessageList): RetrievedContext {
let combinedText: string[] = [];
messages.forEach((message) => {
...
})
return {
retrievedPrompt: "..."
}
}
함수를 게시한 뒤 Retrieval context > Function-backed context에서 선택합니다. 검색 로직에 AIP Logic을 사용하려면 인터페이스를 충족하는 TypeScript 함수를 작성하여 그 안에서 Logic 함수를 호출하는 경로를 사용합니다. Logic에서 검색 인터페이스를 직접 구현하는 기능을 사용 가능한 기능으로 가정하지 않습니다.
함수 입력과 애플리케이션 변수
추가 입력은 선택적 인자로 선언해야 합니다. 지원하는 애플리케이션 변수는 문자열과 객체 집합입니다. 예를 들어 messages: MessageList 다음에 movieTitle?: string, movieSet?: ObjectSet<Movie>를 둘 수 있습니다. Movie에는 Ontology Manager에 표시된 객체 유형 API 이름을 사용합니다.
선택적 문자열과 객체 집합 입력을 추가한 시그니처는 다음과 같습니다. 이 예시도 함수 본문을 생략한 인터페이스 설명이며 완성된 검색 구현은 아닙니다.
@AipAgentsContextRetrieval()
public movieRetrievalFunction(messages: MessageList, movieTitle?: string, movieSet?: ObjectSet<Movie>): RetrievedContext {
...
}
Application variables에서 변수를 만들고 함수 입력과 자료형이 일치하도록 매핑합니다. 이 방식으로 현재 앱 상태를 검색에 사용할 수 있습니다.
사용자 정의 인용
함수 기반 문맥에는 인용이 자동 제공되지 않습니다. 반환 프롬프트에 관련 정보와 인용 XML 형식을 포함하고 해당 형식으로 응답하도록 지시합니다. 예를 들어 문서 조각을 나타내는 객체 집합에서 가장 관련된 다섯 개를 검색한 뒤 각 조각의 출처와 PDF 인용 형식을 함께 반환할 수 있습니다. 객체 인용 선택 시 Workshop 변수를 갱신하는 설정도 적용할 수 있습니다.