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 的服務條款。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案