向量数据库
向量数据库存储嵌入数据并执行相似性搜索。
选择你的嵌入模型
- OpenAI
- Azure
- AWS
- VertexAI
- MistralAI
- Cohere
安装依赖
- 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"
});
安装依赖
- 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"
});
安装依赖
- 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"
});
安装依赖
- 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"
});
安装依赖
- 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"
});
安装依赖
- 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"
});
选择你的向量数据库
- 内存
- Chroma
- FAISS
- MongoDB
- PGVector
- Pinecone
- Qdrant
安装依赖
- npm
- yarn
- pnpm
npm i langchain
yarn add langchain
pnpm add langchain
import { MemoryVectorStore } from "langchain/vectorstores/memory";
const vectorStore = new MemoryVectorStore(embeddings);
安装依赖
- 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",
});
安装依赖
- 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, {});
安装依赖
- 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",
});
安装依赖
- 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, {})
安装依赖
- 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,
});
安装依赖
- 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 与各种向量数据库集成。你可以在下面查看完整列表
名称 | 描述 |
---|---|
AnalyticDB | AnalyticDB for PostgreSQL 是一个大规模并行处理 (MPP) da... |
Astra DB | 仅在 Node.js 上可用。 |
Azure AI 搜索 | Azure AI 搜索 (以前称为 Azure 搜索和 Azure 认知服务 S... |
Azure Cosmos DB for MongoDB vCore | Azure Cosmos DB for MongoDB vCore 使创建数据库变得容易... |
Azure Cosmos DB for NoSQL | Azure Cosmos DB for NoSQL 提供对查询具有 fl... 的项目的支持 |
Cassandra | 仅在 Node.js 上可用。 |
Chroma | Chroma 是一个 AI 原生的 |
ClickHouse | 仅在 Node.js 上可用。 |
CloseVector | 在浏览器和 Node.js 上都可用 |
Cloudflare Vectorize | 如果你正在 Cloudflare worker 中部署你的项目,你可以使用... |
Convex | LangChain.js 支持 Convex 作为向量数据库,并支持 stan... |
Couchbase | Couchbase 是一个屡获殊荣的分布式 NoSQL 云数据库,它 d... |
Elasticsearch | Elasticsearch 是一个 |
Faiss | Faiss 是一个用于... |
Google Vertex AI 匹配引擎 | 仅在 Node.js 上可用。 |
SAP HANA Cloud 向量引擎 | SAP HANA Cloud 向量引擎是一个完全集成到 ... 的向量数据库 |
HNSWLib | HNSWLib 是一个可以保存到文件的内存向量数据库。它 |
LanceDB | LanceDB 是一个用于 AI 应用程序的嵌入式向量数据库。它是 ope... |
libSQL | Turso 是一个基于 libSQL 构建的 SQLite 兼容数据库,Open Contr... |
MariaDB | 这需要 MariaDB 11.7 或更高版本 |
内存中 | LangChain 提供的是一个内存中的、短暂的向量数据库,它存储 |
Milvus | Milvus 是一个为嵌入相似性搜索而构建的向量数据库 an... |
Momento 向量索引 (MVI) | MVI:最高效、最易于使用、用于 ... 的无服务器向量索引 |
MongoDB Atlas | 本指南提供了快速入门 MongoDB 的概述 |
MyScale | 仅在 Node.js 上可用。 |
Neo4j 向量索引 | Neo4j 是一个开源图数据库,它集成了对 ve... 的支持 |
Neon Postgres | Neon 是一个完全托管的无服务器 PostgreSQL 数据库。它分离了... |
OpenSearch | 仅在 Node.js 上可用。 |
PGVector | 要在通用 PostgreSQL 数据库中启用向量搜索,LangChain.js |
Pinecone | Pinecone 是一个向量数据库,它可以帮助 |
Prisma | 为了在 PostgreSQL 数据库中使用向量 sea... 增强现有模型 |
Qdrant | Qdrant 是一个向量相似性搜索引擎。它 |
Redis | Redis 是一个快速的开源内存数据存储。 |
Rockset | Rockset 是一个在云中运行的实时分析 SQL 数据库。 |
SingleStore | SingleStoreDB 是一个健壮的、高性能的分布式 SQL 数据库... |
Supabase | Supabase 是一个开源 Firebase |
Tigris | Tigris 使使用向量嵌入构建 AI 应用程序变得容易。 |
Turbopuffer | 设置 |
TypeORM | 要在通用 PostgreSQL 数据库中启用向量搜索,LangChain.j... |
Typesense | 利用 Typesense 搜索引擎的向量数据库。 |
Upstash Vector | Upstash Vector 是一个基于 REST 的无服务器向量 |
USearch | 仅在 Node.js 上可用。 |
Vectara | Vectara 是一个用于构建 GenAI 应用程序的平台。它提供了一个... |
Vercel Postgres | LangChain.js 支持使用 @vercel/postgres 包来使用 gener... |
Voy | Voy 是一个用 Rust 编写的 WASM 向量相似性搜索引擎。 |
Weaviate | Weaviate 是一个开源向量数据库,它 |
Xata | Xata 是一个基于 PostgreSQL 的无服务器数据平台。它提供了... |
Zep 开源 | Zep 是一个为 AI 助手应用提供的长期记忆服务。 |
Zep 云 | Zep 是一个为 AI 助手应用提供的长期记忆服务。 |