12 KiB
tg-set-prompt
Sets prompt templates and system prompts for TrustGraph LLM services.
Synopsis
# Set a prompt template
tg-set-prompt --id TEMPLATE_ID --prompt TEMPLATE [options]
# Set system prompt
tg-set-prompt --system SYSTEM_PROMPT
Description
The tg-set-prompt command configures prompt templates and system prompts used by TrustGraph's LLM services. Prompt templates contain placeholders like {{variable}} that are replaced with actual values when invoked. System prompts provide global context for all LLM interactions.
Templates are stored in TrustGraph's configuration system and can be used with tg-invoke-prompt for consistent AI interactions.
Options
Prompt Template Mode
--id ID: Unique identifier for the prompt template (required for templates)--prompt TEMPLATE: Prompt template text with{{variable}}placeholders (required for templates)--response TYPE: Response format -textorjson(default:text)--schema SCHEMA: JSON schema for structured responses (required when response isjson)
System Prompt Mode
--system PROMPT: System prompt text (cannot be used with other options)
Common Options
-u, --api-url URL: TrustGraph API URL (default:$TRUSTGRAPH_URLorhttp://localhost:8088/)
Examples
Basic Prompt Template
tg-set-prompt \
--id "greeting" \
--prompt "Hello {{name}}, welcome to {{place}}!"
Question-Answer Template
tg-set-prompt \
--id "question" \
--prompt "Answer this question based on the context: {{question}}\n\nContext: {{context}}"
JSON Response Template
tg-set-prompt \
--id "extract-info" \
--prompt "Extract key information from: {{text}}" \
--response "json" \
--schema '{"type": "object", "properties": {"name": {"type": "string"}, "age": {"type": "number"}}}'
Analysis Template
tg-set-prompt \
--id "analyze" \
--prompt "Analyze the following {{data_type}} and provide insights about {{focus_area}}:\n\n{{data}}\n\nFormat the response as {{format}}."
System Prompt
tg-set-prompt \
--system "You are a helpful AI assistant. Always provide accurate, concise responses. When uncertain, clearly state your limitations."
Template Variables
Variable Syntax
Templates use {{variable}} syntax for placeholders:
# Template
"Hello {{name}}, today is {{day}}"
# Usage
tg-invoke-prompt greeting name="Alice" day="Monday"
# Result: "Hello Alice, today is Monday"
Common Variables
{{text}}- Input text for processing{{question}}- Question to answer{{context}}- Background context{{data}}- Data to analyze{{format}}- Output format specification
Response Types
Text Response (Default)
tg-set-prompt \
--id "summarize" \
--prompt "Summarize this text in {{max_words}} words: {{text}}"
JSON Response
tg-set-prompt \
--id "classify" \
--prompt "Classify this text: {{text}}" \
--response "json" \
--schema '{
"type": "object",
"properties": {
"category": {"type": "string"},
"confidence": {"type": "number", "minimum": 0, "maximum": 1}
},
"required": ["category", "confidence"]
}'
Use Cases
Document Processing Templates
# Document summarization
tg-set-prompt \
--id "document-summary" \
--prompt "Provide a {{length}} summary of this document:\n\n{{document}}\n\nFocus on: {{focus_areas}}"
# Key point extraction
tg-set-prompt \
--id "extract-key-points" \
--prompt "Extract the main points from: {{text}}\n\nReturn as a bulleted list."
# Document classification
tg-set-prompt \
--id "classify-document" \
--prompt "Classify this document into one of these categories: {{categories}}\n\nDocument: {{text}}" \
--response "json" \
--schema '{"type": "object", "properties": {"category": {"type": "string"}, "confidence": {"type": "number"}}}'
Code Analysis Templates
# Code review
tg-set-prompt \
--id "code-review" \
--prompt "Review this {{language}} code for {{focus}} issues:\n\n{{code}}\n\nProvide specific recommendations."
# Bug detection
tg-set-prompt \
--id "find-bugs" \
--prompt "Analyze this code for potential bugs:\n\n{{code}}\n\nError context: {{error}}"
# Code explanation
tg-set-prompt \
--id "explain-code" \
--prompt "Explain how this {{language}} code works:\n\n{{code}}\n\nTarget audience: {{audience}}"
Data Analysis Templates
# Data insights
tg-set-prompt \
--id "data-insights" \
--prompt "Analyze this {{data_type}} data and provide insights:\n\n{{data}}\n\nFocus on: {{metrics}}"
# Trend analysis
tg-set-prompt \
--id "trend-analysis" \
--prompt "Identify trends in this data over {{timeframe}}:\n\n{{data}}" \
--response "json" \
--schema '{"type": "object", "properties": {"trends": {"type": "array", "items": {"type": "string"}}}}'
Content Generation Templates
# Marketing copy
tg-set-prompt \
--id "marketing-copy" \
--prompt "Create {{tone}} marketing copy for {{product}} targeting {{audience}}. Key features: {{features}}"
# Technical documentation
tg-set-prompt \
--id "tech-docs" \
--prompt "Generate technical documentation for:\n\n{{code}}\n\nInclude: {{sections}}"
Advanced Usage
Multi-Step Templates
# Research template
tg-set-prompt \
--id "research" \
--prompt "Research question: {{question}}
Available sources: {{sources}}
Please:
1. Analyze the question
2. Review relevant sources
3. Synthesize findings
4. Provide conclusions
Format: {{output_format}}"
Conditional Templates
# Adaptive response template
tg-set-prompt \
--id "adaptive-response" \
--prompt "Task: {{task}}
Context: {{context}}
Expertise level: {{level}}
If expertise level is 'beginner', provide simple explanations.
If expertise level is 'advanced', include technical details.
If task involves code, include examples.
Response:"
Structured Analysis Template
tg-set-prompt \
--id "structured-analysis" \
--prompt "Analyze: {{subject}}
Criteria: {{criteria}}
Data: {{data}}
Provide analysis in this structure:
- Overview
- Key Findings
- Recommendations
- Next Steps" \
--response "json" \
--schema '{
"type": "object",
"properties": {
"overview": {"type": "string"},
"key_findings": {"type": "array", "items": {"type": "string"}},
"recommendations": {"type": "array", "items": {"type": "string"}},
"next_steps": {"type": "array", "items": {"type": "string"}}
}
}'
Template Management
# Create template collection for specific domain
domain="customer-support"
templates=(
"greeting:Hello! I'm here to help with {{issue_type}}. What can I assist you with?"
"escalation:I understand your frustration with {{issue}}. Let me escalate this to {{department}}."
"resolution:Great! I've resolved your {{issue}}. Is there anything else I can help with?"
)
for template in "${templates[@]}"; do
IFS=':' read -r id prompt <<< "$template"
tg-set-prompt --id "${domain}-${id}" --prompt "$prompt"
done
System Prompt Configuration
General Purpose System Prompt
tg-set-prompt --system "You are a knowledgeable AI assistant. Provide accurate, helpful responses. When you don't know something, say so clearly. Always consider the context and be concise unless detail is specifically requested."
Domain-Specific System Prompt
tg-set-prompt --system "You are a technical documentation assistant specializing in software development. Focus on clarity, accuracy, and practical examples. Always include code snippets when relevant and explain complex concepts step-by-step."
Role-Based System Prompt
tg-set-prompt --system "You are a data analyst AI. When analyzing data, always consider statistical significance, potential biases, and limitations. Present findings objectively and suggest actionable insights."
Error Handling
Missing Required Fields
Exception: Must specify --id for prompt
Solution: Provide both --id and --prompt for template creation.
Invalid Response Type
Exception: Response must be one of: text json
Solution: Use only text or json for the --response option.
Invalid JSON Schema
Exception: JSON schema must be valid JSON
Solution: Validate JSON schema syntax before using --schema.
Conflicting Options
Exception: Can't use --system with other args
Solution: Use --system alone, or use template options without --system.
Template Testing
Test Template Creation
# Create and test a simple template
tg-set-prompt \
--id "test-template" \
--prompt "Test template with {{variable1}} and {{variable2}}"
# Test the template
tg-invoke-prompt test-template variable1="hello" variable2="world"
Validate JSON Templates
# Create JSON template
tg-set-prompt \
--id "json-test" \
--prompt "Extract data from: {{text}}" \
--response "json" \
--schema '{"type": "object", "properties": {"result": {"type": "string"}}}'
# Test JSON response
tg-invoke-prompt json-test text="Sample text for testing"
Template Iteration
# Version 1
tg-set-prompt \
--id "analysis-v1" \
--prompt "Analyze: {{data}}"
# Version 2 (improved)
tg-set-prompt \
--id "analysis-v2" \
--prompt "Analyze the following {{data_type}} and provide insights about {{focus}}:\n\n{{data}}\n\nConsider: {{considerations}}"
# Version 3 (structured)
tg-set-prompt \
--id "analysis-v3" \
--prompt "Analyze: {{data}}" \
--response "json" \
--schema '{"type": "object", "properties": {"summary": {"type": "string"}, "insights": {"type": "array"}}}'
Best Practices
Template Design
# Good: Clear, specific prompts
tg-set-prompt \
--id "good-summary" \
--prompt "Summarize this {{document_type}} in {{word_count}} words, focusing on {{key_aspects}}:\n\n{{content}}"
# Better: Include context and constraints
tg-set-prompt \
--id "better-summary" \
--prompt "Task: Summarize the following {{document_type}}
Length: {{word_count}} words maximum
Focus: {{key_aspects}}
Audience: {{target_audience}}
Document:
{{content}}
Summary:"
Variable Naming
# Use descriptive variable names
tg-set-prompt \
--id "descriptive-vars" \
--prompt "Analyze {{data_source}} data from {{time_period}} for {{business_metric}} trends"
# Group related variables
tg-set-prompt \
--id "grouped-vars" \
--prompt "Compare {{baseline_data}} vs {{comparison_data}} using {{analysis_method}}"
Environment Variables
TRUSTGRAPH_URL: Default API URL
Related Commands
tg-show-prompts- Display configured promptstg-invoke-prompt- Use prompt templatestg-invoke-document-rag- Document-based AI queries
API Integration
This command uses the Config API to store prompt templates and system prompts in TrustGraph's configuration system.
Best Practices
- Clear Templates: Write clear, specific prompt templates
- Variable Names: Use descriptive variable names
- Response Types: Choose appropriate response types for your use case
- Schema Validation: Always validate JSON schemas before setting
- Version Control: Consider versioning important templates
- Testing: Test templates thoroughly with various inputs
- Documentation: Document template variables and expected usage
Troubleshooting
Template Not Working
# Check template exists
tg-show-prompts | grep "template-id"
# Verify variable names match
tg-invoke-prompt template-id var1="test" var2="test"
JSON Schema Errors
# Validate schema separately
echo '{"type": "object"}' | jq .
# Test with simple schema first
tg-set-prompt --id "test" --prompt "test" --response "json" --schema '{"type": "string"}'
System Prompt Issues
# Check current system prompt
tg-show-prompts | grep -A5 "System prompt"
# Reset if needed
tg-set-prompt --system "Default system prompt"