📄️ Activeloop Deep Lake
Activeloop Deep Lake 是一个多模态向量存储库,用于存储嵌入向量及其元数据,包括文本、Jsons、图像、音频、视频等。它可以将数据保存在本地、云端或Activeloop存储中。它执行包括嵌入向量及其属性在内的混合搜索。
📄️ Aerospike
Aerospike Vector Search (AVS) 是 Aerospike 数据库的扩展,它可以在 Aerospike 中存储的大型数据集上进行搜索。这项新服务位于 Aerospike 之外,并构建了一个索引来执行这些搜索。
📄️ 阿里云 OpenSearch
阿里云 OpenSearch 是一个一站式平台,用于开发智能搜索服务。OpenSearch 是基于 阿里巴巴 开发的大规模分布式搜索引擎构建的。OpenSearch 为阿里巴巴集团的 500 多个业务案例和数千名阿里云客户提供服务。OpenSearch 帮助在不同的搜索场景中开发搜索服务,包括电子商务、O2O、多媒体、内容行业、社区和论坛以及企业中的大数据查询。
📄️ AnalyticDB
AnalyticDB for PostgreSQL 是一个用于在线分析大数据的大规模并行处理(MPP)数据仓库服务。
📄️ Annoy
Annoy(Approximate Nearest Neighbors Oh Yeah)是一个 C++ 库,带有 Python 绑定,用于搜索空间中与给定查询点接近的点。它还创建了大型的只读基于文件的数据结构,这些数据结构被映射到内存中,以便许多进程可以共享相同的数据。
📄️ Apache Doris
Apache Doris 是一个用于实时分析的现代数据仓库。它能够在大规模实时数据上实现快速的分析。
📄️ Astra DB
本页面提供了使用 Astra DB 作为向量存储的快速入门指南。
📄️ Atlas
Atlas 是 Nomic 公司开发的一个平台,用于与小型和互联网规模的非结构化数据集进行交互。它使任何人都能够在浏览器中可视化、搜索和共享大规模数据集。
📄️ AwaDB
AwaDB 是一种用于搜索和存储由 LLM 应用程序使用的嵌入向量的 AI 本地数据库。
📄️ Azure Cosmos DB
本笔记本向您展示如何利用这个集成的向量数据库来存储集合中的文档,创建索引,并使用近似最近邻算法(如 COS(余弦距离)、L2(欧几里德距离)和IP(内积))执行向量搜索查询,以定位接近查询向量的文档。
📄️ Azure AI 搜索
Azure AI Search(之前称为 Azure Search 和 Azure Cognitive Search)是一项云搜索服务,为开发人员提供基础设施、API 和工具,以便在规模上进行向量、关键字和混合查询的信息检索。
📄️ 贝果
贝果(用于AI的开放推理平台),就像是面向AI数据的GitHub。
📄️ BagelDB
BagelDB(Open Vector Database for AI)就像是面向AI数据的GitHub。
📄️ 百度云 ElasticSearch 向量搜索
百度云向量搜索 是一项完全托管的企业级分布式搜索和分析服务,100% 兼容开源。百度云向量搜索为结构化/非结构化数据提供低成本、高性能和可靠的检索和分析平台级产品服务。作为向量数据库,它支持多种索引类型和相似度距离方法。
📄️ 百度 VectorDB
百度 VectorDB 是由百度智能云精心开发和完全管理的强大的企业级分布式数据库服务。它以其出色的存储、检索和分析多维向量数据的能力而脱颖而出。在其核心,VectorDB 使用百度专有的 "Mochow" 向量数据库内核,确保高性能、可用性和安全性,以及卓越的可扩展性和用户友好性。
📄️ Apache Cassandra
本页面提供了使用Apache Cassandra®作为向量存储的快速入门指南。
📄️ Chroma
Chroma 是一个以人工智能为基础的开源向量数据库,专注于开发者的生产力和幸福感。Chroma 使用 Apache 2.0 许可证。
📄️ Clarifai
Clarifai 是一个提供完整 AI 生命周期的 AI 平台,包括数据探索、数据标注、模型训练、评估和推理。上传输入后,Clarifai 应用程序可以用作向量数据库。
📄️ ClickHouse
ClickHouse 是用于实时应用程序和分析的最快速、资源利用率最高的开源数据库,具有完整的 SQL 支持和广泛的功能,可帮助用户编写分析查询。最近增加的数据结构和距离搜索功能(如 L2Distance),以及近似最近邻搜索索引使 ClickHouse 可以用作高性能、可扩展的向量数据库,用于存储和搜索具有 SQL 的向量。
📄️ Couchbase
Couchbase 是一款备受赞誉的分布式 NoSQL 云数据库,为您的云端、移动、人工智能和边缘计算应用提供了无与伦比的多功能性、性能、可扩展性和经济价值。Couchbase 通过为开发人员提供编码辅助和向量搜索来支持人工智能。
📄️ DashVector
DashVector 是一项完全托管的 vectorDB 服务,支持高维稠密和稀疏向量、实时插入和过滤搜索。它被设计为能够自动扩展,并能够适应不同的应用需求。
📄️ Databricks Vector Search
Databricks Vector Search 是一个无服务器的相似度搜索引擎,允许您在向量数据库中存储数据的向量表示,包括元数据。使用 Vector Search,您可以从由 Unity Catalog 管理的 Delta 表中创建自动更新的向量搜索索引,并使用简单的 API 进行查询以返回最相似的向量。
📄️ DingoDB
DingoDB 是一个分布式多模式向量数据库,结合了数据湖和向量数据库的特点,可以存储任何类型和大小的数据(键-值、PDF、音频、视频等)。它具有实时低延迟处理能力,实现快速洞察和响应,并能高效地进行即时分析和处理多模态数据。
📄️ DocArray HnswSearch
DocArrayHnswSearch 是由 Docarray 提供的一种轻量级文档索引实现,完全在本地运行,最适合小到中等大小的数据集。它在磁盘上存储向量使用 hnswlib,并将所有其他数据存储在 SQLite 中。
📄️ DocArray 内存搜索
DocArrayInMemorySearch 是由 Docarray 提供的文档索引,它将文档存储在内存中。对于小型数据集来说,这是一个很好的起点,您可能不想启动数据库服务器。
📄️ 亚马逊文档数据库
亚马逊文档数据库(与 MongoDB 兼容) 可以轻松在云中设置、操作和扩展与 MongoDB 兼容的数据库。
📄️ DuckDB
本笔记展示了如何将 DuckDB 用作向量存储。
📄️ 中国移动ECloud ElasticSearch VectorSearch
中国移动ECloud VectorSearch 是一项完全托管的企业级分布式搜索和分析服务。中国移动ECloud VectorSearch为结构化/非结构化数据提供低成本、高性能和可靠的检索和分析平台级产品服务。作为矢量数据库,它支持多种索引类型和相似度距离方法。
📄️ Elasticsearch
Elasticsearch 是一个分布式的、基于 RESTful 的搜索和分析引擎,能够执行向量搜索和词法搜索。它是构建在 Apache Lucene 库之上。
📄️ Epsilla
Epsilla 是一个开源的矢量数据库,利用先进的并行图遍历技术进行矢量索引。Epsilla 使用 GPL-3.0 许可证。
📄️ Faiss
Facebook AI Similarity Search (Faiss) 是一个用于高效相似度搜索和密集向量聚类的库。它包含了在任意大小的向量集合中进行搜索的算法,甚至可以处理可能无法完全放入内存的向量集合。它还包含用于评估和参数调整的支持代码。
📄️ Faiss(异步)
Facebook AI Similarity Search (Faiss) 是一个用于高效相似性搜索和密集向量聚类的库。它包含了在任何大小的向量集合中进行搜索的算法,甚至可以处理可能无法放入内存的向量集合。它还包含了用于评估和参数调整的支持代码。
📄️ Google AlloyDB for PostgreSQL
AlloyDB 是一个完全托管的关系型数据库服务,提供高性能、无缝集成和令人印象深刻的可伸缩性。AlloyDB 与 PostgreSQL 完全兼容。通过 AlloyDB 的 Langchain 集成,可以扩展数据库应用程序以构建基于人工智能的体验。
📄️ Google BigQuery 向量搜索
Google Cloud BigQuery 向量搜索 允许您使用 GoogleSQL 进行语义搜索,使用向量索引快速获取近似结果,或者使用暴力搜索获取精确结果。
📄️ Google Cloud SQL for MySQL
Cloud SQL 是一个完全托管的关系型数据库服务,提供高性能、无缝集成和令人印象深刻的可扩展性。它提供了 PostgreSQL、MySQL 和 SQL Server 数据库引擎。通过 Cloud SQL 的 LangChain 集成,您可以扩展数据库应用程序,构建利用 AI 动力的体验。
📄️ Google Cloud SQL for PostgreSQL
Cloud SQL 是一种完全托管的关系型数据库服务,提供高性能、无缝集成和可扩展性强的特点。它支持 PostgreSQL、MySQL 和 SQL Server 数据库引擎。通过使用 Cloud SQL 的 Langchain 集成,您可以扩展数据库应用程序,构建基于人工智能的体验。
📄️ 谷歌 Firestore(原生模式)
Firestore 是一个无服务器的面向文档的数据库,可扩展以满足任何需求。通过 Firestore 的 Langchain 集成,扩展您的数据库应用程序以构建基于人工智能的体验。
📄️ Google Memorystore for Redis
Google Memorystore for Redis 是一项由 Redis 内存数据存储支持的全托管服务,用于构建应用程序缓存,提供亚毫秒级的数据访问。通过使用 Memorystore for Redis 的 Langchain 集成,可以扩展数据库应用程序以构建基于人工智能的体验。
📄️ 谷歌 Spanner
Spanner 是一种高度可扩展的数据库,它将无限可扩展性与关系语义(如次要索引、强一致性、模式和 SQL)结合在一个简单的解决方案中,提供 99.999% 的可用性。
📄️ Google Vertex AI Vector SearchThis notebook shows how to use functionality related to the Google Cloud Vertex AI Vector Search vector database.> [Google Vertex AI Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview), formerly known as Vertex AI Matching Engine, provides the industry's leading high-scale low latency vector database. These vector databases are commonly referred to as vector similarity-matching or an approximate nearest neighbor (ANN) service.**Note**: Langchain API expects an endpoint and deployed index already created.Index creation time can take upto one hour.> To see how to create an index refer to the section [Create Index and deploy it to an Endpoint](#create-index-and-deploy-it-to-an-endpoint) If you already have an index deployed , skip to [Create VectorStore from texts](#create-vector-store-from-texts)## Create Index and deploy it to an Endpoint- This section demonstrates creating a new index and deploying it to an endpointpython# TODO : Set values as per your requirements# Project and Storage ConstantsPROJECT_ID = "<my_project_id>"REGION = "<my_region>"BUCKET = "<my_gcs_bucket>"BUCKET_URI = f"gs://{BUCKET}"# The number of dimensions for the textembedding-gecko@003 is 768# If other embedder is used, the dimensions would probably need to change.DIMENSIONS = 768# Index ConstantsDISPLAY_NAME = "<my_matching_engine_index_id>"DEPLOYED_INDEX_ID = "<my_matching_engine_endpoint_id>"python# Create a bucket.! gsutil mb -l $REGION -p $PROJECT_ID $BUCKET_URI### Use [VertexAIEmbeddings](https://python.langchain.com/docs/integrations/text_embedding/google_vertex_ai_palm/) as the embeddings modelpythonfrom google.cloud import aiplatformfrom langchain_google_vertexai import VertexAIEmbeddingspythonaiplatform.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)pythonembedding_model = VertexAIEmbeddings(model_name="textembedding-gecko@003")### Create an empty Index **Note :** While creating an index you should specify an "index_update_method" from either a "BATCH_UPDATE" or "STREAM_UPDATE"> A batch index is for when you want to update your index in a batch, with data which has been stored over a set amount of time, like systems which are processed weekly or monthly. A streaming index is when you want index data to be updated as new data is added to your datastore, for instance, if you have a bookstore and want to show new inventory online as soon as possible. Which type you choose is important, since setup and requirements are different.Refer [Official Documentation](https://cloud.google.com/vertex-ai/docs/vector-search/create-manage-index#create-index-batch) for more details on configuring indexespython# NOTE : This operation can take upto 30 secondsmy_index = aiplatform.MatchingEngineIndex.create_tree_ah_index( display_name=DISPLAY_NAME, dimensions=DIMENSIONS, approximate_neighbors_count=150, distance_measure_type="DOT_PRODUCT_DISTANCE", index_update_method="STREAM_UPDATE", # allowed values BATCH_UPDATE , STREAM_UPDATE)### Create an Endpointpython# Create an endpointmy_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create( display_name=f"{DISPLAY_NAME}-endpoint", public_endpoint_enabled=True)### Deploy Index to the Endpointpython# NOTE : This operation can take upto 20 minutesmy_index_endpoint = my_index_endpoint.deploy_index( index=my_index, deployed_index_id=DEPLOYED_INDEX_ID)my_index_endpoint.deployed_indexes## Create Vector Store from textsNOTE : If you have existing Index and Endpoints, you can load them using below codepython# TODO : replace 1234567890123456789 with your acutial index IDmy_index = aiplatform.MatchingEngineIndex("1234567890123456789")# TODO : replace 1234567890123456789 with your acutial endpoint IDmy_index_endpoint = aiplatform.MatchingEngineIndexEndpoint("1234567890123456789")pythonfrom langchain_google_vertexai import ( VectorSearchVectorStore, VectorSearchVectorStoreDatastore,)### Create simple vectorstore ( without filters)python# Input textstexts = [ "The cat sat on", "the mat.", "I like to", "eat pizza for", "dinner.", "The sun sets", "in the west.",]# Create a Vector Storevector_store = VectorSearchVectorStore.from_components( project_id=PROJECT_ID, region=REGION, gcs_bucket_name=BUCKET, index_id=my_index.name, endpoint_id=my_index_endpoint.name, embedding=embedding_model, stream_update=True,)# Add vectors and mapped text chunks to your vectore storevector_store.add_texts(texts=texts)### OPTIONAL : You can also create vectore and store chunks in a Datastore python# NOTE : This operation can take upto 20 minsvector_store = VectorSearchVectorStoreDatastore.from_components( project_id=PROJECT_ID, region=REGION, index_id=my_index.name, endpoint_id=my_index_endpoint.name, embedding=embedding_model, stream_update=True,)vector_store.add_texts(texts=texts, is_complete_overwrite=True)python# Try running a simialarity searchvector_store.similarity_search("pizza")### Create vectorstore with metadata filterspython# Input text with metadatarecord_data = [ { "description": "A versatile pair of dark-wash denim jeans." "Made from durable cotton with a classic straight-leg cut, these jeans" " transition easily from casual days to dressier occasions.", "price": 65.00, "color": "blue", "season": ["fall", "winter", "spring"], }, { "description": "A lightweight linen button-down shirt in a crisp white." " Perfect for keeping cool with breathable fabric and a relaxed fit.", "price": 34.99, "color": "white", "season": ["summer", "spring"], }, { "description": "A soft, chunky knit sweater in a vibrant forest green. " "The oversized fit and cozy wool blend make this ideal for staying warm " "when the temperature drops.", "price": 89.99, "color": "green", "season": ["fall", "winter"], }, { "description": "A classic crewneck t-shirt in a soft, heathered blue. " "Made from comfortable cotton jersey, this t-shirt is a wardrobe essential " "that works for every season.", "price": 19.99, "color": "blue", "season": ["fall", "winter", "summer", "spring"], }, { "description": "A flowing midi-skirt in a delicate floral print. " "Lightweight and airy, this skirt adds a touch of feminine style " "to warmer days.", "price": 45.00, "color": "white", "season": ["spring", "summer"], },]python# Parse and prepare input datatexts = []metadatas = []for record in record_data: record = record.copy() page_content = record.pop("description") texts.append(page_content) if isinstance(page_content, str): metadata = {**record} metadatas.append(metadata)python# Inspect metadatasmetadataspython# NOTE : This operation can take more than 20 minsvector_store = VectorSearchVectorStore.from_components( project_id=PROJECT_ID, region=REGION, gcs_bucket_name=BUCKET, index_id=my_index.name, endpoint_id=my_index_endpoint.name, embedding=embedding_model,)vector_store.add_texts(texts=texts, metadatas=metadatas, is_complete_overwrite=True)pythonfrom google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint import ( Namespace, NumericNamespace,)python# Try running a simple similarity search# Below code should return 5 resultsvector_store.similarity_search("shirt", k=5)python# Try running a similarity search with text filterfilters = [Namespace(name="season", allow_tokens=["spring"])]# Below code should return 4 results nowvector_store.similarity_search("shirt", k=5, filter=filters)python# Try running a similarity search with combination of text and numeric filterfilters = [Namespace(name="season", allow_tokens=["spring"])]numeric_filters = [NumericNamespace(name="price", value_float=40.0, op="LESS")]# Below code should return 2 results nowvector_store.similarity_search( "shirt", k=5, filter=filters, numeric_filter=numeric_filters)### Use Vector Store as retrieverpython# Initialize the vectore_store as retrieverretriever = vector_store.as_retriever()python# perform simple similarity search on retrieverretriever.invoke("What are my options in breathable fabric?")python# Try running a similarity search with text filterfilters = [Namespace(name="season", allow_tokens=["spring"])]retriever.search_kwargs = {"filter": filters}# perform similarity search with filters on retrieverretriever.invoke("What are my options in breathable fabric?")python# Try running a similarity search with combination of text and numeric filterfilters = [Namespace(name="season", allow_tokens=["spring"])]numeric_filters = [NumericNamespace(name="price", value_float=40.0, op="LESS")]retriever.search_kwargs = {"filter": filters, "numeric_filter": numeric_filters}retriever.invoke("What are my options in breathable fabric?")### Use filters with retriever in Question Answering Chainspythonfrom langchain_google_vertexai import VertexAIllm = VertexAI(model_name="gemini-pro")pythonfrom langchain.chains import RetrievalQAfilters = [Namespace(name="season", allow_tokens=["spring"])]numeric_filters = [NumericNamespace(name="price", value_float=40.0, op="LESS")]retriever.search_kwargs = {"k": 2, "filter": filters, "numeric_filter": numeric_filters}retrieval_qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True,)question = "What are my options in breathable fabric?"response = retrieval_qa({"query": question})print(f"{response['result']}")print("REFERENCES")print(f"{response['source_documents']}")## Read , Chunk , Vectorise and Index PDFspython!pip install pypdfpythonfrom langchain_community.document_loaders import PyPDFLoaderfrom langchain_text_splitters import RecursiveCharacterTextSplitterpythonloader = PyPDFLoader("https://arxiv.org/pdf/1706.03762.pdf")pages = loader.load()pythontext_splitter = RecursiveCharacterTextSplitter( # Set a really small chunk size, just to show. chunk_size=1000, chunk_overlap=20, length_function=len, is_separator_regex=False,)doc_splits = text_splitter.split_documents(pages)pythontexts = [doc.page_content for doc in doc_splits]metadatas = [doc.metadata for doc in doc_splits]pythontexts[0]python# Inspect Metadata of 1st pagemetadatas[0]pythonvector_store = VectorSearchVectorStore.from_components( project_id=PROJECT_ID, region=REGION, gcs_bucket_name=BUCKET, index_id=my_index.name, endpoint_id=my_index_endpoint.name, embedding=embedding_model,)vector_store.add_texts(texts=texts, metadatas=metadatas, is_complete_overwrite=True)pythonvector_store = VectorSearchVectorStore.from_components( project_id=PROJECT_ID, region=REGION, gcs_bucket_name=BUCKET, index_id=my_index.name, endpoint_id=my_index_endpoint.name, embedding=embedding_model,)
create-index-and-deploy-it-to-an-endpoint) If you already have an index deployed , skip to Create VectorStore from texts## Create Index and deploy it to an Endpoint- This section demonstrates creating a new index and deploying it to an endpoint`python# TODO//"# The number of dimensions for the textembedding-gecko@003 is 768# If other embedder is used, the dimensions would probably need to change.DIMENSIONS = 768# Index ConstantsDISPLAYNAME = ""DEPLOYEDINDEXID = ""``python# Create a bucket.! gsutil mb -l $REGION -p $PROJECTID $BUCKETURI`### Use VertexAIEmbeddings as the embeddings model`pythonfrom google.cloud import aiplatformfrom langchaingooglevertexai import VertexAIEmbeddings``pythonaiplatform.init(project=PROJECTID, location=REGION, stagingbucket=BUCKETURI)``pythonembeddingmodel = VertexAIEmbeddings(modelname="textembedding-gecko@003")`### Create an empty Index Note This operation can take upto 30 secondsmyindex = aiplatform.MatchingEngineIndex.createtreeahindex( displayname=DISPLAYNAME, dimensions=DIMENSIONS, approximateneighborscount=150, distancemeasuretype="DOTPRODUCTDISTANCE", indexupdatemethod="STREAMUPDATE", # allowed values BATCHUPDATE , STREAMUPDATE)`### Create an Endpoint`python# Create an endpointmyindexendpoint = aiplatform.MatchingEngineIndexEndpoint.create( displayname=f"{DISPLAYNAME}-endpoint", publicendpointenabled=True)`### Deploy Index to the Endpoint`python# NOTE If you have existing Index and Endpoints, you can load them using below code`python# TODO replace 1234567890123456789 with your acutial endpoint IDmyindexendpoint = aiplatform.MatchingEngineIndexEndpoint("1234567890123456789")``pythonfrom langchaingooglevertexai import ( VectorSearchVectorStore, VectorSearchVectorStoreDatastore,)`Langchainassets.png### Create simple vectorstore ( without filters)`python# Input textstexts = [ "The cat sat on", "the mat.", "I like to", "eat pizza for", "dinner.", "The sun sets", "in the west.",]# Create a Vector Storevectorstore = VectorSearchVectorStore.fromcomponents( projectid=PROJECTID, region=REGION, gcsbucketname=BUCKET, indexid=myindex.name, endpointid=myindexendpoint.name, embedding=embeddingmodel, streamupdate=True,)# Add vectors and mapped text chunks to your vectore storevectorstore.addtexts(texts=texts)`### OPTIONAL This operation can take upto 20 minsvectorstore = VectorSearchVectorStoreDatastore.fromcomponents( projectid=PROJECTID, region=REGION, indexid=myindex.name, endpointid=myindexendpoint.name, embedding=embeddingmodel, streamupdate=True,)vectorstore.addtexts(texts=texts, iscompleteoverwrite=True)``python# Try running a simialarity searchvectorstore.similaritysearch("pizza")`### Create vectorstore with metadata filters`python# Input text with metadatarecorddata = [ { "description" 65.00, "color" ["fall", "winter", "spring"], }, { "description" 34.99, "color" ["summer", "spring"], }, { "description" 89.99, "color" ["fall", "winter"], }, { "description" 19.99, "color" ["fall", "winter", "summer", "spring"], }, { "description" 45.00, "color" ["spring", "summer"], },]``python# Parse and prepare input datatexts = []metadatas = []for record in recorddata metadata = {record} metadatas.append(metadata)``python# Inspect metadatasmetadatas``python# NOTE filters}# perform similarity search with filters on retrieverretriever.invoke("What are my options in breathable fabric?")``python# Try running a similarity search with combination of text and numeric filterfilters = [Namespace(name="season", allowtokens=["spring"])]numericfilters = [NumericNamespace(name="price", valuefloat=40.0, op="LESS")]retriever.searchkwargs = {"filter" numericfilters}retriever.invoke("What are my options in breathable fabric?")`### Use filters with retriever in Question Answering Chains`pythonfrom langchaingooglevertexai import VertexAIllm = VertexAI(modelname="gemini-pro")``pythonfrom langchain.chains import RetrievalQAfilters = [Namespace(name="season", allowtokens=["spring"])]numericfilters = [NumericNamespace(name="price", valuefloat=40.0, op="LESS")]retriever.searchkwargs = {"k" filters, "numericfilter" question})print(f"{response['result']}")print("REFERENCES")print(f"{response['sourcedocuments']}")`## Read , Chunk , Vectorise and Index PDFs`python!pip install pypdf``pythonfrom langchaincommunity.documentloaders import PyPDFLoaderfrom langchaintextsplitters import RecursiveCharacterTextSplitter``pythonloader = PyPDFLoader("https://arxiv.org/pdf/1706.03762.pdf")pages = loader.load()``pythontextsplitter = RecursiveCharacterTextSplitter( # Set a really small chunk size, just to show. chunksize=1000, chunkoverlap=20, lengthfunction=len, isseparatorregex=False,)docsplits = textsplitter.splitdocuments(pages)``pythontexts = [doc.pagecontent for doc in docsplits]metadatas = [doc.metadata for doc in docsplits]``pythontexts[0]``python# Inspect Metadata of 1st pagemetadatas[0]``pythonvectorstore = VectorSearchVectorStore.fromcomponents( projectid=PROJECTID, region=REGION, gcsbucketname=BUCKET, indexid=myindex.name, endpointid=myindexendpoint.name, embedding=embeddingmodel,)vectorstore.addtexts(texts=texts, metadatas=metadatas, iscompleteoverwrite=True)``pythonvectorstore = VectorSearchVectorStore.fromcomponents( projectid=PROJECTID, region=REGION, gcsbucketname=BUCKET, indexid=myindex.name, endpointid=myindexendpoint.name, embedding=embeddingmodel,)`
📄️ 河马
Transwarp Hippo 是一种企业级的云原生分布式向量数据库,支持存储、检索和管理海量基于向量的数据集。它高效地解决了向量相似性搜索和高密度向量聚类等问题。Hippo 具有高可用性、高性能和易扩展性的特点。它具有多个向量搜索索引、数据分区和分片、数据持久化、增量数据摄取、向量标量字段过滤和混合查询等多种功能。它能够有效满足企业对海量向量数据的高实时搜索需求。
📄️ Hologres
Hologres 是由阿里云开发的统一实时数据仓库服务。您可以使用 Hologres 实时写入、更新、处理和分析大量数据。Hologres 支持标准 SQL 语法,兼容 PostgreSQL,并支持大多数 PostgreSQL 函数。Hologres 支持高达 PB 级别的在线分析处理(OLAP)和即席分析,并提供高并发和低延迟的在线数据服务。
📄️ Infinispan
Infinispan是一个开源的键值数据网格,可以作为单节点和分布式工作。
📄️ Jaguar Vector Database
1. Jaguar Vector Database 是一个分布式向量数据库。
📄️ KDB.AI
KDB.AI 是一个功能强大的基于知识的向量数据库和搜索引擎,可以通过提供先进的搜索、推荐和个性化功能,让您能够利用实时数据构建可扩展、可靠的人工智能应用程序。
📄️ Kinetica Vectorstore API
Kinetica 是一个集成了向量相似性搜索支持的数据库。
📄️ LanceDB
LanceDB 是一个基于持久存储构建的用于向量搜索的开源数据库,极大地简化了嵌入式的检索、过滤和管理。完全开源。
📄️ 灯笼
Lantern 是一个用于 Postgres 的开源向量相似度搜索工具。
📄️ LLMRails
LLMRails 是一个用于构建 GenAI 应用程序的 API 平台。它提供了一个易于使用的 API,用于文档索引和查询,由 LLMRails 管理,并针对性能和准确性进行了优化。
📄️ Marqo
本文介绍了与 Marqo 向量存储相关的功能。
📄️ Meilisearch
Meilisearch 是一款开源、速度极快且超相关的搜索引擎。它具有出色的默认设置,可帮助开发人员构建迅捷的搜索体验。
📄️ Milvus
Milvus 是一个数据库,用于存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的大规模嵌入向量。
📄️ Momento 矢量索引(MVI)
MVI:最高效、最易用的无服务器矢量索引,适用于您的数据。要开始使用 MVI,只需注册一个帐户。无需处理基础架构、管理服务器或担心扩展性。MVI 是一个可以自动扩展以满足您需求的服务。
📄️ MongoDB Atlas
MongoDB Atlas 是一款在 AWS、Azure 和 GCP 上提供的全托管云数据库。现在它支持在 MongoDB 文档数据上进行原生向量搜索。
📄️ MyScale
MyScale 是一个基于云的数据库,专为人工智能应用和解决方案进行了优化,构建在开源项目 ClickHouse 的基础上。
📄️ Neo4j 向量索引
Neo4j 是一个集成了向量相似度搜索支持的开源图形数据库。
📄️ NucliaDB
你可以使用本地的 NucliaDB 实例,也可以使用Nuclia Cloud。
📄️ OpenSearch
OpenSearch 是一个可扩展、灵活、可扩展的开源软件套件,用于搜索、分析和可观察性应用,采用 Apache 2.0 许可。OpenSearch 是基于 Apache Lucene 的分布式搜索和分析引擎。
📄️ Oracle AI Vector Search: Vector Store
Oracle AI Vector Search 是专为人工智能(AI)工作负载设计的,允许您基于语义而不是关键词查询数据。
📄️ 路径
Pathway 是一个开放的数据处理框架。它允许您轻松开发数据转换管道和与实时数据源以及不断变化的数据一起工作的机器学习应用程序。
📄️ Postgres 嵌入
Postgres 嵌入 是一个开源的向量相似度搜索工具,用于 Postgres 数据库,它使用 Hierarchical Navigable Small Worlds (HNSW) 进行近似最近邻搜索。
📄️ PGVecto.rs
本笔记本展示了如何使用与Postgres向量数据库相关的功能 (pgvecto.rs)。
📄️ PGVector
一个使用 postgres 作为后端并利用 pgvector 扩展实现 LangChain 向量存储抽象的项目。
📄️ 松果
Pinecone 是一个功能广泛的向量数据库。
📄️ Qdrant
Qdrant(读作:quadrant)是一个向量相似度搜索引擎。它提供了一个生产就绪的服务,具有方便的 API 来存储、搜索和管理点 - 带有附加载荷的向量。Qdrant专门支持扩展过滤功能,使其对各种神经网络或基于语义的匹配、分面搜索和其他应用非常有用。
📄️ Redis
Redis 矢量数据库 介绍和 Langchain 集成指南。
📄️ Relyt
Relyt 是一个云原生数据仓库服务,旨在在线分析大量数据。
📄️ Rockset
Rockset 是一个专为云端构建的实时搜索和分析数据库。Rockset 使用 Converged Index™ 和高效的向量嵌入存储,以提供低延迟、高并发的大规模搜索查询。Rockset 全面支持元数据过滤,并处理不断更新的实时摄入流数据。
📄️ SAP HANA 云矢量引擎
SAP HANA 云矢量引擎 是完全集成到 SAP HANA 云 数据库中的矢量存储。
📄️ ScaNN
ScaNN(Scalable Nearest Neighbors)是一种用于大规模高效向量相似度搜索的方法。
📄️ SemaDB
SemaDB 是由 SemaFind 提供的一个无需烦恼的向量相似度数据库,用于构建人工智能应用程序。托管的 SemaDB Cloud 提供了一个无需烦恼的开发者体验,让您可以立即开始使用。
📄️ SingleStoreDB
SingleStoreDB 是一个强大的、高性能的分布式 SQL 数据库解决方案,旨在在云端和本地环境中均表现出色。凭借多功能的功能集,它提供了无缝部署选项,同时提供无与伦比的性能。
📄️ scikit-learn
scikit-learn 是一个开源的机器学习算法集合,其中包括一些 k 最近邻居 的实现。SKLearnVectorStore 封装了这个实现,并添加了将向量存储为 json、bson(二进制 json)或 Apache Parquet 格式的功能。
📄️ SQLite-VSS
SQLite-VSS 是一个为向量搜索而设计的 SQLite 扩展,强调本地优先操作,并且可以轻松集成到应用程序中,无需外部服务器。利用 Faiss 库,它提供了高效的相似性搜索和聚类能力。
📄️ StarRocks
StarRocks 是一款高性能的分析型数据库。
📄️ Supabase (Postgres)
Supabase 是一个开源的 Firebase 替代品。Supabase 建立在 PostgreSQL 之上,后者提供了强大的 SQL 查询功能,并能够与已有的工具和框架简单地进行接口对接。
📄️ SurrealDB
SurrealDB 是一款端到端的云原生数据库,专为现代应用程序设计,包括 Web、移动、无服务器、Jamstack、后端和传统应用程序。使用 SurrealDB,您可以简化数据库和 API 基础架构,减少开发时间,并快速、经济高效地构建安全、高性能的应用程序。
📄️ Tair
Tair 是由阿里云开发的云原生内存数据库服务。它提供丰富的数据模型和企业级能力,以支持您的实时在线场景,同时与开源的 Redis 完全兼容。Tair 还引入了基于新的非易失性内存(NVM)存储介质的持久内存优化实例。
📄️ 腾讯云 VectorDB
Tencent Cloud VectorDB 是一种全托管的、自主开发的企业级分布式数据库服务,旨在存储、检索和分析多维向量数据。该数据库支持多种索引类型和相似度计算方法。单个索引可支持高达10亿的向量规模,并支持数百万的 QPS 和毫秒级的查询延迟。腾讯云 Vector Database 不仅可以为大型模型提供外部知识库,提高大型模型响应的准确性,还可以广泛应用于推荐系统、自然语言处理服务、计算机视觉和智能客服等人工智能领域。
📄️ ThirdAI NeuralDB
NeuralDB 是由 ThirdAI 开发的 CPU 友好且可微调的向量存储。
📄️ TiDB Vector
TiDB Cloud 是一款全面的数据库即服务(DBaaS)解决方案,提供了专用和无服务器选项。TiDB 无服务器现在正在将内置的向量搜索集成到 MySQL 环境中。通过这一增强功能,您可以在 TiDB 无服务器上轻松开发 AI 应用程序,无需新的数据库或额外的技术堆栈。通过加入私人测试版的等待列表,成为第一批体验者,访问网址 https://tidb.cloud/ai。
📄️ Tigris
Tigris 是一个开源的无服务器 NoSQL 数据库和搜索平台,旨在简化构建高性能向量搜索应用程序。
📄️ TileDB
TileDB 是一个强大的引擎,用于索引和查询密集和稀疏的多维数组。
📄️ Timescale Vector (Postgres)
Timescale Vector 是用于 AI 应用的 PostgreSQL++ 向量数据库。
📄️ Typesense
Typesense 是一款开源的内存搜索引擎,您可以选择自行托管,也可以在Typesense 云上运行。
📄️ Upstash Vector
Upstash Vector 是一个为向量嵌入工作而设计的无服务器向量数据库。
📄️ USearch
USearch 是一个更小更快的单文件向量搜索引擎
📄️ Vald
Vald 是一个高度可扩展的分布式快速近似最近邻(ANN)密集向量搜索引擎。
📄️ Intel 的视觉数据管理系统(VDMS)
Intel 的 VDMS 是一种用于高效访问大规模“视觉”数据的存储解决方案,旨在通过搜索以图形存储的视觉元数据来实现云规模,并实现对视觉数据的机器友好增强,以加快访问速度。VDMS 根据 MIT 许可证发布。
📄️ Vearch
Vearch 是用于深度学习和人工智能应用的向量搜索基础设施。
📄️ Vectara
Vectara 是一款可信赖的 GenAI 平台,提供了一个易于使用的 API,用于文档索引和查询。
📄️ Vespa
Vespa 是一个功能齐全的搜索引擎和向量数据库。它支持向量搜索(ANN)、词汇搜索和结构化数据搜索,所有这些功能都可以在同一个查询中使用。
📄️ Viking DB
viking DB 是一个存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的大规模嵌入向量的数据库。
📄️ VLite
VLite 是一个简单且速度极快的向量数据库,允许您使用嵌入来语义化地存储和检索数据。VLite 使用 numpy 制作,是一个轻量级的、内置电池的数据库,可用于在项目中实现 RAG、相似性搜索和嵌入。
📄️ Weaviate
本文介绍了如何使用 langchain-weaviate 包在 LangChain 中开始使用 Weaviate 向量存储。
📄️ Xata
Xata 是一个基于 PostgreSQL 的无服务器数据平台。它提供了一个 Python SDK 用于与数据库交互,并提供了一个用户界面用于管理数据。
📄️ Yellowbrick
Yellowbrick 是一种弹性的、大规模并行处理(MPP)的 SQL 数据库,可在云端和本地运行,使用 Kubernetes 进行规模、弹性和云端可移植性。Yellowbrick 旨在解决最大和最复杂的业务关键数据仓库使用案例。Yellowbrick 提供的规模效率还使其能够作为高性能和可扩展的向量数据库,用于存储和搜索带有 SQL 的向量。
📄️ Zep
回忆、理解并从聊天记录中提取数据。为个性化的 AI 体验提供动力。
📄️ Zilliz
Zilliz Cloud 是一个完全托管在云端的 LF AI Milvus® 服务,