agentchat.contrib.vectordb.base
ItemID
chromadb不支持整数id,VikingDB支持
Document
class Document(TypedDict)
Document是向量数据库中的记录。
id: ItemID | 文档的唯一标识符。 content: str | 文档的文本内容。 metadata: Metadata, Optional | 包含有关文档的其他信息,如来源、日期等。 embedding: Vector, Optional | 内容的向量表示。
VectorDB
@runtime_checkable
class VectorDB(Protocol)
向量数据库的抽象类。向量数据库负责存储和检索文档。
属性:
active_collection
- Any | 向量数据库中的活动集合。加快获取集合的速度。默认为None。type
- str | 向量数据库的类型,chroma、pgvector等。默认为""。
方法:
create_collection
- Callable[[str, bool, bool], Any] | 在向量数据库中创建一个集合。get_collection
- Callable[[str], Any] | 从向量数据库中获取集合。delete_collection
- Callable[[str], Any] | 从向量数据库中删除集合。insert_docs
- Callable[[List[Document], str, bool], None] | 将文档插入到向量数据库的集合中。update_docs
- Callable[[List[Document], str], None] | 更新向量数据库集合中的文档。delete_docs
- Callable[[List[ItemID], str], None] | 从向量数据库的集合中删除文档。retrieve_docs
- Callable[[List[str], str, int, float], QueryResults] | 根据查询条件从向量数据库的集合中检索文档。get_docs_by_ids
- Callable[[List[ItemID], str], List[Document]] | 根据id从向量数据库的集合中检索文档。
create_collection
def create_collection(collection_name: str,
overwrite: bool = False,
get_or_create: bool = True) -> Any
在向量数据库中创建一个集合。 情况1. 如果集合不存在,则创建集合。 情况2. 如果集合存在,如果overwrite为True,则覆盖集合。 情况3. 如果集合存在且overwrite为False,如果get_or_create为True,则获取集合,否则引发ValueError。
参数:
collection_name
- str | 集合的名称。overwrite
- bool | 如果集合存在,是否覆盖集合。默认为False。get_or_create
- bool | 如果集合存在,是否获取集合。默认为True。
返回值:
Any | 集合对象。
get_collection
def get_collection(collection_name: str = None) -> Any
从向量数据库中获取集合。
参数:
collection_name
- str | 集合的名称。默认为None。如果为None,则返回当前活动集合。
返回值:
任意类型 | 集合对象。
delete_collection
def delete_collection(collection_name: str) -> Any
从向量数据库中删除集合。
参数:
collection_name
- str | 集合的名称。
返回值