2.5 KiB
2.5 KiB
ADDED Requirements
Requirement: Knowledge retrieval SHALL prefer Spring AI VectorStore when configured
The retrieval service SHALL support Spring AI VectorStore as the preferred vector retrieval abstraction without changing the lookup_knowledge tool contract.
Scenario: VectorStore mode uses Spring AI
- WHEN retrieval vector store mode is configured as
spring-ai - THEN semantic retrieval SHALL query through Spring AI
VectorStore - AND the returned candidates SHALL be normalized into the existing vector search result shape
Scenario: Auto mode prefers VectorStore
- WHEN retrieval vector store mode is configured as
auto - AND a Spring AI
VectorStorebean is available - THEN semantic retrieval SHALL attempt Spring AI
VectorStorebefore the SDK path
Requirement: Knowledge retrieval SHALL preserve SDK fallback
The retrieval service SHALL keep the existing Milvus SDK retrieval implementation available.
Scenario: SDK mode bypasses VectorStore
- WHEN retrieval vector store mode is configured as
sdk - THEN semantic retrieval SHALL use the existing Milvus SDK path
Scenario: Auto fallback uses SDK
- WHEN retrieval vector store mode is
auto - AND Spring AI
VectorStoreis unavailable or fails - THEN semantic retrieval SHALL fall back to the existing Milvus SDK path
Requirement: Knowledge retrieval SHALL keep score semantics explicit
The retrieval service SHALL preserve score semantics when results come from different retrieval implementations.
Scenario: SDK score remains L2 distance
- WHEN a candidate is returned by the SDK path
- THEN its score semantics SHALL remain compatible with existing L2 distance normalization
Scenario: VectorStore score is mapped without changing tool contract
- WHEN a candidate is returned by Spring AI
VectorStore - THEN it SHALL be mapped into the existing result shape
- AND trace or comparison code SHALL be able to distinguish it as a VectorStore similarity score when needed
Requirement: Knowledge retrieval SHALL reuse the existing Milvus collection
Spring AI Milvus integration SHALL be configured to use the existing collection schema unless explicitly changed.
Scenario: Existing field mapping
- WHEN Spring AI Milvus VectorStore is configured
- THEN it SHALL use the existing id, content, vector, and metadata field names
- AND it SHALL use the configured embedding dimension and metric type compatible with existing vectors