Skip to main content

add - Insert data

The add() method inserts new data into a collection. If a record with the same ID already exists, an error is returned.

info

This API is only available when using a Client. For more information about the Client, see Client.

Prerequisites

  • You have installed pyseekdb. For more information about how to install pyseekdb, see Quick Start.

  • You have connected to the database. For more information about how to connect to the database, see Client.

  • If you are using seekdb or OceanBase Database in client mode, make sure that the user to which you are connected has the INSERT privilege on the table to be operated. For more information about how to view the privileges of the current user, see View user privileges. If you do not have the required privilege, contact the administrator to grant you the privilege. For more information about how to directly grant a privilege, see Directly grant a privilege.

Request parameters

add(
ids=ids,
embeddings=embeddings,
documents=documents,
metadatas=metadatas
)
ParameterTypeRequiredDescriptionExample value
idsstring or List[str]YesThe ID of the data to be inserted. You can specify a single ID or an array of IDs.item1
embeddingsList[float] or List[List[float]]NoThe vector or vectors of the data to be inserted. If you specify this parameter, the value of embedding_function is ignored. If you do not specify this parameter, you must specify documents, and the collection must have an embedding_function.[0.1, 0.2, 0.3]
documentsstring or List[str]NoThe document or documents to be inserted. If you do not specify vectors, documents will be converted to vectors using the embedding_function of the collection."This is a document"
metadatasdict or List[dict]NoThe metadata or metadata list of the data to be inserted.{"category": "AI", "score": 95}
info

The embedding_function associated with the collection is set during create_collection() or get_collection(). You cannot override it for each operation.

Request example

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"}]
)

Response parameters

None

References