apache / apache/geaflow

[geaflow/ai-memory] Define `VectorStore` SPI with model metadata

Open
#851 6 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.