Skip to main content

Astra DB

兼容性

仅适用于 Node.js。

DataStax Astra DB 是一个基于 Apache Cassandra 的无服务器向量数据库,它通过一个易于使用的 JSON API 提供服务。

准备工作

  1. 创建一个 Astra DB 账户
  2. 创建一个启用向量功能的数据库
  3. 从数据库详情页面获取你的 API 端点(Endpoint)Token(令牌)
  4. 设置以下环境变量:
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 是你希望使用的集合名称。

  1. 安装 Astra TS 客户端和 LangChain 社区包

:::提示 请参阅安装集成包的一般说明部分。 :::

npm install @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:

向量类型

Astra DB 支持 cosine(默认)、dot_producteuclidean 相似度搜索;这在向量存储首次创建时作为 CreateCollectionOptions 的一部分进行定义:

  vector: {
dimension: number;
metric?: "cosine" | "euclidean" | "dot_product";
};

相关内容


Was this page helpful?


You can also leave detailed feedback on GitHub.