llama-index vector_stores tablestore integration
Project description
LlamaIndex Vector_Stores Integration: Tablestore
Tablestore is a fully managed NoSQL cloud database service that enables storage of a massive amount of structured and semi-structured data.
This page shows how to use functionality related to the Tablestore vector database.
To use Tablestore, you must create an instance. Here are the creating instance instructions.
Example
pip install llama-index-vector-stores-tablestore
import os
import tablestore
from llama_index.core import MockEmbedding
from llama_index.core.schema import TextNode
from llama_index.core.vector_stores import (
VectorStoreQuery,
MetadataFilters,
MetadataFilter,
FilterCondition,
FilterOperator,
)
from llama_index.vector_stores.tablestore import TablestoreVectorStore
# 1. create tablestore vector store
test_dimension_size = 4
store = TablestoreVectorStore(
endpoint=os.getenv("end_point"),
instance_name=os.getenv("instance_name"),
access_key_id=os.getenv("access_key_id"),
access_key_secret=os.getenv("access_key_secret"),
vector_dimension=test_dimension_size,
vector_metric_type=tablestore.VectorMetricType.VM_COSINE,
# metadata mapping is used to filter non-vector fields.
metadata_mappings=[
tablestore.FieldSchema(
"type",
tablestore.FieldType.KEYWORD,
index=True,
enable_sort_and_agg=True,
),
tablestore.FieldSchema(
"time",
tablestore.FieldType.LONG,
index=True,
enable_sort_and_agg=True,
),
],
)
# 2. create table and index
store.create_table_if_not_exist()
store.create_search_index_if_not_exist()
# 3. new a mock embedding for test
embedder = MockEmbedding(test_dimension_size)
# 4. prepare some docs
movies = [
TextNode(
id_="1",
text="hello world",
metadata={"type": "a", "time": 1995},
),
TextNode(
id_="2",
text="a b c",
metadata={"type": "a", "time": 1990},
),
TextNode(
id_="3",
text="sky cloud table",
metadata={"type": "a", "time": 2009},
),
TextNode(
id_="4",
text="dog cat",
metadata={"type": "a", "time": 2023},
),
TextNode(
id_="5",
text="computer python java",
metadata={"type": "b", "time": 2018},
),
TextNode(
id_="6",
text="java python js nodejs",
metadata={"type": "c", "time": 2010},
),
TextNode(
id_="7",
text="sdk golang python",
metadata={"type": "a", "time": 2023},
),
]
for movie in movies:
movie.embedding = embedder.get_text_embedding(movie.text)
# 5. write some docs
ids = store.add(movies)
assert len(ids) == 7
# 6. delete docs
store.delete(ids[0])
# 7. query with filters
query_result = store.query(
query=VectorStoreQuery(
query_embedding=embedder.get_text_embedding("nature fight physical"),
similarity_top_k=5,
filters=MetadataFilters(
filters=[
MetadataFilter(
key="type", value="a", operator=FilterOperator.EQ
),
MetadataFilter(
key="time", value=2020, operator=FilterOperator.LTE
),
],
condition=FilterCondition.AND,
),
),
)
print(query_result)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llama_index_vector_stores_tablestore-0.3.0.tar.gz.
File metadata
- Download URL: llama_index_vector_stores_tablestore-0.3.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96549bec075f3368e48d883f854540f626dade31fc422fa6dbca5a26b5fc98b3
|
|
| MD5 |
dcd0ce82d8b1a502b1440e6f67afc94d
|
|
| BLAKE2b-256 |
b9573f624f4e6445e15c5a3795bffa1de0bc6314f948619febda9eec55e0924a
|
File details
Details for the file llama_index_vector_stores_tablestore-0.3.0-py3-none-any.whl.
File metadata
- Download URL: llama_index_vector_stores_tablestore-0.3.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bbe66ab09e90ce1e3156e27b83cf6d6874a349c6c776f9ce1faf23babe83b81
|
|
| MD5 |
716ac5db0f3437003222b9e2374002f5
|
|
| BLAKE2b-256 |
29ac1e289f6b7d1889042be5117c1772076a41a7ae13c357e41f4ce2e2b80f29
|