本指南将帮助你开始使用 Perplexity 聊天模型。有关所有 ChatPerplexity 功能和配置的最新文档,请前往 API 参考.
概述
集成详情
| 类 | 包 | 可序列化 | PY 支持 | 下载量 | 版本 |
|---|---|---|---|---|---|
ChatPerplexity | @langchain/perplexity | beta | ✅ | !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。 |
true | Agent API | 始终使用 client.responses.create(). |
false | Chat 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 的搜索组件:
- -
PerplexitySearchRetriever:返回Document用于 RAG 管道的 Perplexity Search API 对象 - -
PerplexitySearchResults:返回 JSON 搜索结果的代理工具
请参阅 Perplexity 提供商概览 了解所有三个组件的设置。
API 参考
有关所有 ChatPerplexity 功能和配置的详细文档,请访问 API 参考.