该 Perplexity Search API 返回实时的、有据可查的网络搜索结果,可直接放入检索管道中。
概览
这将帮助您开始使用 PerplexitySearchRetriever 检索。有关所有 PerplexitySearchRetriever 功能和配置的详细文档,请前往 API 参考.
集成详情
| 检索器 | 来源 | 包 | PY 支持 |
|---|---|---|---|
PerplexitySearchRetriever | 通过 Perplexity Search API 获取的网络内容。 | @langchain/perplexity | ✅ |
设置
您需要设置一个 PERPLEXITY_API_KEY 环境变量(包含您的 Perplexity API 密钥),或将其作为 apiKey传入构造函数。从 Perplexity API 密钥仪表板.
process.env.PERPLEXITY_API_KEY = "your-api-key";
如果您想获取单个查询的自动追踪,还可以设置您的 LangSmith API 密钥(取消下方注释即可):
// process.env.LANGSMITH_API_KEY = "";
// process.env.LANGSMITH_TRACING = "true";
安装
此检索器位于 @langchain/perplexity package:
npm install @langchain/perplexity @langchain/core
yarn add @langchain/perplexity @langchain/core
pnpm add @langchain/perplexity @langchain/core
实例化
const retriever = new PerplexitySearchRetriever({
maxResults: 5,
// searchDomainFilter: ["wikipedia.org"],
// searchRecencyFilter: "week",
});
构造函数选项包括 maxResults, country, searchDomainFilter, searchRecencyFilter, searchAfterDate和 searchBeforeDate。请参阅 Perplexity Search API 参数 了解详情。
用法
const query = "Who won the most recent FIFA World Cup?";
const docs = await retriever.invoke(query);
每个返回的 Document 都将搜索结果片段作为 pageContent 和 { title, url, date, lastUpdated } in metadata.
在链中使用
与其他检索器一样, PerplexitySearchRetriever 可以通过 链.
RunnablePassthrough,
RunnableSequence,
} from "@langchain/core/runnables";
const prompt = ChatPromptTemplate.fromTemplate(`
Answer the question based only on the context provided.
Context: {context}
Question: {question}`);
const llm = new ChatAnthropic({ model: "claude-3-5-haiku-latest" });
const formatDocs = (docs: Document[]) =>
docs.map((doc) => doc.pageContent).join("\n\n");
const ragChain = RunnableSequence.from([
{
context: retriever.pipe(formatDocs),
question: new RunnablePassthrough(),
},
prompt,
llm,
new StringOutputParser(),
]);
await ragChain.invoke("Who won the most recent FIFA World Cup?");
API 参考
有关所有 PerplexitySearchRetriever 功能和配置的详细文档,请前往 API 参考.