用途:安装并驱动 Perplexity Search API 的公开 Python SDK,用于实时网页搜索、批量并发查询和按查询提取页面相关片段。
安装与认证:pip install pplx-srch-sdk;包名与导入名一致,import pplx_srch_sdk。需 Python >= 3.12,支持 Linux(x86_64、aarch64)与 macOS。在 https://www.perplexity.ai/account/api 获取密钥并 export PERPLEXITY_API_KEY=pplx-...。无密钥时导入仍成功,首次调用才抛 AuthenticationError。
主要能力:search.web 返回 list[WebHit](无 .results 包装),字段含 url、title、domain、snippet、date?、last_updated?;search.web_many 对多个独立查询做有界并发(默认 5),按输入顺序返回 FanoutResult,含 ok/spec/result/error,单条失败不影响整批;content.snippets 按 URL 返回 SnippetResult,需逐个检查 error 再使用 text。同步门面覆盖多数场景,AsyncPplxClient 提供异步接口,但无异步 web_many,可配合 utils.fanout。
用法要点:查询保持 2-5 个关键词短语,一题一查,不用引号、site: 或布尔运算符,改用 domains、excluded_domains 等参数;多实体问题拆成单实体查询走 web_many。给 web() 传列表是同一查询的改写(最多 10 条合并为一个结果列表),不是批量。日期过滤用 MM/DD/YYYY 字符串,且不能与 recency_filter 同时使用。
限制:SDK 不自动重试或限流,每次调用即一次计费请求;超时约搜索 10 秒、片段 30 秒且不可配置;异常均派生自 PplxSdkError,API 错误带 status_code 与 body,应据状态码分支。异步场景应复用单个客户端,避免在 gather 中逐协程新建。更多参数与示例见 references/search.md、fanout.md、content.md、async.md 及 examples 目录。