helallao/perplexity-ai

Unofficial API Wrapper for Perplexity.ai + Account Generator with Web Interface

Perplexity‑AI(非官方 Python 封装)

是什么 – 一个无需官方 API 密钥即可与公开的 Perplexity.ai 网页 UI 通信的 Python 库。它允许你运行与网站相同的搜索/推理查询,支持同步或异步调用,还包含一个小型驱动程序,可自动操控 Chrome 浏览器,通过 Emailnator 创建临时 Gmail 账号,从而重新获取免费层级的「5 个 Pro 查询」额度。

核心功能

  • 搜索与推理 – 调用 client.search() 并传入查询内容,选择 modeauto, pro, reasoning, deep research)。响应包含 answer 字段(纯文本)。
  • 流式输出 – 设置 stream=True 可以实时接收部分答案块。
  • 文件上传 – 传入 {filename: data} 字典,让 Perplexity 分析文档。
  • 同步与异步 APIperplexity.Client(阻塞式)和 perplexity_async.Client(可 await)。
  • MCP 服务器 – 一个 Model Context Protocol 服务器(perplexity-mcp),可将封装作为工具暴露给 Claude Code 或任何 MCP 兼容客户端,支持可选的 HTTP 传输用于远程共享。
  • 账户生成client.create_account(emailnator_cookies) 使用 Emailnator 临时邮件服务注册新 Gmail,获得另一组免费 Pro 查询额度。
  • 速率限制处理、重试机制、类型化接口、结构化日志、自定义异常层级,确保集成的健壮性。

安装(需要 Python 3.10+ 和 uv 包管理器,但 pip 可作为替代)

# 核心库
uv sync               # 或:pip install -e .

# 可选 MCP 服务器
uv sync --extra mcp   # 或:pip install .[mcp]

# 可选网页驱动(用于账户创建)
uv sync --extra driver
uv run patchright install chromium   # 安装无头 Chromium 供驱动使用

快速使用示例(同步)

import perplexity

client = perplexity.Client()                     # 匿名,仅限免费层级
resp = client.search("What is artificial intelligence?")
print(resp["answer"])                           # → 纯文本答案

使用自己的 Perplexity 账户(提供从浏览器获取的 cookies):

cookies = {
    "next-auth.session-token": "…",
    "next-auth.csrf-token": "…",
}
client = perplexity.Client(cookies)
resp = client.search(
    "Explain quantum computing",
    mode="reasoning",
    model="gpt-5.2-thinking",
    sources=["web", "scholar"],
    stream=True,
)
for chunk in resp:
    if "answer" in chunk:
        print(chunk["answer"], end="", flush=True)

异步变体 – 将 perplexity 替换为 perplexity_async,并使用 await 调用。

MCP 服务器 – 运行 perplexity-mcp(默认 stdio 传输)或 MCP_TRANSPORT=http perplexity-mcp 以启用 HTTP 端点。Claude Code 可通过 claude mcp add perplexity -- perplexity-mcp 添加为工具。服务器将查询转发给封装,使用匿名模式或通过 PERPLEXITY_COOKIES 环境变量提供的 cookies。

限制(如文档所述)

  • 不支持多消息 messages 数组 – 每次调用仅支持单个查询字符串。
  • 不支持高级搜索过滤器(时间范围、域名、上下文大小、推理努力程度等)。
  • 仅返回纯文本答案;不包含结构化引用、图片或富结果对象。
  • 账户创建需要新鲜的 Emailnator cookies,因为它们会快速过期。

更多资源examples/ 中的示例,README 中的完整 API 参考,docs/ 中的变更日志和路线图,以及 tests/ 中的测试套件。

法律声明 – 这是一个 非官方 封装。请负责任地使用,并遵守 Perplexity.ai 的服务条款。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目