File size: 3,374 Bytes
f1e6fda
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env python3
"""
プロンプト生成ツール
===================

新しいGitHub Copilotセッション用のコンテキストプロンプトを生成

使用方法:
    python generate_prompt.py
    python generate_prompt.py --type summary --limit 10
    python generate_prompt.py --type context --sessions 5 --conversations 8
"""

import argparse
import sys
import os
from pathlib import Path

# プロジェクトルートをパスに追加
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))

from controllers.conversation_history import ConversationManager

def main():
    parser = argparse.ArgumentParser(description="GitHub Copilot用コンテキストプロンプト生成")
    parser.add_argument(
        "--type", 
        choices=["summary", "context", "technical"],
        default="context",
        help="生成するプロンプトのタイプ"
    )
    parser.add_argument(
        "--limit", 
        type=int, 
        default=10,
        help="会話履歴の取得件数"
    )
    parser.add_argument(
        "--sessions", 
        type=int, 
        default=5,
        help="セッション履歴の取得件数"
    )
    parser.add_argument(
        "--conversations", 
        type=int, 
        default=8,
        help="詳細表示する会話数"
    )
    parser.add_argument(
        "--output", 
        help="出力ファイル名 (省略時は標準出力)"
    )
    
    args = parser.parse_args()
    
    # ConversationManager初期化
    try:
        manager = ConversationManager()
        
        # プロンプト生成
        if args.type == "summary":
            prompt = manager.generate_prompt_summary(limit=args.limit)
        elif args.type == "context":
            prompt = manager.generate_context_prompt(
                session_limit=args.sessions,
                detail_limit=args.conversations
            )
        elif args.type == "technical":
            # 技術フォーカス版
            base_prompt = manager.generate_context_prompt(args.sessions, args.conversations)
            tech_header = """<technical-context>
## TECHNICAL DEVELOPMENT CONTEXT

**FOCUS**: ContBK統合システム、SQLite会話履歴、Gradioインターフェース開発

**ACTIVE TOOLS**: 
- Gradio 4.31.5 (推奨: 4.44.1)
- SQLite3 (会話履歴管理)  
- Python 3.11
- Git (バージョン管理)
- FastAPI + Django (バックエンド)

**CURRENT ENVIRONMENT**:
- Workspace: /workspaces/fastapi_django_main_live
- Port 7860: メインアプリケーション
- Port 7870-7880: 開発用サブアプリ

</technical-context>

"""
            prompt = tech_header + base_prompt
        
        # 出力
        if args.output:
            with open(args.output, 'w', encoding='utf-8') as f:
                f.write(prompt)
            print(f"✅ プロンプトを {args.output} に保存しました")
        else:
            print("=" * 80)
            print("🎯 GitHub Copilot用コンテキストプロンプト")
            print("=" * 80)
            print(prompt)
            print("=" * 80)
            print("📋 上記のテキストを新しいセッションの最初にコピー&ペーストしてください")
        
    except Exception as e:
        print(f"❌ エラー: {e}", file=sys.stderr)
        sys.exit(1)

if __name__ == "__main__":
    main()