llama-index vector_stores s3Vectors integration
Project description
S3VectorStore Integration
This is a vector store integration for LlamaIndex that uses S3Vectors.
Find out more about S3Vectors.
This notebook will assume that you have already created a S3 vector bucket (and possibly also an index).
Installation
pip install llama-index-vector-stores-s3
Usage
Creating the vector store object
You can create a new vector index in an existing S3 bucket.
from llama_index.vector_stores.s3 import S3VectorStore
import boto3
vector_store = S3VectorStore.create_index_from_bucket(
# S3 bucket name or ARN
bucket_name_or_arn="my-vector-bucket",
# Name for the new index
index_name="my-index",
# Vector dimension (e.g., 1536 for OpenAI embeddings)
dimension=1536,
# Distance metric: "cosine", "euclidean", etc.
distance_metric="cosine",
# Data type for vectors
data_type="float32",
# Batch size for inserting vectors (max 500)
insert_batch_size=500,
# Metadata keys that won't be filterable
non_filterable_metadata_keys=["custom_field"],
# Optional: provide a boto3 session for custom AWS configuration
# sync_session=boto3.Session(region_name="us-west-2"),
)
Or, you can use an existing vector index in an existing S3 bucket.
from llama_index.vector_stores.s3 import S3VectorStore
import boto3
vector_store = S3VectorStore(
# Index name or ARN
index_name_or_arn="my-index",
# S3 bucket name or ARN
bucket_name_or_arn="my-vector-bucket",
# Data type for vectors (must match index)
data_type="float32",
# Distance metric (must match index)
distance_metric="cosine",
# Batch size for inserting vectors (max 500)
insert_batch_size=500,
# Optional: specify metadata field containing text if you already have a populated index
text_field="content",
# Optional: provide a boto3 session for custom AWS configuration
# sync_session=boto3.Session(region_name="us-west-2"),
)
Using the vector store with an index
Once you have a vector store, you can use it with an index:
from llama_index.core import VectorStoreIndex, StorageContext
# Create a new index
index = VectorStoreIndex.from_documents(
documents,
storage_context=StorageContext.from_defaults(vector_store=vector_store),
# optional: set the embed model
# embed_model=embed_model,
)
# Or reload from an existing index
index = VectorStoreIndex.from_vector_store(
vector_store=vector_store,
# optional: set the embed model
# embed_model=embed_model,
)
Using the vector store directly
You can also use the vector store directly:
from llama_index.core.schema import TextNode
from llama_index.core.vector_stores.types import VectorStoreQuery
# requires pip install llama-index-embeddings-openai
from llama_index.embeddings.openai import OpenAIEmbedding
# embed nodes
nodes = [
TextNode(text="Hello, world!"),
TextNode(text="Hello, world! 2"),
]
embed_model = OpenAIEmbedding(model="text-embedding-3-small")
embeddings = embed_model.get_text_embedding_batch(nodes)
for node, embedding in zip(nodes, embeddings):
node.embedding = embedding
# add nodes to the vector store
vector_store.add(nodes)
# query the vector store
query = VectorStoreQuery(
query_embedding=embed_model.get_query_embedding("Hello, world!"),
similarity_top_k=2,
)
results = vector_store.query(query)
print(results.nodes)
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_s3-0.2.0.tar.gz.
File metadata
- Download URL: llama_index_vector_stores_s3-0.2.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f1290db3e10f86d98da235dcf189decc2550f9e3166644ce577945ca03baf50
|
|
| MD5 |
e3c9dcba412ca3f6c17679a6aca6c480
|
|
| BLAKE2b-256 |
e206ab9a99b96f2083b537ac2202ef1e1a8142c84d3935553b87d4fa69075a59
|
File details
Details for the file llama_index_vector_stores_s3-0.2.0-py3-none-any.whl.
File metadata
- Download URL: llama_index_vector_stores_s3-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f97eb6c61c9d0dd7dd99eb5207d105be3578ede0a1f24f693c794d7fdbed929
|
|
| MD5 |
9429a50109966cd94e70238c48a23d54
|
|
| BLAKE2b-256 |
6d7c439c25906913aacdea11fbce2f71356fbac17d90b0db6aa4840737481d89
|