Astra DB
兼容性
仅适用于 Node.js。
DataStax Astra DB 是一个基于 Apache Cassandra 的无服务器向量数据库,它通过一个易于使用的 JSON API 提供服务。
准备工作
- 创建一个 Astra DB 账户。
- 创建一个启用向量功能的数据库。
- 从数据库详情页面获取你的
API 端点(Endpoint)和Token(令牌)。 - 设置以下环境变量:
export ASTRA_DB_APPLICATION_TOKEN=YOUR_ASTRA_DB_APPLICATION_TOKEN_HERE
export ASTRA_DB_ENDPOINT=YOUR_ASTRA_DB_ENDPOINT_HERE
export ASTRA_DB_COLLECTION=YOUR_ASTRA_DB_COLLECTION_HERE
export OPENAI_API_KEY=YOUR_OPENAI_API_KEY_HERE
其中 ASTRA_DB_COLLECTION 是你希望使用的集合名称。
- 安装 Astra TS 客户端和 LangChain 社区包
:::提示 请参阅安装集成包的一般说明部分。 :::
- npm
- Yarn
- pnpm
npm install @langchain/openai @datastax/astra-db-ts @langchain/community @langchain/core
yarn add @langchain/openai @datastax/astra-db-ts @langchain/community @langchain/core
pnpm add @langchain/openai @datastax/astra-db-ts @langchain/community @langchain/core
文档索引
import { OpenAIEmbeddings } from "@langchain/openai";
import {
AstraDBVectorStore,
AstraLibArgs,
} from "@langchain/community/vectorstores/astradb";
const astraConfig: AstraLibArgs = {
token: process.env.ASTRA_DB_APPLICATION_TOKEN as string,
endpoint: process.env.ASTRA_DB_ENDPOINT as string,
collection: process.env.ASTRA_DB_COLLECTION ?? "langchain_test",
collectionOptions: {
vector: {
dimension: 1536,
metric: "cosine",
},
},
};
const vectorStore = await AstraDBVectorStore.fromTexts(
[
"AstraDB is built on Apache Cassandra",
"AstraDB is a NoSQL DB",
"AstraDB supports vector search",
],
[{ foo: "foo" }, { foo: "bar" }, { foo: "baz" }],
new OpenAIEmbeddings(),
astraConfig
);
// Querying docs:
const results = await vectorStore.similaritySearch("Cassandra", 1);
// or filtered query:
const filteredQueryResults = await vectorStore.similaritySearch("A", 1, {
foo: "bar",
});
API Reference:
- OpenAIEmbeddings from
@langchain/openai - AstraDBVectorStore from
@langchain/community/vectorstores/astradb - AstraLibArgs from
@langchain/community/vectorstores/astradb
向量类型
Astra DB 支持 cosine(默认)、dot_product 和 euclidean 相似度搜索;这在向量存储首次创建时作为 CreateCollectionOptions 的一部分进行定义:
vector: {
dimension: number;
metric?: "cosine" | "euclidean" | "dot_product";
};
相关内容
Related
- Vector store conceptual guide
- Vector store how-to guides