HyDE 통합
HyDE 통합
LangChain JavaScript로 HyDE 검색기와 통합하는 방법을 알아봅니다.
이 예제는 이 논문에 설명된 대로 Hypothetical Document Embeddings(HyDE)를 구현한 HyDE Retriever를 사용하는 방법을 보여줍니다.
높은 수준에서 HyDE는 질의를 받아 가설적 답변을 생성한 다음 그 생성된 문서를 임베딩해 최종 예시로 사용하는 임베딩 기법입니다.
따라서 HyDE를 사용하려면 기본 임베딩 모델과 그러한 문서를 생성하는 데 사용할 수 있는 LLM을 제공해야 합니다. 기본적으로 HyDE 클래스에는 사용할 기본 프롬프트가 제공되지만(자세한 내용은 논문 참조), 단일 입력 변수 {question}을 갖는 자체 프롬프트를 만들 수도 있습니다.
출처: 문서
본문
사용법(Usage)
import { OpenAI, OpenAIEmbeddings } from "@langchain/openai";
import { MemoryVectorStore } from "@langchain/classic/vectorstores/memory";
import { HydeRetriever } from "@langchain/classic/retrievers/hyde";
import { Document } from "@langchain/core/documents";
const embeddings = new OpenAIEmbeddings();
const vectorStore = new MemoryVectorStore(embeddings);
const llm = new OpenAI();
const retriever = new HydeRetriever({
vectorStore,
llm,
k: 1,
});
await vectorStore.addDocuments(
[
"My name is John.",
"My name is Bob.",
"My favourite food is pizza.",
"My favourite food is pasta.",
].map((pageContent) => new Document({ pageContent }))
);
const results = await retriever.invoke("What is my favourite food?");
console.log(results);
/*
[
Document { pageContent: 'My favourite food is pasta.', metadata: {} }
]
*/
관련 자료(Related)
더 알아보기 (Learn more)
- 이 문서를 MCP로 연결하면 Claude, VSCode 등에서 실시간 답변을 받을 수 있어요.
- GitHub에서 이 페이지 편집하기 또는 이슈 제출하기.