llama-index graph stores tidb integration
Project description
LlamaIndex Graph Stores Integration: TiDB
TiDB is a distributed SQL database, it is MySQL compatible and features horizontal scalability, strong consistency, and high availability. Currently it also supports Vector Search in TiDB Cloud Serverless.
In this project, we integrate TiDB as the graph store to store the LlamaIndex graph data, and use TiDB's SQL interface to query the graph data. so that people can use TiDB to interact with LlamaIndex graph index.
- Property Graph Store:
TiDBPropertyGraphStore - Knowledge Graph Store:
TiDBGraphStore
Installation
pip install llama-index llama-index-graph-stores-tidb
Usage
Property Graph Store
NOTE: TiDBPropertyGraphStore requires the Vector Search feature in TiDB, but now it is only available in TiDB Cloud Serverless.
Please checkout this tutorial to learn how to use TiDBPropertyGraphStore with LlamaIndex.
Simple example to use TiDBPropertyGraphStore:
from llama_index.core import PropertyGraphIndex, SimpleDirectoryReader
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
from llama_index.core.indices.property_graph import SchemaLLMPathExtractor
from llama_index.graph_stores.tidb import TiDBPropertyGraphStore
documents = SimpleDirectoryReader(
"../../../examples/data/paul_graham/"
).load_data()
graph_store = TiDBPropertyGraphStore(
db_connection_string="mysql+pymysql://user:password@host:4000/dbname?ssl_verify_cert=true&ssl_verify_identity=true",
)
index = PropertyGraphIndex.from_documents(
documents,
embed_model=OpenAIEmbedding(model_name="text-embedding-3-small"),
kg_extractors=[
SchemaLLMPathExtractor(
llm=OpenAI(model="gpt-3.5-turbo", temperature=0.0)
)
],
property_graph_store=graph_store,
show_progress=True,
)
query_engine = index.as_query_engine(include_text=True)
response = query_engine.query("What happened at Interleaf and Viaweb?")
print(response)
Knowledge Graph Store
Checkout this tutorial to learn how to use TiDBGraphStore with LlamaIndex.
For TiDBGraphStore, you can use either Self-Hosted TiDB or TiDB Cloud Serverless(Recommended).
Simple example to use TiDBGraphStore:
from llama_index.graph_stores.tidb import TiDBGraphStore
from llama_index.core import (
KnowledgeGraphIndex,
SimpleDirectoryReader,
StorageContext,
)
documents = SimpleDirectoryReader(
"../../../examples/data/paul_graham/"
).load_data()
graph_store = TiDBGraphStore(
db_connection_string="mysql+pymysql://user:password@host:4000/dbname"
)
storage_context = StorageContext.from_defaults(graph_store=graph_store)
index = KnowledgeGraphIndex.from_documents(
documents=documents,
storage_context=storage_context,
max_triplets_per_chunk=2,
)
query_engine = index.as_query_engine(
include_text=False, response_mode="tree_summarize"
)
response = query_engine.query(
"Tell me more about Interleaf",
)
print(response)
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_graph_stores_tidb-0.4.0.tar.gz.
File metadata
- Download URL: llama_index_graph_stores_tidb-0.4.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f40524e6cd5820c60a5096c0b19b374ae4dd89a1ed3916fa5817abe6f74559c8
|
|
| MD5 |
5084bf5dc40afd4b197ad0d8a70ca098
|
|
| BLAKE2b-256 |
52224fa4925eb7c64df62d7f204b6190fd59b2647d6c75004eb1fb00cb701037
|
File details
Details for the file llama_index_graph_stores_tidb-0.4.0-py3-none-any.whl.
File metadata
- Download URL: llama_index_graph_stores_tidb-0.4.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e2a6a38fd0d0d3e861de9c6cf58141b98c7218582efe11481e3a9127fc682d8
|
|
| MD5 |
02dd2c54095497a30d9f8e9e8ba3455f
|
|
| BLAKE2b-256 |
4df27e0d9c2ec8dc774a0703376bfda04457ad077dc4dc1ca709c66c558f1a2d
|