Skip to main content
兼容性仅在 Node.js 上可用。
DataStax Astra DB 是一个基于 Apache Cassandra 构建的无服务器向量功能数据库,并通过易于使用的 JSON API 方便地使用。

设置

  1. 创建一个 Astra DB 帐户
  2. 创建一个 启用向量的数据库
  3. 从数据库详细信息中获取您的 API EndpointToken
  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 community 包
请参阅 此部分 以获取有关安装 LangChain 包的一般说明。
npm
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",
});

向量类型

Astra DB 支持 cosine (默认)、dot_producteuclidean 相似性搜索;这是在首次创建向量存储时作为 CreateCollectionOptions 的一部分定义的:
  vector: {
      dimension: number;
      metric?: "cosine" | "euclidean" | "dot_product";
  };

相关