以编程方式使用文档

本指南将帮助你开始使用 Perplexity 聊天模型。有关所有 ChatPerplexity 功能和配置的最新文档,请前往 API 参考.

概述

集成详情

可序列化PY 支持下载量版本
ChatPerplexity@langchain/perplexitybeta!NPM - 下载量!NPM - 版本

模型特性

请参阅下表标题中的链接,了解如何使用特定功能。

工具调用结构化输出图像输入音频输入视频输入Token 级流式输出Token 使用量对数概率

请注意,截至本文撰写时,Perplexity 仅在特定使用层级支持结构化输出。

设置

要访问 Perplexity 模型,你需要创建一个 Perplexity 账户,获取 API 密钥,并安装 @langchain/perplexity 集成包。

凭据

前往 Perplexity API 密钥仪表板 注册并生成 API 密钥。完成此操作后,设置 PERPLEXITY_API_KEY 环境变量:

如果你想获取模型调用的自动追踪,还可以设置你的 LangSmith API 密钥,方法是取消下方注释:

# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

安装

LangChain Perplexity 集成位于 @langchain/perplexity package:

npm install @langchain/perplexity @langchain/core
yarn add @langchain/perplexity @langchain/core
pnpm add @langchain/perplexity @langchain/core

实例化

现在可以实例化模型:

const llm = new ChatPerplexity({
  model: "openai/gpt-5.5",
  temperature: 0,
  maxTokens: undefined,
  timeout: undefined,
  maxRetries: 2,
  // other params...
});

调用

const aiMsg = await llm.invoke([
  {
    role: "system",
    content: "You are a helpful assistant that translates English to French. Translate the user sentence.",
  },
  {
    role: "user",
    content: "I love programming.",
  },
]);
aiMsg;
AIMessage {
  "id": "run-71853938-aa30-4861-9019-f12323c09f9a",
  "content": "J'adore la programmation.",
  "additional_kwargs": {
    "citations": [
      "https://careersatagoda.com/blog/why-we-love-programming/",
      "https://henrikwarne.com/2012/06/02/why-i-love-coding/",
      "https://forum.freecodecamp.org/t/i-love-programming-but/497502",
      "https://ilovecoding.org",
      "https://thecodinglove.com"
    ]
  },
  "response_metadata": {
    "tokenUsage": {
      "promptTokens": 20,
      "completionTokens": 9,
      "totalTokens": 29
    }
  },
  "tool_calls": [],
  "invalid_tool_calls": []
}
console.log(aiMsg.content);
J'adore la programmation.

Agent API 支持 (useResponsesApi)

ChatPerplexity 也可以通过 Perplexity 的 Agent API (Perplexity 风格的 Responses API) 通过设置 useResponsesApi。这类似于 ChatOpenAI的 Responses 模式:一个类,两个端点,由单个选项控制。

端点备注
undefined (默认)自动检测当请求使用内置 Perplexity 工具 (web_search, fetch_url, finance_search, people_search) 或包含 Responses 专用字段 (previousResponseId, instructions, input, include) 时,路由至 Agent API。否则路由至 Chat Completions。
trueAgent API始终使用 client.responses.create().
falseChat Completions始终使用 client.chat.completions.create().

Agent API 提供 ChatPerplexity 访问 Perplexity 的内置工具(实时网络搜索、URL 获取、金融和人物搜索)以及有状态的代理字段(previousResponseId, instructions, include),这些在 Chat Completions 中不可用。现有 new ChatPerplexity({ model: "sonar" }) 调用方不会看到行为变化——Chat Completions 路径仍然是纯文本请求的默认选项。

const chat = new ChatPerplexity({
  model: "openai/gpt-5.5",
  useResponsesApi: true,
});

const response = await chat.invoke("What did Apple announce at WWDC this week?");
console.log(response.content);

你也可以绑定一个内置工具并让自动检测路由请求——无需任何选项:

const chat = new ChatPerplexity({ model: "openai/gpt-5.5" });

const response = await chat.invoke(
  "Summarize the latest LangChain release notes.",
  { tools: [{ type: "web_search" }] },
);
console.log(response.content);

当通过 Agent API 路由时,响应对象携带更丰富的元数据:

  • - usage_metadata 从 Responses 形状的 usage 负载中填充(input_tokens, output_tokens, total_tokens).
  • - response_metadata 携带传输级字段(id, model, status, object)以及 Perplexity 特定的搜索输出(如果有): citations, images, related_questions,以及 search_results.
  • - additional_kwargs.responses_output 保存原始 Agent API 输出项。
  • - 模型返回的工具调用在 response.tool_calls 中显示的方式完全相同 ChatOpenAI.

下转发。请参阅 Perplexity Agent API 模型列表 获取可通过此端点使用的完整模型集(例如 openai/gpt-5.5, anthropic/claude-sonnet-4-6, google/gemini-3-1-pro).

相关集成

@langchain/perplexity 包还包括不使用聊天 API 的搜索组件:

请参阅 Perplexity 提供商概览 了解所有三个组件的设置。

API 参考

有关所有 ChatPerplexity 功能和配置的详细文档,请访问 API 参考.