feat: add Phase 3 hybrid search with Synesis reranking
Implement hybrid search pipeline combining vector, fulltext, and graph search across Neo4j, with cross-attention reranking via Synesis (Qwen3-VL-Reranker-2B) `/v1/rerank` endpoint. - Add SearchService with vector, fulltext, and graph search strategies - Add SynesisRerankerClient for multimodal reranking via HTTP API - Add search API endpoint (POST /search/) with filtering by library, collection, and library_type - Add SearchRequest/Response serializers and image search results - Add "nonfiction" to library_type choices - Consolidate reranker stack from two models to single Synesis service - Handle image analysis_status as "skipped" when analysis is unavailable - Add comprehensive tests for search pipeline and reranker client
This commit is contained in:
@@ -25,8 +25,7 @@ This **content-type awareness** flows through every layer: chunking strategy, em
|
||||
|-----------|-----------|---------|
|
||||
| **Knowledge Graph** | Neo4j 5.x | Relationships + vector storage (no dimension limits) |
|
||||
| **Multimodal Embeddings** | Qwen3-VL-Embedding-8B | Text + image + video in unified vector space (4096d) |
|
||||
| **Multimodal Re-ranking** | Qwen3-VL-Reranker-8B | Cross-attention precision scoring |
|
||||
| **Text Fallback** | Qwen3-Reranker (llama.cpp) | Text-only re-ranking via GGUF |
|
||||
| **Multimodal Re-ranking** | Synesis (Qwen3-VL-Reranker-2B) | Cross-attention precision scoring via `/v1/rerank` |
|
||||
| **Web Framework** | Django 5.x + DRF | Auth, admin, API, content management |
|
||||
| **Object Storage** | S3/MinIO | Original content + chunk text storage |
|
||||
| **Async Processing** | Celery + RabbitMQ | Document embedding, graph construction |
|
||||
|
||||
Reference in New Issue
Block a user