241 lines
6.7 KiB
Markdown
241 lines
6.7 KiB
Markdown
|
|
# Quick Start Guide
|
||
|
|
|
||
|
|
Get your first Brainy application running in just a few minutes with zero configuration required!
|
||
|
|
|
||
|
|
## ⚡ The 2-Minute Setup
|
||
|
|
|
||
|
|
### 1. Install Brainy
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm install @soulcraft/brainy
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Create Your First Vector Database
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
// That's it! Everything is auto-configured
|
||
|
|
const brainy = createAutoBrainy()
|
||
|
|
|
||
|
|
// Add some data
|
||
|
|
await brainy.addVector({
|
||
|
|
id: '1',
|
||
|
|
vector: [0.1, 0.2, 0.3],
|
||
|
|
text: 'Hello world'
|
||
|
|
})
|
||
|
|
|
||
|
|
// Search for similar vectors
|
||
|
|
const results = await brainy.search([0.1, 0.2, 0.3], 10)
|
||
|
|
console.log('Found:', results)
|
||
|
|
```
|
||
|
|
|
||
|
|
🎉 **Congratulations!** You now have a production-ready vector database with:
|
||
|
|
- ✅ Automatic environment detection
|
||
|
|
- ✅ Optimized memory management
|
||
|
|
- ✅ Intelligent caching
|
||
|
|
- ✅ Performance auto-tuning
|
||
|
|
|
||
|
|
## 🎯 Choose Your Scenario
|
||
|
|
|
||
|
|
### Scenario 1: Development & Testing
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
// Perfect for development - uses memory storage
|
||
|
|
const brainy = createAutoBrainy()
|
||
|
|
|
||
|
|
// Add test data
|
||
|
|
await brainy.addVector({ id: '1', vector: [0.1, 0.2, 0.3] })
|
||
|
|
await brainy.addVector({ id: '2', vector: [0.4, 0.5, 0.6] })
|
||
|
|
|
||
|
|
// Search
|
||
|
|
const results = await brainy.search([0.1, 0.2, 0.3], 5)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Scenario 2: Production with Persistence
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
// Auto-detects AWS credentials from environment variables
|
||
|
|
const brainy = createAutoBrainy({
|
||
|
|
bucketName: 'my-vector-storage'
|
||
|
|
})
|
||
|
|
|
||
|
|
// Data persists in S3 - survives restarts
|
||
|
|
await brainy.addVector({ id: '1', vector: [0.1, 0.2, 0.3] })
|
||
|
|
```
|
||
|
|
|
||
|
|
### Scenario 3: Scale-Specific Setup
|
||
|
|
```typescript
|
||
|
|
import { createQuickBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
// Choose your scale: 'small', 'medium', 'large', 'enterprise'
|
||
|
|
const brainy = await createQuickBrainy('large', {
|
||
|
|
bucketName: 'my-big-vector-db'
|
||
|
|
})
|
||
|
|
|
||
|
|
// System auto-configures for 1M+ vectors
|
||
|
|
```
|
||
|
|
|
||
|
|
### Scenario 4: Text-Based Semantic Search
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
const brainy = createAutoBrainy()
|
||
|
|
|
||
|
|
// Add text - automatically converted to vectors
|
||
|
|
await brainy.addText('1', 'Machine learning is fascinating')
|
||
|
|
await brainy.addText('2', 'Deep learning models are powerful')
|
||
|
|
await brainy.addText('3', 'Cats make great pets')
|
||
|
|
|
||
|
|
// Search by meaning, not keywords
|
||
|
|
const results = await brainy.searchText('AI and neural networks', 2)
|
||
|
|
// Returns: machine learning and deep learning results
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🧠 What Auto-Configuration Does
|
||
|
|
|
||
|
|
When you use `createAutoBrainy()`, the system automatically:
|
||
|
|
|
||
|
|
### 🎯 **Environment Detection**
|
||
|
|
- Detects Browser, Node.js, or Serverless environment
|
||
|
|
- Configures threading (Web Workers vs Worker Threads)
|
||
|
|
- Sets appropriate memory limits
|
||
|
|
|
||
|
|
### 💾 **Smart Storage Selection**
|
||
|
|
- **Browser**: OPFS (persistent) → Memory (fallback)
|
||
|
|
- **Node.js**: FileSystem → S3 (if configured)
|
||
|
|
- **Serverless**: S3 (if configured) → Memory
|
||
|
|
|
||
|
|
### ⚡ **Performance Optimization**
|
||
|
|
- **Memory Management**: Uses available RAM optimally
|
||
|
|
- **Semantic Partitioning**: Clusters similar vectors automatically
|
||
|
|
- **Distributed Search**: Parallel processing on multi-core systems
|
||
|
|
- **Multi-Level Caching**: Hot/Warm/Cold caching strategy
|
||
|
|
|
||
|
|
### 📊 **Adaptive Learning**
|
||
|
|
- Monitors search performance in real-time
|
||
|
|
- Adjusts parameters every 50 searches
|
||
|
|
- Learns from your data patterns
|
||
|
|
- Continuously improves performance
|
||
|
|
|
||
|
|
## 📋 Complete Examples
|
||
|
|
|
||
|
|
### Example 1: Document Search System
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
const brainy = createAutoBrainy()
|
||
|
|
|
||
|
|
// Add documents
|
||
|
|
const docs = [
|
||
|
|
{ id: 'doc1', text: 'Climate change affects global weather patterns' },
|
||
|
|
{ id: 'doc2', text: 'Machine learning models can predict weather' },
|
||
|
|
{ id: 'doc3', text: 'Solar panels reduce carbon emissions' }
|
||
|
|
]
|
||
|
|
|
||
|
|
for (const doc of docs) {
|
||
|
|
await brainy.addText(doc.id, doc.text)
|
||
|
|
}
|
||
|
|
|
||
|
|
// Semantic search
|
||
|
|
const results = await brainy.searchText('environmental sustainability', 3)
|
||
|
|
console.log('Relevant documents:', results)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Example 2: Recommendation System
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
|
||
|
|
const brainy = createAutoBrainy()
|
||
|
|
|
||
|
|
// Add user preferences as vectors
|
||
|
|
await brainy.addVector({
|
||
|
|
id: 'user1',
|
||
|
|
vector: [0.8, 0.1, 0.9, 0.2], // [action, comedy, drama, horror]
|
||
|
|
metadata: { name: 'Alice', age: 25 }
|
||
|
|
})
|
||
|
|
|
||
|
|
await brainy.addVector({
|
||
|
|
id: 'user2',
|
||
|
|
vector: [0.1, 0.9, 0.2, 0.8],
|
||
|
|
metadata: { name: 'Bob', age: 30 }
|
||
|
|
})
|
||
|
|
|
||
|
|
// Find similar users
|
||
|
|
const similar = await brainy.search([0.7, 0.2, 0.8, 0.1], 2)
|
||
|
|
console.log('Similar users:', similar)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Example 3: Production API
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
import { createAutoBrainy } from '@soulcraft/brainy'
|
||
|
|
import express from 'express'
|
||
|
|
|
||
|
|
const app = express()
|
||
|
|
const brainy = createAutoBrainy({
|
||
|
|
bucketName: process.env.S3_BUCKET_NAME
|
||
|
|
})
|
||
|
|
|
||
|
|
app.post('/add', async (req, res) => {
|
||
|
|
const { id, text } = req.body
|
||
|
|
await brainy.addText(id, text)
|
||
|
|
res.json({ success: true })
|
||
|
|
})
|
||
|
|
|
||
|
|
app.get('/search', async (req, res) => {
|
||
|
|
const { query, limit = 10 } = req.query
|
||
|
|
const results = await brainy.searchText(query, limit)
|
||
|
|
res.json({ results })
|
||
|
|
})
|
||
|
|
|
||
|
|
app.listen(3000, () => {
|
||
|
|
console.log('Vector search API running on port 3000')
|
||
|
|
})
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🚀 Performance Benchmarks
|
||
|
|
|
||
|
|
With auto-configuration, you can expect:
|
||
|
|
|
||
|
|
| Dataset Size | Search Time | Memory Usage | Setup Time |
|
||
|
|
|-------------|-------------|--------------|------------|
|
||
|
|
| 1k vectors | <10ms | <100MB | <1 second |
|
||
|
|
| 10k vectors | ~50ms | ~300MB | <5 seconds |
|
||
|
|
| 100k vectors | ~200ms | ~1GB | ~30 seconds |
|
||
|
|
| 1M vectors | ~500ms | ~4GB | ~5 minutes |
|
||
|
|
|
||
|
|
*Benchmarks on modern hardware. Actual performance varies by environment.*
|
||
|
|
|
||
|
|
## 🔄 Next Steps
|
||
|
|
|
||
|
|
Now that you have Brainy running:
|
||
|
|
|
||
|
|
### Learn More Features
|
||
|
|
- **[First Steps Guide](first-steps.md)** - Core concepts and features
|
||
|
|
- **[User Guides](../user-guides/)** - Advanced search techniques
|
||
|
|
- **[Optimization Guides](../optimization-guides/)** - Scale to millions
|
||
|
|
|
||
|
|
### Production Deployment
|
||
|
|
- **[Environment Setup](environment-setup.md)** - Configure for production
|
||
|
|
- **[API Reference](../api-reference/)** - Complete API documentation
|
||
|
|
- **[Examples](../examples/)** - Real-world integration patterns
|
||
|
|
|
||
|
|
### Get Help
|
||
|
|
- **[Troubleshooting](../troubleshooting/)** - Common issues and solutions
|
||
|
|
- **[GitHub Issues](https://github.com/soulcraft-research/brainy/issues)** - Bug reports
|
||
|
|
- **[GitHub Discussions](https://github.com/soulcraft-research/brainy/discussions)** - Community support
|
||
|
|
|
||
|
|
## 💡 Pro Tips
|
||
|
|
|
||
|
|
1. **Start Simple**: Use `createAutoBrainy()` first, optimize later
|
||
|
|
2. **Monitor Performance**: Check metrics with `brainy.getPerformanceMetrics()`
|
||
|
|
3. **Use S3 for Production**: Persistent storage survives restarts
|
||
|
|
4. **Let it Learn**: Performance improves automatically over time
|
||
|
|
5. **Scale Gradually**: Start with 'small' scenario, upgrade as needed
|
||
|
|
|
||
|
|
**Ready to build something amazing?** 🚀
|