🚀 Promptheus
Promptheusは、大規模言語モデル(LLMs)向けのプロンプトを分析・最適化します。これにより、ユーザーはより効果的な出力を得ることができます。
🚀 クイックスタート
まずは、以下のコマンドでpromptheusをインストールしましょう。
pip install promptheus
インストールが完了したら、以下のコマンドで使用できます。
# インタラクティブセッション
promptheus
# 単一のプロンプト
promptheus "Write a technical blog post"
# 説明を求める質問をスキップ
promptheus -s "Explain Kubernetes"
# Web UIを使用
promptheus web
✨ 主な機能
Promptheusは、以下のような機能を持っています。
- 適応的質問:必要な情報をスマートに検出し、質問を行います。
- 複数プロバイダー対応:Google、OpenAI、Anthropic、Groq、Qwenなどの複数のプロバイダーに対応しています。
- インタラクティブな改良:自然な会話を通じて、出力を繰り返し改善します。
- セッション履歴:過去のプロンプトを自動的に追跡し、再利用できます。
- CLIとWeb UI:ターミナルまたはブラウザから使用できます。
📦 インストール
pipを使用して、以下のコマンドでpromptheusをインストールできます。
pip install promptheus
💻 使用例
基本的な使用法
# インタラクティブセッション
promptheus
# 単一のプロンプト
promptheus "Write a technical blog post"
高度な使用法
# 説明を求める質問をスキップ
promptheus -s "Explain Kubernetes"
# Web UIを使用
promptheus web
📚 ドキュメント
サポートされるプロバイダー
| プロバイダー | モデル | セットアップ |
|---|---|---|
| Google Gemini | gemini-2.0-flash, gemini-1.5-pro | API Key |
| Anthropic Claude | claude-3-5-sonnet, claude-3-opus | Console |
| OpenAI | gpt-4o, gpt-4-turbo | API Key |
| Groq | llama-3.3-70b, mixtral-8x7b | Console |
| Alibaba Qwen | qwen-max, qwen-plus | DashScope |
| Zhipu GLM | glm-4-plus, glm-4-air | Console |
| OpenRouter | openrouter/auto (auto-routing) | Dashboard |
設定
.envファイルを作成し、少なくとも1つのプロバイダーのAPIキーを設定します。
GOOGLE_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
または、インタラクティブなセットアップを実行します。
promptheus auth
具体的な使用例
コンテンツ生成
promptheus "Write a blog post about async programming"
# システムが質問:対象読者、トーン、長さ、主要なトピック
# すべての指定を含む改良されたプロンプトを生成
コード分析
promptheus -s "Review this function for security issues"
# 質問をスキップし、直接改善を適用
インタラクティブセッション
promptheus
/set provider anthropic
/set model claude-3-5-sonnet
# 複数のプロンプトを処理し、/コマンドでプロバイダー/モデルを切り替える
パイプライン統合
echo "Create a REST API schema" | promptheus | jq '.refined_prompt'
cat prompts.txt | while read line; do promptheus "$line"; done
テレメトリと分析
# テレメトリの概要を表示(使用状況とパフォーマンスに関する匿名メトリクス)
promptheus telemetry summary
# 必要に応じてテレメトリを無効にする
export PROMPTHEUS_TELEMETRY_ENABLED=0
# 履歴の保存場所をカスタマイズする
export PROMPTHEUS_HISTORY_DIR=~/.custom_promptheus
MCPサーバー
Promptheusには、Model Context Protocol (MCP)サーバーが含まれており、プロンプトの改良機能を標準化されたツールとして公開し、MCP互換のクライアントとの統合を可能にします。
MCPサーバーの機能
- Q&Aによるプロンプト改良:適応的な質問を通じて、インテリジェントなプロンプトの最適化を行います。
- プロンプトの微調整:既存のプロンプトに対してターゲットとなる変更を適用します。
- モデル/プロバイダーの検査:利用可能なAIプロバイダーの発見と検証を行います。
- 環境の検証:設定のチェックと接続テストを行います。
MCPサーバーの起動
# MCPサーバーを起動
promptheus mcp
# または、Pythonで直接実行
python -m promptheus.mcp_server
前提条件:
- MCPパッケージがインストールされていること:
pip install mcp(requirements.txtに含まれています) - 少なくとも1つのプロバイダーのAPIキーが設定されていること(設定を参照)
利用可能なMCPツール
refine_prompt
必要に応じて説明を求める質問を行い、インテリジェントなプロンプトの改良を行います。
入力:
prompt(必須):改良する最初のプロンプトanswers(オプション):質問IDと回答をマッピングする辞書{q0: "answer", q1: "answer"}answer_mapping(オプション):質問IDを元の質問テキストにマッピングするprovider(オプション):プロバイダーを上書きする(例:"google", "openai")model(オプション):モデル名を上書きする
応答タイプ:
{"type": "refined", "prompt": "...", "next_action": "..."}:改良されたプロンプトで成功{"type": "clarification_needed", "questions_for_ask_user_question": [...], "answer_mapping": {...}}:質問が必要{"type": "error", "error_type": "...", "message": "..."}:エラーが発生
tweak_prompt
既存のプロンプトに対してターゲットとなる変更を適用します。
入力:
prompt(必須):変更する現在のプロンプトmodification(必須):変更の説明(例:"make it shorter")provider,model(オプション):プロバイダー/モデルの上書き
戻り値:
{"type": "refined", "prompt": "..."}:変更されたプロンプト
list_models
構成されたプロバイダーから利用可能なモデルを発見します。
入力:
providers(オプション):クエリするプロバイダー名のリストlimit(オプション):プロバイダーごとの最大モデル数(デフォルト:20)include_nontext(オプション):ビジョン/埋め込みモデルを含める
戻り値:
{"type": "success", "providers": {"google": {"available": true, "models": [...]}}}
list_providers
プロバイダーの設定状態をチェックします。
戻り値:
{"type": "success", "providers": {"google": {"configured": true, "model": "..."}}}
validate_environment
環境設定とAPI接続をテストします。
入力:
providers(オプション):検証する特定のプロバイダーtest_connection(オプション):実際のAPI接続をテストする
戻り値:
{"type": "success", "validation": {"google": {"configured": true, "connection_test": "passed"}}}
Q&Aによるプロンプト改良ワークフロー
MCPサーバーは、最適なプロンプト改良のための構造化された説明ワークフローをサポートしています。
ステップ1:初期の改良要求
{
"tool": "refine_prompt",
"arguments": {
"prompt": "Write a blog post about machine learning"
}
}
ステップ2:説明応答の処理
{
"type": "clarification_needed",
"task_type": "generation",
"message": "To refine this prompt effectively, I need to ask...",
"questions_for_ask_user_question": [
{
"question": "Who is your target audience?",
"header": "Q1",
"multiSelect": false,
"options": [
{"label": "Technical professionals", "description": "Technical professionals"},
{"label": "Business executives", "description": "Business executives"}
]
}
],
"answer_mapping": {
"q0": "Who is your target audience?"
}
}
ステップ3:ユーザーの回答を収集
提供された質問を使用して、MCPクライアントのAskUserQuestionツールを使用し、回答を質問IDにマッピングします。
ステップ4:回答を含む最終的な改良
{
"tool": "refine_prompt",
"arguments": {
"prompt": "Write a blog post about machine learning",
"answers": {"q0": "Technical professionals"},
"answer_mapping": {"q0": "Who is your target audience?"}
}
}
応答:
{
"type": "refined",
"prompt": "Write a comprehensive technical blog post about machine learning fundamentals targeted at software engineers and technical professionals. Include practical code examples and architectural patterns...",
"next_action": "This refined prompt is now ready to use. If the user asked you to execute/run the prompt, use this refined prompt directly with your own capabilities..."
}
AskUser統合契約
MCPサーバーは、2つのモードで動作します。
インタラクティブモード(AskUserQuestionが利用可能な場合):
- 注入されたAskUserQuestion関数を介して自動的に説明を求める質問を行います。
- 回答を収集した直後に改良されたプロンプトを返します。
- サポートされたクライアント内でシームレスなユーザー体験を提供します。
構造化モード(すべてのクライアントのフォールバック):
- 形式付きの質問を含む
clarification_needed応答を返します。 - クライアントがAskUserQuestionツールを呼び出す責任があります。
- 回答は
answer_mapping辞書を介してマッピングされます。
質問形式:
questions_for_ask_user_question内の各質問には、以下が含まれています。
question:表示する質問テキストheader:短い識別子(Q1、Q2など)multiSelect:複数選択オプションのブール値options:ラジオ/チェックボックス質問の{label, description}の配列
回答マッピング:
- 質問IDは
q0、q1、q2などのパターンに従います。 - 回答辞書はこれらのIDをキーとして使用します:
{"q0": "answer", "q1": "answer"} answer_mappingは、プロバイダーのコンテキストのために元の質問テキストを保存します。
MCPのトラブルシューティング
MCPパッケージがインストールされていない場合
Error: The 'mcp' package is not installed. Please install it with 'pip install mcp'.
解決策:pip install mcpまたは開発依存関係を含めてPromptheusをインストールします:pip install -e .[dev]
プロバイダーのAPIキーが欠落している場合
{
"type": "error",
"error_type": "ConfigurationError",
"message": "No provider configured. Please set API keys in environment."
}
診断:list_providersまたはvalidate_environmentツールを使用して、設定状態を確認します。
プロバイダーの設定が間違っている場合
{
"type": "success",
"providers": {
"google": {"configured": false, "error": "GOOGLE_API_KEY not found"},
"openai": {"configured": true, "model": "gpt-4o"}
}
}
解決策:.envファイルまたは環境変数に欠落しているAPIキーを設定します。
接続テストが失敗した場合
{
"type": "success",
"validation": {
"google": {
"configured": true,
"connection_test": "failed: Authentication error"
}
}
}
解決策:APIキーが有効で、必要な権限を持っていることを確認します。
完全なドキュメント
クイックリファレンス:promptheus --help
包括的なガイド:
- 📖 インストールとセットアップ
- 🚀 使用ガイド
- 🔧 設定
- ⌨️ CLIリファレンス
- 🌐 Web UIガイド
- 🔌 プロバイダーのセットアップ
🔧 技術詳細
開発
git clone https://github.com/abhichandra21/Promptheus.git
cd Promptheus
pip install -e ".[dev]"
pytest -q
詳細な開発ガイダンスについては、CLAUDE.mdを参照してください。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細については、LICENSEを参照してください。
貢献
貢献は大歓迎です!貢献ガイドラインについては、開発ガイドを参照してください。
質問がある場合:問題を開く | ライブデモ:promptheus web








