跳到主要内容

add - 插入数据

add() 用于向 collection 中插入新数据。在新增记录时,如果已存在具有相同 ID 的记录,则会报错。

信息

仅支持在使用 Client 连接时,才能使用该接口。关于 Client 的详细介绍,参见 Client

前提条件

  • 您已经安装了 pyseekdb,有关安装 pyseekdb 的详细信息,参见 快速开始

  • 您已经连接到数据库。有关连接的详细操作参见 Client

  • 如果您使用的是客户端模式的 seekdb 或者 OceanBase 数据库,请确保连接的用户已拥有待操作的表的 INSERT 权限,查看当前用户权限的相关操作请参见 查看用户权限。如果不具备该权限,请联系管理员为您授权,用户授权的相关操作请参见 直接授予权限

请求参数

add(
ids=ids,
embeddings=embeddings,
documents=documents,
metadatas=metadatas
)
参数取值类型是否必选描述取值示例
idsstring 或者 List[str]必选需要插入的 ID 。可以是单个,也可以是数组。item1
embeddingsList[float] 或者 List[List[float]]可选单个 vectors 或 vectors 列表;如果提供,则直接使用(忽略 embedding_function);如果没有提供,则必须提供 documents,同时 collection 必须具有 embedding_function[0.1, 0.2, 0.3]
documentsstring 或者 List[str]可选单个 documents 或 documents 清单;如果没有提供 vectorsdocuments 将使用 collectionembedding_function 转换为 vectors。"This is a document"
metadatasdict 或者 List[dict]可选单个元数据字典或元数据字典列表。{"category": "AI", "score": 95}
信息

使用的 embedding_function 是与 collection 相关联的(在 create_collection()get_collection() 期间设置)。您不能每次操作都覆盖它。

请求示例

import pyseekdb
from pyseekdb import DefaultEmbeddingFunction, HNSWConfiguration

# Create a client
client = pyseekdb.Client()

collection = client.create_collection(
name="my_collection",
configuration=HNSWConfiguration(dimension=3, distance='cosine'),
embedding_function=None
)

# Add single item
collection.add(
ids="item1",
embeddings=[0.1, 0.2, 0.3],
documents="This is a document",
metadatas={"category": "AI", "score": 95}
)

# Add multiple items
collection.add(
ids=["item4", "item2", "item3"],
embeddings=[
[0.1, 0.2, 0.4],
[0.4, 0.5, 0.6],
[0.7, 0.8, 0.9]
],
documents=[
"Document 1",
"Document 2",
"Document 3"
],
metadatas=[
{"category": "AI", "score": 95},
{"category": "ML", "score": 88},
{"category": "DL", "score": 92}
]
)

# Add with only embeddings
collection.add(
ids=["vec1", "vec2"],
embeddings=[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]
)

collection1 = client.create_collection(
name="my_collection1"
)

# Add with only documents - embeddings auto-generated by embedding_function
# Requires: collection must have embedding_function set
collection1.add(
ids=["doc1", "doc2"],
documents=["Text document 1", "Text document 2"],
metadatas=[{"tag": "A"}, {"tag": "B"}]
)

返回参数

相关操作