addDocument method

  1. @override
Future<void> addDocument({
  1. required String id,
  2. required String content,
  3. required List<double> embedding,
  4. String? metadata,
})
override

Add document with embedding to vector store

Auto-dimension detection:

  • First document sets the dimension (e.g., 768D)
  • Subsequent documents must match that dimension

INSERT OR REPLACE behavior:

  • If id exists, document is updated (replace)
  • If id is new, document is inserted

Parameters:

  • id: Unique document identifier (PRIMARY KEY)
  • content: Document text content
  • embedding: Vector embedding (dimension auto-detected from first add)
  • metadata: Optional JSON string metadata

Throws:

  • StateError if not initialized
  • ArgumentError if embedding dimension doesn't match existing documents Throws VectorStoreException if the store is initialized but holds on-disk data it could not read — an implementation must refuse rather than report an unreadable corpus as an empty one.

Implementation

@override
Future<void> addDocument({
  required String id,
  required String content,
  required List<double> embedding,
  String? metadata,
}) async {
  throw UnimplementedError(
    'WebSqliteVectorStore is only available on web; use SqliteVectorStore',
  );
}