跳到主要内容

HyDE Retriever

此示例展示了如何使用 HyDE Retriever,它实现了 本文 中描述的假设文档嵌入 (HyDE)。

在较高层面,HyDE 是一种嵌入技术,它接受查询,生成假设答案,然后嵌入生成的文档并将其用作最终示例。

为了使用 HyDE,因此我们需要提供一个基础嵌入模型,以及一个可用于生成这些文档的 LLM。默认情况下,HyDE 类带有一些默认提示(有关它们的更多详细信息,请参阅论文),但我们也可以创建我们自己的提示,它应该有一个单一的输入变量 {question}

使用方法

提示

有关安装集成包的一般说明,请参阅此部分

npm install @langchain/openai @langchain/core
import { OpenAI, OpenAIEmbeddings } from "@langchain/openai";
import { MemoryVectorStore } from "langchain/vectorstores/memory";
import { HydeRetriever } from "langchain/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: {} }
]
*/

API 参考


此页是否对您有帮助?


您也可以留下详细的反馈 在 GitHub 上.