Files
vibn-frontend/lib/ai/prompts/README.md

177 lines
4.5 KiB
Markdown

# Prompt Management System
This directory contains all versioned system prompts for Vibn's chat modes.
## 📁 Structure
```
prompts/
├── index.ts # Exports all prompts
├── shared.ts # Shared prompt components
├── collector.ts # Collector mode prompts
├── extraction-review.ts # Extraction review mode prompts
├── vision.ts # Vision mode prompts
├── mvp.ts # MVP mode prompts
├── marketing.ts # Marketing mode prompts
└── general-chat.ts # General chat mode prompts
```
## 🔄 Versioning
Each prompt file contains:
1. **Version history** - All versions of the prompt
2. **Metadata** - Version number, date, description
3. **Current version** - Which version is active
### Example Structure
```typescript
const COLLECTOR_V1: PromptVersion = {
version: 'v1',
createdAt: '2024-11-17',
description: 'Initial version',
prompt: `...`,
};
const COLLECTOR_V2: PromptVersion = {
version: 'v2',
createdAt: '2024-12-01',
description: 'Added context-aware chunking',
prompt: `...`,
};
export const collectorPrompts = {
v1: COLLECTOR_V1,
v2: COLLECTOR_V2,
current: 'v2', // ← Active version
};
```
## 📝 How to Add a New Prompt Version
1. **Open the relevant mode file** (e.g., `collector.ts`)
2. **Create a new version constant:**
```typescript
const COLLECTOR_V2: PromptVersion = {
version: 'v2',
createdAt: '2024-12-01',
description: 'What changed in this version',
prompt: `
Your new prompt text here...
`,
};
```
3. **Add to the prompts object:**
```typescript
export const collectorPrompts = {
v1: COLLECTOR_V1,
v2: COLLECTOR_V2, // Add new version
current: 'v2', // Update current
};
```
4. **Done!** The system will automatically use the new version.
## 🔙 How to Rollback
Simply change the `current` field:
```typescript
export const collectorPrompts = {
v1: COLLECTOR_V1,
v2: COLLECTOR_V2,
current: 'v1', // Rolled back to v1
};
```
## 📊 Benefits of This System
1. **Version History** - Keep all previous prompts for reference
2. **Easy Rollback** - Instantly revert to a previous version
3. **Git-Friendly** - Clear diffs show exactly what changed
4. **Documentation** - Each version has a description of changes
5. **A/B Testing Ready** - Can easily test multiple versions
6. **Isolated Changes** - Changing one prompt doesn't affect others
## 🎯 Usage in Code
```typescript
// Import current prompts (most common)
import { MODE_SYSTEM_PROMPTS } from '@/lib/ai/chat-modes';
const prompt = MODE_SYSTEM_PROMPTS['collector_mode'];
// Or access version history
import { collectorPrompts } from '@/lib/ai/prompts';
console.log(collectorPrompts.v1.prompt); // Old version
console.log(collectorPrompts.current); // 'v2'
```
## 🚀 Future Enhancements
### Analytics Tracking
Track performance by prompt version:
```typescript
await logPromptUsage({
mode: 'collector_mode',
version: collectorPrompts.current,
userId: user.id,
responseQuality: 0.85,
});
```
### A/B Testing
Test multiple versions simultaneously:
```typescript
const promptVersion = userInExperiment ? 'v2' : 'v1';
const prompt = collectorPrompts[promptVersion].prompt;
```
### Database Storage
Move to Firestore for dynamic updates:
```typescript
// Future: Load from database
const prompt = await getPrompt('collector_mode', 'latest');
```
## 📚 Best Practices
1. **Always add a description** - Future you will thank you
2. **Never delete old versions** - Keep history for rollback
3. **Test before deploying** - Ensure new prompts work as expected
4. **Document changes** - What problem does the new version solve?
5. **Version incrementally** - Don't skip version numbers
## 🔍 Example: Adding Context-Aware Chunking
```typescript
// 1. Create new version
const COLLECTOR_V2: PromptVersion = {
version: 'v2',
createdAt: '2024-11-17',
description: 'Added instructions for context-aware chunking',
prompt: `
${COLLECTOR_V1.prompt}
**Context-Aware Retrieval**:
When referencing retrieved chunks, always cite the source document
and chunk number for transparency.
`,
};
// 2. Update prompts object
export const collectorPrompts = {
v1: COLLECTOR_V1,
v2: COLLECTOR_V2,
current: 'v2',
};
// 3. Deploy and monitor
// If issues arise, simply change current: 'v1' to rollback
```
---
**Questions?** Check the code in any prompt file for examples.