[geaflow/ai-memory] Define `VectorStore` SPI with model metadata
- Dominant language
- Java
- Stars
- 808
- Forks
- 188
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
Priority: P0
Difficulty: Intermediate
Context: `EmbeddingIndexStore` stores embeddings for `GraphEntity` in JSONL and memory map. Phase 1 needs a generic vector store contract for both chunks and graph entities.
Scope:
- Add `VectorStore` interface.
- Define metadata fields: `model_name`, `dimension`, `distance`, `index_version`, `created_at`, `format_version`.
- Add tests for dimension mismatch, missing metadata, and model mismatch.
Constraints:
- Do not implement ANN in this issue.
- Do not break existing `EmbeddingIndexStore` behavior.
Acceptance Criteria:
- Loading vectors with wrong dimension fails closed.
- Metadata is persisted in local fixture format.
Suggested paths:
- `geaflow-ai/src/main/java/org/apache/geaflow/ai/index/vectorstore`
Contributor guide
Research direction
Start by reading the existing EmbeddingIndexStore and the files under geaflow-ai/src/main/java/org/apache/geaflow/ai/index/vectorstore. Define the VectorStore contract and model metadata there without changing existing behavior, then add tests covering dimension mismatch, missing metadata, and model mismatch. Done means wrong dimensions fail closed and metadata is persisted in the local fixture format.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100