JavaScript/TypeScript SDK for OceanBase seekdb,提供自动向量化、语义搜索和混合搜索功能。无需手动计算向量,即可快速构建 AI 应用。
自动生成嵌入向量,无需手动计算向量
基于向量的相似度搜索,理解自然语言查询
结合关键词匹配和语义搜索的多模态搜索
完整的 TypeScript 支持,提供完整的类型定义
通过几个简单步骤,快速上手 seekdb-js SDK
使用 npm、pnpm 或 yarn 安装 seekdb 包
npm install seekdb
# 或使用 pnpm
pnpm add seekdb
# 或使用 yarn
yarn add seekdb点击"运行"按钮查看结果
创建 SeekdbClient 实例并连接到 seekdb 服务器
import { SeekdbClient } from "seekdb";
// 连接到 seekdb
const client = new SeekdbClient({
host: "127.0.0.1",
port: 2881,
user: "root",
password: "",
database: "test",
});
// 对于 OceanBase 模式,需要指定 tenant
// const client = new SeekdbClient({
// host: "127.0.0.1",
// port: 2881,
// user: "root",
// password: "",
// database: "test",
// tenant: "sys",
// });点击"运行"按钮查看结果
集合(Collection)是 seekdb-js 中存储和管理数据的基本单位
// 创建集合(Collection)
const collection = await client.createCollection({
name: "my_collection"
});
console.log("集合创建成功:", collection.name);点击"运行"按钮查看结果
向集合中添加文档,SDK 会自动生成向量嵌入
// 添加数据(自动向量化)
await collection.add({
ids: ["1", "2"],
documents: ["Hello world", "seekdb is fast"],
metadatas: [
{ category: "test" },
{ category: "db" }
],
});点击"运行"按钮查看结果
使用语义搜索查询最相关的文档
// 语义搜索
const results = await collection.query({
queryTexts: "Hello",
nResults: 5,
});
console.log("搜索结果:", results);点击"运行"按钮查看结果
seekdb-js 支持多种嵌入函数,用于生成向量。您可以选择本地模型或云端服务。
使用本地模型(Xenova/all-MiniLM-L6-v2),无需 API Key。适合快速开发和测试。
// 默认使用本地模型,无需 API Key
const collection = await client.createCollection({
name: "local_embed_collection",
});
// 手动导入默认嵌入函数
import { DefaultEmbeddingFunction } from "@seekdb/default-embed";
const defaultEmbed = new DefaultEmbeddingFunction({
// 如果遇到下载问题,可以切换区域为 'intl',默认为 'cn'
region: "cn",
});
const collection = await client.createCollection({
name: "local_embed_collection",
embeddingFunction: defaultEmbed,
});点击"运行"按钮查看结果
基于向量相似度的语义搜索,理解查询的语义含义
// 语义搜索
const results = await collection.query({
queryTexts: "Hello",
nResults: 5,
});
console.log("搜索结果:", results);点击"运行"按钮查看结果
使用 SeekdbAdminClient 管理数据库(创建、列出、删除)
import { SeekdbAdminClient } from "seekdb";
const adminClient = new SeekdbAdminClient({
host: "127.0.0.1",
port: 2881,
user: "root",
password: "",
// 对于 OceanBase 模式,需要指定 tenant
// tenant: "sys"
});
// 创建新数据库
await adminClient.createDatabase("new_database");
// 列出所有数据库
const databases = await adminClient.listDatabases();
// 获取数据库信息
const db = await adminClient.getDatabase("new_database");
// 删除数据库
await adminClient.deleteDatabase("new_database");点击"运行"按钮查看结果
seekdb-js 默认使用哪个嵌入模型?