用户登录

RetrievalQAChain,检索问答链,在 LangChain 应用里,这种链就是组合了一个检索器还有一个问答链。首先它会通过检索器找出与问题相关的文档,然后再用这些文档作为上下文交给问答链去处理。

在这个 Node.js 程序文件顶部先导入几样东西,导入一个 OpenAIEmbeddings ,它来自 langchain/embeddings/openai,创建 vector store 的时候需要提供一个 embeddings。再导入 HNSWLib,它来自 langchain/vectorstores/hnswlib,一会儿它创建一个 vector store。再导入一个 RetrievalQAChain,它来自 langchain/chains。

这里已经准备好了一个 openai 的 model ,还有一组 documents。下面可以声明一个 embeddings,新建一个 OpenAIEmbeddings,然后声明一个 vectorStore,等于 await,用一下 HNSWLib 上面的 fromDocuments,把 documents 还有 embeddings 交给这个方法。

再声明一个 retriever,等于 vectorStore.asRetriever,相关结果可以暂时设置成 1 。再声明一个 chain,它的值可以用一下 RetrievalQAChain.fromLLM,把上面定义的 model ,还有 retriever 交给它。

然后用一下这个 chain,声明一个 response,等于 await,用一下 chain 上面的 call 这个方法,提供一个对象,设置一下 query,值可以设置成 “作者是谁?”。 在控制台上输出这个 response。

在终端,执行一下 node index.mjs,观察一下模型使用的提示,你会发现这个提示里只用到了 “宁皓网(ninghao.net)是由王皓与小雪共同创立。” ,因为这个文档内容是跟问题最相关的,模型会根据这个文档内容推断出问题的答案。最终给出的结果就是“王皓和小雪”。

检索问答链(RetrievalQAChain )《 LangChain:链 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点