このプロジェクトは、llama.cpp ベースのローカルLLM(例:TinyLlama, Mistral)を使用して、プロンプトに対する自然なテキスト生成を行うPythonアプリケーションです。
- ✅ ローカルで高速に動作(インターネット不要)
- ✅
config.yamlによる柔軟なモデル設定 - ✅
richによる視認性の高い出力 - ✅ モジュール分割された構造で保守性・拡張性が高い
- ✅ 出力は
outputs/に自動保存(ディレクトリも自動作成)
textgen_project/
├── main.py # 実行エントリーポイント
├── config.yaml # モデル設定ファイル
├── prompts/ # プロンプトファイル格納
│ └── story.txt
├── outputs/ # 生成結果の保存先
│ └── output.txt
├── models/ # GGUFモデル格納
│ └── *.gguf
├── core/ # モジュール群(設定・生成・保存)
│ ├── config_loader.py
│ ├── prompt_loader.py
│ ├── model_runner.py
│ └── output_writer.py
├── requirements.txt # 必要なパッケージ
└── README.md # このファイル
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txtpython download_model.pypython main.py出力は outputs/output.txt に保存されます。
model_path: models/tinyllama-1.1b-chat-v1.0.Q4_0.gguf
context_length: 512
threads: 2
max_tokens: 32
temperature: 0.7
top_k: 40- CLI引数対応(
--prompt,--output,--config) - stream=True によるリアルタイム出力
- チャット形式への拡張
- テストスイートの導入(pytest)
このプロジェクトは MIT ライセンスのもとで公開されています。
詳細は LICENSE ファイルをご確認ください。
このプロジェクトへの貢献を歓迎します!
- バグ報告や機能提案を行う前に、Issues を確認してください。
- 既に同様のIssueが存在する場合は、そのスレッドにコメントを追加してください。
- 該当するIssueがない場合は、新しいIssueを作成してから作業を始めてください。
- リポジトリをフォーク
- 新しいブランチを作成(例:
feature/add-cli-support) - コードを変更・テスト
- Pull Request を作成(テンプレートに従って記述)
詳しくは CONTRIBUTING.md をご覧ください。
このプロジェクトは、Microsoft Copilot の支援を受けて設計・実装されています。
設計のアドバイス、コードの生成、ドキュメントの整備などにおいて、Copilot の提案を積極的に活用しています。