Documentation Index Fetch the complete documentation index at: https://nvd-54.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Valkey is an open source, high-performance key/value datastore that supports workloads such as caching, message queues, and can act as a primary database. Valkey can run as either a standalone daemon or in a cluster, with options for replication and high availability.
This page covers how to use the Valkey vector store with Amazon ElastiCache for Valkey or Amazon MemoryDB for Valkey .
Install the required dependencies:
pip install "langchain-aws[valkey]"
The Valkey integration requires langchain-aws>=1.5.0. If you’re using an earlier version, install the dependency directly: pip install langchain-aws valkey-glide-sync
基本用法
With Bedrock Embeddings
from langchain_aws import BedrockEmbeddings
from langchain_aws . vectorstores import ValkeyVectorStore
# Initialize embeddings
embeddings = BedrockEmbeddings (
model_id = "amazon.titan-embed-text-v1" ,
region_name = "us-east-1"
)
# Create vector store from texts
vectorstore = ValkeyVectorStore . from_texts (
texts = [ "Valkey is fast" , "Valkey supports vector search" ],
embedding = embeddings ,
valkey_url = "valkey://localhost:6379" ,
index_name = "my_index"
)
# Perform similarity search
results = vectorstore . similarity_search ( "fast database" , k = 2 )
for doc in results :
print ( doc . page_content )
With Ollama Embeddings
from langchain_ollama import OllamaEmbeddings
from langchain_aws . vectorstores import ValkeyVectorStore
# Initialize Ollama embeddings
embeddings = OllamaEmbeddings (
model = "nomic-embed-text" ,
base_url = "http://localhost:11434"
)
# Create vector store
vectorstore = ValkeyVectorStore (
embedding = embeddings ,
valkey_url = "valkey://localhost:6379" ,
index_name = "my_index" ,
vector_schema = {
"name" : "content_vector" ,
"algorithm" : "FLAT" ,
"dims" : 768 , # nomic-embed-text dimension
"distance_metric" : "COSINE" ,
"datatype" : "FLOAT32" ,
}
)
# Add texts
vectorstore . add_texts (
texts = [ "Document 1" , "Document 2" ],
metadatas = [{ "source" : "doc1" }, { "source" : "doc2" }]
)
# Search
results = vectorstore . similarity_search ( "query" , k = 2 )
Connection URLs
ValkeyVectorStore supports various connection URL formats:
# Standalone
valkey_url = "valkey://localhost:6379"
# With authentication
valkey_url = "valkey://username:password@host:6379"
# SSL/TLS
valkey_url = "valkeyss://host:6379"
# SSL with authentication
valkey_url = "valkeyss://username:password@host:6379"
AWS ElastiCache for Valkey
from langchain_aws import BedrockEmbeddings
from langchain_aws . vectorstores import ValkeyVectorStore
embeddings = BedrockEmbeddings ()
# Connect to ElastiCache cluster
vectorstore = ValkeyVectorStore (
embedding = embeddings ,
valkey_url = "valkeyss://my-cluster.cache.amazonaws.com:6379" ,
index_name = "my_index"
)
# Add documents
vectorstore . add_texts (
texts = [ "Document 1" , "Document 2" ],
metadatas = [{ "source" : "doc1" }, { "source" : "doc2" }]
)
from langchain_aws . vectorstores . valkey . filters import ValkeyTag , ValkeyNum
# Add documents with metadata
vectorstore . add_texts (
texts = [ "AI article from 2024" , "ML paper from 2023" ],
metadatas = [
{ "category" : "ai" , "year" : 2024 },
{ "category" : "ml" , "year" : 2023 }
]
)
# Search with filters
filter_expr = ( ValkeyTag ( "category" ) == "ai" ) & ( ValkeyNum ( "year" ) >= 2024 )
results = vectorstore . similarity_search (
"artificial intelligence" ,
k = 5 ,
filter = str ( filter_expr )
)
Custom Vector Schema
from langchain_aws . vectorstores import ValkeyVectorStore
vectorstore = ValkeyVectorStore (
embedding = embeddings ,
valkey_url = "valkey://localhost:6379" ,
index_name = "my_index" ,
vector_schema = {
"name" : "content_vector" ,
"algorithm" : "HNSW" , # or "FLAT"
"dims" : 1536 ,
"distance_metric" : "COSINE" , # or "L2", "IP"
"datatype" : "FLOAT32" ,
}
)
API Reference
For detailed API documentation, see ValkeyVectorStore .
连接这些文档 到 Claude、VSCode 等工具,通过 MCP 获取实时答案。