以编程方式使用文档

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, searchAfterDatesearchBeforeDate。请参阅 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 参考.