Capabilities
Capability protocols for datastore interface.
This package defines the core capability protocols that all datastores can implement. Each protocol represents a specific set of functionality that datastores can opt-in to provide.
References
NONE
FulltextCapability
Bases: Protocol
Protocol for full-text search and document operations.
This protocol defines the interface for datastores that support CRUD operations and flexible querying mechanisms for document data.
clear(**kwargs)
async
Clear all records from the datastore.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs |
Datastore-specific parameters. |
{}
|
create(data, **kwargs)
async
delete(filters=None, options=None, **kwargs)
async
Delete records from the datastore.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filters |
FilterClause | QueryFilter | None
|
Filters to select records to delete. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None, in which case no operation is performed (no-op). |
None
|
options |
QueryOptions | None
|
Query options for sorting and limiting deletions. Defaults to None. |
None
|
**kwargs |
Datastore-specific parameters. |
{}
|
retrieve(filters=None, options=None, **kwargs)
async
Read records from the datastore with optional filtering.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filters |
FilterClause | QueryFilter | None
|
Query filters to apply. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
options |
QueryOptions | None
|
Query options like limit and sorting. Defaults to None. |
None
|
**kwargs |
Datastore-specific parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
list[Chunk]
|
list[Chunk]: Query results. |
retrieve_fuzzy(query, max_distance=2, filters=None, options=None, **kwargs)
async
Find records that fuzzy match the query within distance threshold.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query |
str
|
Text to fuzzy match against. |
required |
max_distance |
int
|
Maximum edit distance for matches (Levenshtein distance). Defaults to 2. |
2
|
filters |
FilterClause | QueryFilter | None
|
Optional metadata filters to apply. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
options |
QueryOptions | None
|
Query options (limit, sorting, etc.). Defaults to None. |
None
|
**kwargs |
Datastore-specific parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
list[Chunk]
|
list[Chunk]: Matched chunks ordered by relevance/distance. |
update(update_values, filters=None, **kwargs)
async
Update existing records in the datastore.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
update_values |
dict[str, Any]
|
Values to update. |
required |
filters |
FilterClause | QueryFilter | None
|
Filters to select records to update. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
**kwargs |
Datastore-specific parameters. |
{}
|
GraphCapability
Bases: Protocol
Protocol for graph database operations.
This protocol defines the interface for datastores that support graph-based data operations. This includes node and relationship management as well as graph queries.
delete_node(label, identifier_key, identifier_value)
async
Delete a node and its relationships.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
label |
str
|
Node label/type. |
required |
identifier_key |
str
|
Node identifier key. |
required |
identifier_value |
str
|
Node identifier value. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Deletion result information. |
delete_relationship(node_source_key, node_source_value, relation, node_target_key, node_target_value)
async
Delete a relationship between nodes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node_source_key |
str
|
Source node identifier key. |
required |
node_source_value |
str
|
Source node identifier value. |
required |
relation |
str
|
Relationship type. |
required |
node_target_key |
str
|
Target node identifier key. |
required |
node_target_value |
str
|
Target node identifier value. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Deletion result information. |
retrieve(query, parameters=None)
async
Retrieve data from the graph with specific query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query |
str
|
Query to retrieve data from the graph. |
required |
parameters |
dict[str, Any] | None
|
Query parameters. Defaults to None. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
list[dict[str, Any]]: Query results as list of dictionaries. |
upsert_node(label, identifier_key, identifier_value, properties=None)
async
Create or update a node in the graph.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
label |
str
|
Node label/type. |
required |
identifier_key |
str
|
Key field for node identification. |
required |
identifier_value |
str
|
Value for node identification. |
required |
properties |
dict[str, Any] | None
|
Additional node properties. Defaults to None. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Created/updated node information. |
upsert_relationship(node_source_key, node_source_value, relation, node_target_key, node_target_value, properties=None)
async
Create or update a relationship between nodes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node_source_key |
str
|
Source node identifier key. |
required |
node_source_value |
str
|
Source node identifier value. |
required |
relation |
str
|
Relationship type. |
required |
node_target_key |
str
|
Target node identifier key. |
required |
node_target_value |
str
|
Target node identifier value. |
required |
properties |
dict[str, Any] | None
|
Relationship properties. Defaults to None. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Created/updated relationship information. |
VectorCapability
Bases: Protocol
Protocol for vector similarity search operations.
This protocol defines the interface for datastores that support vector-based retrieval operations. This includes similarity search, ID-based lookup as well as vector storage.
clear()
async
Clear all records from the datastore.
create(data)
async
create_from_vector(chunk_vectors, **kwargs)
async
Add pre-computed vectors directly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chunk_vectors |
list[tuple[Chunk, Vector]]
|
List of tuples containing chunks and their corresponding vectors. |
required |
**kwargs |
Any
|
Datastore-specific parameters. |
{}
|
delete(filters=None, **kwargs)
async
Delete records from the datastore.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filters |
FilterClause | QueryFilter | None
|
Filters to select records to delete. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
**kwargs |
Any
|
Datastore-specific parameters |
{}
|
Note
If filters is None, no operation is performed (no-op).
retrieve(query, filters=None, options=None, **kwargs)
async
Read records from the datastore using text-based similarity search with optional filtering.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query |
str
|
Input text to embed and search with. |
required |
filters |
FilterClause | QueryFilter | None
|
Query filters to apply. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
options |
QueryOptions | None
|
Query options like limit and sorting. Defaults to None. |
None
|
**kwargs |
Any
|
Datastore-specific parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
list[Chunk]
|
list[Chunk]: Query results. |
retrieve_by_vector(vector, filters=None, options=None, **kwargs)
async
Direct vector similarity search.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vector |
Vector
|
Query embedding vector. |
required |
filters |
FilterClause | QueryFilter | None
|
Query filters to apply. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
options |
QueryOptions | None
|
Query options like limit and sorting. Defaults to None. |
None
|
**kwargs |
Any
|
Datastore-specific parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
list[Chunk]
|
list[Chunk]: List of chunks ordered by similarity score. |
update(update_values, filters=None, **kwargs)
async
Update existing records in the datastore.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
update_values |
dict[str, Any]
|
Values to update. |
required |
filters |
FilterClause | QueryFilter | None
|
Filters to select records to update. FilterClause objects are automatically converted to QueryFilter internally. Defaults to None. |
None
|
**kwargs |
Any
|
Datastore-specific parameters. |
{}
|