向量存储
Pick your embedding model:
- OpenAI
- Azure
- AWS
- VertexAI
- MistralAI
- Cohere
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/openai
yarn add @langchain/openai
pnpm add @langchain/openai
OPENAI_API_KEY=your-api-key
import { OpenAIEmbeddings } from "@langchain/openai";
const embeddings = new OpenAIEmbeddings({
model: "text-embedding-3-large"
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/openai
yarn add @langchain/openai
pnpm add @langchain/openai
AZURE_OPENAI_API_INSTANCE_NAME=<YOUR_INSTANCE_NAME>
AZURE_OPENAI_API_KEY=<YOUR_KEY>
AZURE_OPENAI_API_VERSION="2024-02-01"
import { AzureOpenAIEmbeddings } from "@langchain/openai";
const embeddings = new AzureOpenAIEmbeddings({
azureOpenAIApiEmbeddingsDeploymentName: "text-embedding-ada-002"
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/aws
yarn add @langchain/aws
pnpm add @langchain/aws
BEDROCK_AWS_REGION=your-region
import { BedrockEmbeddings } from "@langchain/aws";
const embeddings = new BedrockEmbeddings({
model: "amazon.titan-embed-text-v1"
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/google-vertexai
yarn add @langchain/google-vertexai
pnpm add @langchain/google-vertexai
GOOGLE_APPLICATION_CREDENTIALS=credentials.json
import { VertexAIEmbeddings } from "@langchain/google-vertexai";
const embeddings = new VertexAIEmbeddings({
model: "text-embedding-004"
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/mistralai
yarn add @langchain/mistralai
pnpm add @langchain/mistralai
MISTRAL_API_KEY=your-api-key
import { MistralAIEmbeddings } from "@langchain/mistralai";
const embeddings = new MistralAIEmbeddings({
model: "mistral-embed"
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/cohere
yarn add @langchain/cohere
pnpm add @langchain/cohere
COHERE_API_KEY=your-api-key
import { CohereEmbeddings } from "@langchain/cohere";
const embeddings = new CohereEmbeddings({
model: "embed-english-v3.0"
});
Pick your vector store:
- Memory
- Chroma
- FAISS
- MongoDB
- PGVector
- Pinecone
- Qdrant
Install dependencies
- npm
- yarn
- pnpm
npm i langchain
yarn add langchain
pnpm add langchain
import { MemoryVectorStore } from "langchain/vectorstores/memory";
const vectorStore = new MemoryVectorStore(embeddings);
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/community
yarn add @langchain/community
pnpm add @langchain/community
import { Chroma } from "@langchain/community/vectorstores/chroma";
const vectorStore = new Chroma(embeddings, {
collectionName: "a-test-collection",
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/community
yarn add @langchain/community
pnpm add @langchain/community
import { FaissStore } from "@langchain/community/vectorstores/faiss";
const vectorStore = new FaissStore(embeddings, {});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/mongodb
yarn add @langchain/mongodb
pnpm add @langchain/mongodb
import { MongoDBAtlasVectorSearch } from "@langchain/mongodb"
import { MongoClient } from "mongodb";
const client = new MongoClient(process.env.MONGODB_ATLAS_URI || "");
const collection = client
.db(process.env.MONGODB_ATLAS_DB_NAME)
.collection(process.env.MONGODB_ATLAS_COLLECTION_NAME);
const vectorStore = new MongoDBAtlasVectorSearch(embeddings, {
collection: collection,
indexName: "vector_index",
textKey: "text",
embeddingKey: "embedding",
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/community
yarn add @langchain/community
pnpm add @langchain/community
import { PGVectorStore } from "@langchain/community/vectorstores/pgvector";
const vectorStore = await PGVectorStore.initialize(embeddings, {})
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/pinecone
yarn add @langchain/pinecone
pnpm add @langchain/pinecone
import { PineconeStore } from "@langchain/pinecone";
import { Pinecone as PineconeClient } from "@pinecone-database/pinecone";
const pinecone = new PineconeClient();
const vectorStore = new PineconeStore(embeddings, {
pineconeIndex,
maxConcurrency: 5,
});
Install dependencies
- npm
- yarn
- pnpm
npm i @langchain/qdrant
yarn add @langchain/qdrant
pnpm add @langchain/qdrant
import { QdrantVectorStore } from "@langchain/qdrant";
const vectorStore = await QdrantVectorStore.fromExistingCollection(embeddings, {
url: process.env.QDRANT_URL,
collectionName: "langchainjs-testing",
});
LangChain.js 支持与多种向量存储的集成。你可以查看下面的完整列表:
| Name | Description |
|---|---|
| AnalyticDB | AnalyticDB for PostgreSQL 是一种大规模并行处理(MPP)数据仓库服务,专为在线分析大量数据而设计。 |
| Astra DB | 仅适用于 Node.js。 |
| Azion EdgeSQL | AzionVectorStore 用于在 Azion 的边缘平台上通过 Edge SQL 直接使用向量嵌入来管理和搜索文档集合。 |
| Azion EdgeSQL | AzionVectorStore 用于在 Azion 的边缘平台上通过 Edge SQL 直接使用向量嵌入来管理和搜索文档集合。 |
| Azure AI 搜索 | Azure AI Search(以前称为 Azure Search 和 Azure Cognitive Search)是一个分布式、RES... |
| Azure Cosmos DB for MongoDB vCore | Azure Cosmos DB for MongoDB vCore 让你可以轻松创建一个完全原生支持 MongoDB 的数据库。你可以继续... |
| Azure Cosmos DB for NoSQL | Azure Cosmos DB for NoSQL 支持对具有灵活架构的文档进行查询,并原生支持 JSON。现在它还提供向量索引和搜索功能... |
| Cassandra | 仅适用于 Node.js。 |
| Chroma | Chroma |
| ClickHouse | 仅适用于 Node.js。 |
| CloseVector | 在浏览器和 Node.js 中均可使用 |
| Cloudflare Vectorize | 如果你正在 Cloudflare Worker 中部署项目,则可以在 LangChain.js 中使用 Cloudflare Vector... |
| Convex | LangChain.js 支持 Convex 作为 向量存储,并支持标准的相似性搜索。 |
| Couchbase | Couchbase 是一个屡获殊荣的分布式 NoSQL 云数据库,为您的所有云、移动、AI 和边缘计算应用程序提供无与伦比的多功能性、性能... |
| Elasticsearch | Elasticsearch |
| Faiss | Faiss |
| 适用于 PostgreSQL 的 Google Cloud SQL | Cloud SQL 是一项完全托管的关系型数据库服务,提供高性能、无缝集成以及出色的可扩展性,支持 PostgreSQL 等数据库引擎。 |
| 适用于 PostgreSQL 的 Google Cloud SQL | Cloud SQL 是一项完全托管的关系型数据库服务,提供高性能、无缝集成以及出色的可扩展性,支持 PostgreSQL 等数据库引擎。 |
| Google Vertex AI 匹配引擎 | 仅适用于 Node.js。 |
| SAP HANA Cloud 向量引擎 | SAP HANA Cloud 向量引擎 是一个完全集成到 SAP HANA Cloud 数据库 中的向量存储。 |
| HNSWLib | HNSWLib 是一个可以保存到文件的内存向量存储,它使用 [HNSWLib |
| LanceDB | LanceDB 是一个面向 AI 应用程序的嵌入式向量数据库。它是开源的,并采用 Apache-2.0 许可证进行分发。 |
| libSQL | Turso 是一个基于 libSQL 的兼容 SQLite 的数据库,而 libSQL 是 SQLite 的开源贡献分支。向量相似性搜索作... |
| MariaDB | 需要 MariaDB 11.7 或更高版本 |
| In-memory | LangChain |
| Milvus | Milvus 是一个专为嵌入向量相似性搜索和人工智能应用而设计的向量数据库。 |
| Momento Vector Index (MVI) | MVI:您数据的最高产、最易用的无服务器向量索引。要开始使用 MVI,只需注册一个账户即可。无需处理基础设施、管理服务器,也无需担心扩展问... |
| MongoDB Atlas | 本指南提供了 MongoDB Atlas 向量存储 |
| MyScale | 仅支持 Node.js。 |
| Neo4j 向量索引 | Neo4j 是一个开源的图数据库,集成了对向量相似性搜索的支持。 |
| Neon Postgres | Neon 是一个完全托管的无服务器 PostgreSQL 数据库。它将存储和计算分离,从而提供诸如即时分支和自动扩展等功能。 |
| OpenSearch | 仅适用于 Node.js。 |
| PGVector | 为了在通用 PostgreSQL 数据库中启用向量搜索,LangChain.js 支持使用 |
| Pinecone | Pinecone |
| Prisma | 为了在 PostgreSQL 数据库中使用向量搜索增强现有模型,Langchain 支持将 Prisma 与 PostgreSQL 和 p... |
| Qdrant | Qdrant |
| Redis | Redis 是一个快速的开源内存数据存储。作为 [Redis |
| Rockset | Rockset(已被 OpenAI 收购)是一个在云端运行的实时分析型 SQL 数据库。 |
| SingleStore | SingleStoreDB 是一个强大且高性能的分布式 SQL 数据库解决方案,专为在 云环境 和本地环境中均表现出色而设计。它具备多样化... |
| Supabase | Supabase 是一个开源的 Firebase |
| Tigris | Tigris 使得使用向量嵌入构建 AI 应用程序变得简单。它是一个完全托管的云原生数据库,允许你存储和索引文档及向量嵌入,以实现快速且可... |
| Turbopuffer | 配置 |
| TypeORM | 为了在通用的 PostgreSQL 数据库中启用向量搜索,LangChain.js 支持使用 TypeORM 和 pgvector Pos... |
| Typesense | 利用 Typesense 搜索引擎的向量存储。 |
| Upstash Vector | Upstash Vector 是一个基于 REST |
| USearch | 仅适用于 Node.js。 |
| Vectara | Vectara 是一个用于构建生成式人工智能(GenAI)应用的平台。它提供了一个易于使用的 API,用于文档索引和查询,该 API 由 ... |
| Vercel Postgres | LangChain.js 支持使用 @vercel/postgres 包将通用的 Postgres 数据库用作向量存储,前提是这些数据库支... |
| Voy | Voy 是一个使用 Rust 编写的 WASM 向量相似性搜索引擎。 |
| Weaviate | Weaviate |
| Xata | Xata 是一个基于 PostgreSQL 的无服务器数据平台。它提供了类型安全的 TypeScript/JavaScript SDK 用... |
| Zep 开源项目 | Zep 是一个为 AI 助手应用提供的长期记忆服务。 |
| Zep 云服务 | Zep 是一个面向 AI 助手应用的长期记忆服务。 |