|
|
@ -383,30 +383,45 @@ print(result)
|
|
|
|
|
|
|
|
|
|
|
|
## Best Practices
|
|
|
|
## Best Practices
|
|
|
|
|
|
|
|
|
|
|
|
1. **Document Processing Strategy**:
|
|
|
|
### Document Processing Strategy
|
|
|
|
- **Chunking**: Split large documents into 200-500 token chunks for optimal retrieval
|
|
|
|
|
|
|
|
- **Overlap**: Use 20-50 token overlap between chunks to maintain context
|
|
|
|
| Practice | Recommendation | Details |
|
|
|
|
- **Preprocessing**: Clean and normalize text before indexing
|
|
|
|
|----------|----------------|---------|
|
|
|
|
|
|
|
|
| **Chunking** | 200-500 tokens | Split large documents into optimal chunks for retrieval |
|
|
|
|
2. **Collection Organization**:
|
|
|
|
| **Overlap** | 20-50 tokens | Maintain context between consecutive chunks |
|
|
|
|
- Use separate collections for different document types (technical docs, policies, etc.)
|
|
|
|
| **Preprocessing** | Clean & normalize | Remove noise and standardize text format |
|
|
|
|
- Implement consistent naming conventions for collections
|
|
|
|
|
|
|
|
- Consider document lifecycle and update strategies
|
|
|
|
### Collection Organization
|
|
|
|
|
|
|
|
|
|
|
|
3. **Embedding Model Selection**:
|
|
|
|
| Practice | Recommendation | Details |
|
|
|
|
- **Development**: Use `all-MiniLM-L6-v2` for fast iteration
|
|
|
|
|----------|----------------|---------|
|
|
|
|
- **Production**: Use `text-embedding-3-small` or `text-embedding-3-large` for quality
|
|
|
|
| **Separation** | Type-based collections | Use separate collections for docs, policies, code, etc. |
|
|
|
|
- **Specialized Domains**: Consider domain-specific embedding models
|
|
|
|
| **Naming** | Consistent conventions | Follow clear, descriptive naming patterns |
|
|
|
|
|
|
|
|
| **Lifecycle** | Update strategies | Plan for document versioning and updates |
|
|
|
|
4. **Performance Optimization**:
|
|
|
|
|
|
|
|
- **Retrieval Count**: Start with 3-5 results, adjust based on performance testing
|
|
|
|
### Embedding Model Selection
|
|
|
|
- **Batch Operations**: Use `batch_add()` for efficient bulk document ingestion
|
|
|
|
|
|
|
|
- **Metadata Strategy**: Store relevant metadata for enhanced filtering and context
|
|
|
|
| Environment | Recommended Model | Use Case |
|
|
|
|
|
|
|
|
|-------------|-------------------|----------|
|
|
|
|
5. **Production Deployment**:
|
|
|
|
| **Development** | `all-MiniLM-L6-v2` | Fast iteration and testing |
|
|
|
|
- Use Qdrant Cloud or self-hosted server for persistent storage
|
|
|
|
| **Production** | `text-embedding-3-small/large` | High-quality production deployment |
|
|
|
|
- Implement proper error handling and retry mechanisms
|
|
|
|
| **Specialized** | Domain-specific models | Industry or domain-focused applications |
|
|
|
|
- Monitor performance metrics and embedding quality
|
|
|
|
|
|
|
|
|
|
|
|
### Performance Optimization
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Setting | Recommendation | Rationale |
|
|
|
|
|
|
|
|
|---------|----------------|-----------|
|
|
|
|
|
|
|
|
| **Retrieval Count** | Start with 3-5 results | Balance relevance with performance |
|
|
|
|
|
|
|
|
| **Batch Operations** | Use `batch_add()` | Efficient bulk document processing |
|
|
|
|
|
|
|
|
| **Metadata** | Strategic storage | Enable filtering and enhanced context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Production Deployment
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Component | Best Practice | Implementation |
|
|
|
|
|
|
|
|
|-----------|---------------|----------------|
|
|
|
|
|
|
|
|
| **Storage** | Persistent server | Use Qdrant Cloud or self-hosted server |
|
|
|
|
|
|
|
|
| **Error Handling** | Robust mechanisms | Implement retry logic and graceful failures |
|
|
|
|
|
|
|
|
| **Monitoring** | Performance tracking | Monitor metrics and embedding quality |
|
|
|
|
|
|
|
|
|
|
|
|
## Performance Tips
|
|
|
|
## Performance Tips
|
|
|
|
|
|
|
|
|
|
|
|