1.7 KiB
1.7 KiB
PromptComposer
テンプレートベースのプロンプト構築システム。Handlebarsテンプレートエンジンによる動的プロンプト生成。
基本使用方法
// 初期化
let composer = PromptComposer::from_config_file("role.yaml", context)?;
composer.initialize_session(&messages)?;
// プロンプト構築
let messages = composer.compose(&user_messages)?;
テンプレート構文
変数展開
{{workspace.project_name}} # プロジェクト名
{{workspace.project_type}} # プロジェクト種別
{{model.provider}}/{{model.model_name}} # モデル情報
{{tools_schema}} # ツールスキーマ
条件分岐
{{#if workspace.has_nia_md}}
Project info: {{workspace_content}}
{{/if}}
{{#eq workspace.project_type "Rust"}}
Focus on memory safety and performance.
{{/eq}}
繰り返し処理
{{#each tools}}
- **{{name}}**: {{description}}
{{/each}}
パーシャルテンプレート
{{> header}}
{{> coding_guidelines}}
{{> footer}}
カスタムヘルパー
include_file
外部ファイルを読み込み:
{{include_file "~/.config/nia/templates/guidelines.md"}}
workspace_content
ワークスペースのnia.md内容を取得:
{{workspace_content}}
利用可能なコンテキスト変数
workspace: プロジェクト情報(root_path、project_type、git_info等)model: LLMモデル情報(provider、model_name、capabilities)session: セッション情報(conversation_id、message_count)user_input: ユーザー入力内容tools_schema: ツール定義JSON