helallao/perplexity-ai
Unofficial API Wrapper for Perplexity.ai + Account Generator with Web Interface
Perplexity‑AI (非公式 Python ライブラリ)
何であるか – 公式 API キーが不要な、公開された Perplexity.ai Web UI と通信する Python ライブラリ。ウェブサイトで提供されている検索・推論クエリを同期的または非同期的に実行でき、また Chrome ブラウザを自動化するドライバも含まれており、Emailnator を通じて一時的な Gmail アカウントを作成することで、無料トライアルの「5 件の Pro クエリ」制限をリセットできます。
主な機能
- 検索 & 推論 –
client.search()を呼び出し、クエリを入力し、mode(auto,pro,reasoning,deep research)を選択。応答にはanswerフィールド(プレーンテキスト)が含まれます。 - ストリーミング –
stream=Trueを設定すると、回答の部分的なチャンクをリアルタイムで受信できます。 - ファイルアップロード –
{filename: data}の辞書を添付することで、Perplexity がドキュメントを分析できます。 - 同期・非同期 API –
perplexity.Client(ブロッキング)とperplexity_async.Client(awaitable)。 - MCP サーバー –
perplexity-mcpという Model Context Protocol サーバーで、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 = {
"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 環境変数で渡されたクッキーを使用します。
制限事項(ドキュメントに記載)
messages配列の複数メッセージ対応なし – 1回の呼び出しにつき1つのクエリ文字列のみ。- 高度な検索フィルタ(日付、ドメイン、コンテキストサイズ、推論の努力度など)なし。
- プレーンテキストの回答のみ返却。構造化された出典、画像、リッチ結果オブジェクトは含まれない。
- アカウント作成には、すぐに期限切れになる Emailnator のクッキーが必要。
詳細情報の入手先 – examples/ に例、README に完全な API リファレンス、docs/ に変更履歴とロードマップ、tests/ にテストスイート。
法的注意 – これは 非公式 のラッパーです。責任を持って使用し、Perplexity.ai の利用規約を尊重してください。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト