Description
Implement a complete RAG pipeline in the Spring backend that handles embedding, indexing, search, and reranking when files are uploaded.
Architecture
File Upload → Parse → Chunk → Embed → Index → Search → Rerank → Return
Current State
- Basic embedding and indexing implemented
- Search uses hybrid BM25 + vector similarity
- No reranking stage
Required Implementation
1. Embedding Service
2. Indexing Service
3. Search Service
4. Reranking Service (NEW)
Implementation Tasks
Configuration
opencontext:
rag:
embedding:
batch-size: 10
model: dengcao/Qwen3-Embedding-0.6B:F16
search:
top-k: 20 # Initial retrieval
bm25-weight: 0.3
vector-weight: 0.7
reranking:
enabled: true
top-k: 5 # Final results after reranking
strategy: cross-encoder # or 'llm' or 'custom'
Testing Requirements
Related Files
core/src/main/java/com/opencontext/service/EmbeddingService.java
core/src/main/java/com/opencontext/service/IndexingService.java
core/src/main/java/com/opencontext/service/SearchService.java
core/src/main/java/com/opencontext/service/RerankerService.java (new)
References
Description
Implement a complete RAG pipeline in the Spring backend that handles embedding, indexing, search, and reranking when files are uploaded.
Architecture
Current State
Required Implementation
1. Embedding Service
2. Indexing Service
3. Search Service
4. Reranking Service (NEW)
Implementation Tasks
Configuration
Testing Requirements
Related Files
core/src/main/java/com/opencontext/service/EmbeddingService.javacore/src/main/java/com/opencontext/service/IndexingService.javacore/src/main/java/com/opencontext/service/SearchService.javacore/src/main/java/com/opencontext/service/RerankerService.java(new)References