Skip to content

API 文档

请求方式均为 POST;参数均为数组形式,操作单个数据则只放在一个数组元素即可。

连接地址

连接地址可在数据集管理页面获得

新增数据

请求地址

/api/collection/add

入参

typescript
{
  ids: string[],
  embeddings?: number[][],
  metadatas?: Record<string, any>[],
  documents?: string[]
}

出参

typescript
{
    code: number,
    data: {
        ids: string[]
    },
    message: string,
    success: boolean
}

删除数据

请求地址

/api/collection/delete

入参

typescript
{
  ids: string[]
}

出参

typescript
{
    code: number,
    data: {
        ids: string[]
    },
    message: string,
    success: boolean
}

修改数据

/api/collection/delete

入参

typescript
{
  ids: string[],
  embeddings?: number[][],
  metadatas?: Record<string, any>[],
  documents?: string[]
}

当 ID 不存在时,将会新建;embedding, metadata, document 均为覆盖更新;metadata 会做递归 Merge。

出参

typescript
{
    code: number,
    data: {
        ids: string[]
    },
    message: string,
    success: boolean
}

查询数据

/api/collection/get

入参

typescript
{
  ids?: string[];
  where?: WhereOptions; // 查询条件,详见下文 WhereOptions
  limit?: number; // 用于分页,限制条数,默认 10
  offset?: number; // 用于分页,起始位置,默认 0
}

出参

typescript
{
  code: number;
  data: {
    list: {
      id: string
      embedding: number[]
      metadata: Record<string, any>
      document: string
      createdAt: string
      updatedAt: string
    }[],
    total: number
  };
  message: string;
  success: boolean;
}

向量搜索

/api/collection/search

入参

typescript
{
  embedding: number[];
  limit?: number; // 限制条数
  where?: WhereOptions; // 查询条件,详见下文 WhereOptions
}

出参

typescript
{
  code: number;
  data: {
    list: {
      id: string
      embedding: number[]
      metadata: Record<string, any>
      document: string
      createdAt: string
      updatedAt: string
    }[],
    total: number
  };
  message: string;
  success: boolean;
}

WhereOptions

用于根据 metadata 过滤结果。

假如已经创建一条数据,内容如下

json
{
  "id": "id1",
  "embedding": [1, 2, 3],
  "metadata": {
    "a": 1,
    "b": 2
  },
  "document": "document1",
  "createdAt": "2023-10-16T09:47:17.586Z",
  "updatedAt": "2023-10-16T15:05:59.420Z"
}

如果我想查询 metadata.a 等于 1 的数据,则 whereOptions 为

json
{
  "where": {
    "a": {
      "$eq": 1
    }
  }
}

支持操作符列表

操作符含义其他
$gt大于操作符,表示字段的值大于给定的值
$lt小于操作符,表示字段的值小于给定的值
$gte大于等于操作符,表示字段的值大于或等于给定的值
$lte小于操作符,表示字段的值小于给定的值
$eq等于操作符,表示字段的值等于给定的值
$ne不等于操作符,表示字段的值不等于给定的值
$in包含于操作符,表示字段的值在给定的数组中
$notIn不包含于操作符,表示字段的值不在给定的数组中
$between在范围内操作符,表示字段的值在给定的范围内
$notBetween不在范围内操作符,表示字段的值不在给定的范围内
$like模糊匹配操作符,表示字段的值符合给定的模式(可以使用 % 和 _ 通配符)
$notLike不模糊匹配操作符,表示字段的值不符合给定的模式
$iLike不区分大小写的模糊匹配操作符,表示字段的值符合给定的模式,不区分大小写
$notILike不区分大小写的不模糊匹配操作符,表示字段的值不符合给定的模式,不区分大小写

文本生成向量数据

/api/db/embedding/create

最大支持 8192 个 Token,生成结果 1024 维度,支持中、英文。

入参

typescript
{
  input: string;
}

出参

typescript
{
  code: number;
  data: {
    embedding: number[]
  };
  message: string;
  success: boolean;
}