跳到主要内容
兼容性仅在 Node.js 上可用。
DataStax Astra DB 是一个基于 Apache Cassandra 构建的无服务器向量数据库,通过易于使用的 JSON API 提供便捷服务。

设置

  1. 创建一个 Astra DB 账户
  2. 创建一个 启用向量功能的数据库
  3. 从数据库详情中获取您的 API 端点令牌
  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 社区包
有关安装 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";
  };

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.