feat: integrate spring ai vectorstore fallback

This commit is contained in:
aruo
2026-07-05 10:20:29 +08:00
parent b9ec07de57
commit 5c71f5fc79
12 changed files with 541 additions and 42 deletions
@@ -0,0 +1,26 @@
## 1. Spring AI Milvus Setup
- [x] 1.1 Add the official Spring AI Milvus VectorStore starter dependency.
- [x] 1.2 Configure Spring AI Milvus to reuse the existing collection field names, dimension, metric type, and connection settings.
- [x] 1.3 Add retrieval mode configuration for `auto`, `spring-ai`, and `sdk`.
## 2. Retrieval Service Refactor
- [x] 2.1 Refactor `VectorSearchService` to inject optional Spring AI `VectorStore`.
- [x] 2.2 Implement VectorStore search and map Spring AI `Document` results to existing `SearchResult`.
- [x] 2.3 Preserve the existing SDK search path as a dedicated fallback method.
- [x] 2.4 Route retrieval by configured mode and fallback rules.
## 3. Tests
- [x] 3.1 Add tests for SDK mode bypassing VectorStore.
- [x] 3.2 Add tests for auto mode using VectorStore when available.
- [x] 3.3 Add tests for auto mode falling back to SDK when VectorStore fails or is unavailable.
- [x] 3.4 Add tests for category metadata filter behavior.
## 4. Validation And Archive
- [x] 4.1 Run targeted retrieval tests.
- [x] 4.2 Run the offline RAG retrieval baseline evaluator.
- [x] 4.3 Run OpenSpec validation.
- [x] 4.4 Review git diff to confirm `lookup_knowledge` API and evidence output remain compatible.