SKILL.md
Onboarding System (Cache-based RAG)
Intelligent onboarding system that prevents overload through efficient caching, embedding transformation, and RAG-based retrieval.
Architecture
Onboarding Documents
↓
[Text Processing & Chunking]
↓
[Embedding Generation] → [Cache Layer (Redis)] → [Vector DB (LanceDB/Qdrant)]
↓ ↓
[Query] → [Cache Check] → [Cache Hit?] → [Yes: Return Cached]
↓ ↓
[No] [Vector Search]
↓ ↓
[Generate Answer] → [Store in Cache]
Features
1. Cache Layer
- Redis-based fast cache for common queries
- TTL-based automatic cache invalidation
- LRU eviction policy for memory efficiency
- Cache hit ratio monitoring
2. Embedding Transformation
- Multiple embedding model support (OpenAI, Cohere, Local)
- Batch embedding for efficiency
- Embedding caching to prevent recomputation
- Dimensionality reduction options (PCA, UMAP)
3. RAG Retrieval
- Hybrid search (semantic + keyword)
- Re-ranking for relevance optimization
- Context window management
- Source attribution
4. Onboarding Management
- Document versioning
- Incremental updates (only process changed content)
- Progress tracking
- Analytics dashboard
Setup
Prerequisites
# Install dependencies
pip install lancedb redis qdrant-client openai numpy scikit-learn
# Start Redis (optional, for cache layer)
brew install redis
brew services start redis
Configuration
Create onboarding-config.json:
{
"embedding": {
"model": "text-embedding-3-small",
"dimensions": 1536,
"batch_size": 100
},
"cache": {
"enabled": true,
"host": "localhost",
"port": 6379,
"ttl_seconds": 3600,
"max_size_mb": 500
},
"vector_db": {
"type": "lancedb",
"path": "./data/onboarding-lancedb"
},
"rag": {
"top_k": 5,
"chunk_size": 500,
"chunk_overlap": 50,
"rerank_threshold": 0.7
}
}
Usage
Initialize Onboarding System
from onboarding_system import OnboardingSystem
onboarding = OnboardingSystem(config="onboarding-config.json")
onboarding.initialize()
Add Onboarding Documents
# Single document
onboarding.add_document(
path="docs/getting-started.md",
category="setup",
priority="high"
)
# Batch import
onboarding.import_directory(
path="onboarding/",
recursive=True
)
Query with Cache
# Automatic cache usage
result = onboarding.query(
"How do I set up my first project?",
use_cache=True
)
print(f"Answer: {result.answer}")
print(f"Sources: {result.sources}")
print(f"Cache hit: {result.from_cache}")
Update Documents
# Incremental update (only changed chunks)
onboarding.update_document(
path="docs/getting-started.md"
)
Cache Management
# View cache stats
stats = onboarding.cache_stats()
print(f"Hit ratio: {stats['hit_ratio']}")
# Clear cache
onboarding.clear_cache()
# Warm up cache for common queries
onboarding.warmup_cache([
"How do I get started?",
"What are the basic features?",
"How to configure settings?"
])
Performance Optimization
1. Caching Strategy
- Hot queries: Cache most frequent questions
- Warm queries: Pre-cache expected questions
- Cold queries: Vector search with cache storage
2. Embedding Efficiency
- Batch process documents
- Cache embeddings of unchanged chunks
- Reuse embeddings across queries
3. Memory Management
- Document chunking for context windows
- Lazy loading of vector databases
- Periodic cache cleanup
4. Parallel Processing
- Concurrent embedding generation
- Async vector search
- Background cache warming
Monitoring
Cache Performance
# Real-time monitoring
metrics = onboarding.get_metrics()
print(f"Cache hit ratio: {metrics['cache_hit_ratio']}")
print(f"Avg query time: {metrics['avg_query_time']}ms")
print(f"Cache size: {metrics['cache_size_mb']}MB")
Onboarding Progress
# Track onboarding completion
progress = onboarding.get_progress("user_id")
print(f"Completed sections: {progress['completed']}")
print(f"Next section: {progress['next']}")
Best Practices
1. Document Structure
onboarding/
├── 01-introduction/
│ ├── overview.md
│ └── quick-start.md
├── 02-setup/
│ ├── installation.md
│ └── configuration.md
├── 03-features/
│ └── feature-guide.md
└── 04-advanced/
└── customization.md
2. Query Patterns
- Start broad, then refine
- Use natural language
- Include context when relevant
3. Cache Tuning
- Monitor hit ratios
- Adjust TTL based on content update frequency
- Set appropriate cache size limits
Integration with AFO Kingdom
Philosophy Alignment
- 眞 (Truth): Accurate retrieval from verified sources
- 善 (Goodness): Efficient system that respects resources
- 美 (Beauty): Clean API and smooth user experience
- 孝 (Serenity): Reliable, consistent performance
Integration Points
- Triple Memory: LanceDB integration
- Ultimate RAG: Retrieval pipeline
- Health Monitor: Performance metrics
Troubleshooting
Low Cache Hit Ratio
- Increase cache TTL
- Warm up cache with common queries
- Check query consistency
Slow Query Performance
- Increase batch size for embedding
- Enable parallel processing
- Check vector DB indexing
High Memory Usage
- Reduce cache size limit
- Implement LRU eviction
- Clear stale cache entries