agentscope.app.ragKnowledgeBaseManagerBase
class KnowledgeBaseManagerBase(ABC)
agentscope/app/rag/knowledge_base_manager/_base.py:39–307知识库管理器基类,把私有文档转化为可检索的知识。位于 agentscope.app.rag 包,继承自 ABC。核心成员包括 get_dimension_policy、create_knowledge_base、get_knowledge_base、list_knowledge_bases、update_knowledge_base、delete_knowledge_base。
Subclasses implement a specific isolation strategy by overriding
:meth:create_knowledge_base, :meth:delete_knowledge_base, and
:meth:get_knowledge. The bookkeeping methods
(:meth:get_knowledge_base, :meth:list_knowledge_bases) have
default implementations that delegate to the bound storage.
构造器摘要Constructor Summary
| 构造器Constructor | 说明Description |
|---|---|
def __init__(storage: 'StorageBase', vector_store: 'VectorStoreBase') -> None | 初始化 `KnowledgeBaseManagerBase` 实例。 Initialize the manager. |
方法摘要Method Summary
构造器详情Constructor Detail
KnowledgeBaseManagerBase
def __init__(storage: 'StorageBase', vector_store: 'VectorStoreBase') -> None
初始化 KnowledgeBaseManagerBase 实例。
Initialize the manager.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
storage | 'StorageBase' | 存储(类型 `'StorageBase'`)。The application-wide storage backend used to persist :class:`KnowledgeBaseRecord` rows and resolve credentials. |
vector_store | 'VectorStoreBase' | 向量存储(类型 `'VectorStoreBase'`)。The application-wide vector store instance shared by every knowledge base allocated by this manager. |
agentscope/app/rag/knowledge_base_manager/_base.py:49–66方法详情Method Detail
__aenter__
async def __aenter__() -> Self
进入异步上下文并返回自身。
Enters the bound vector store's async context so a single create_app parameter (the manager) covers the vector store's lifecycle too.
agentscope/app/rag/knowledge_base_manager/_base.py:72–82__aexit__
async def __aexit__(exc_type: type[BaseException] | None, exc: BaseException | None, tb: 'TracebackType | None') -> None
退出异步上下文并清理资源。
Exit the manager's lifetime, releasing the vector store.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
exc_type | type[BaseException] | None | exc 类型(类型 `type[BaseException] | None`)。The exception type raised inside the with-block, if any. |
exc | BaseException | None | exc(类型 `BaseException | None`)。The exception instance raised inside the with-block, if any. |
tb | 'TracebackType | None' | tb(类型 `'TracebackType | None'`)。The traceback for the raised exception, if any. |
agentscope/app/rag/knowledge_base_manager/_base.py:84–101get_dimension_policy
async def get_dimension_policy() -> DimensionPolicy
获取维度策略。
Surfaced over HTTP so the front-end can soft-filter incompatible models / dimensions before submission and show a helpful banner.
agentscope/app/rag/knowledge_base_manager/_base.py:108–118create_knowledge_base
async def create_knowledge_base(user_id: str, name: str, description: str, embedding_model_config: 'EmbeddingModelConfig', chunker_config: 'ChunkerConfig | None' = None) -> 'KnowledgeBaseRecord'
创建知识库。
Implementations must: 1.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
user_id | str | 所有者用户标识。The owner user id. |
name | str | 名称(类型 `str`)。Display name. |
description | str | 描述(类型 `str`)。Free-form description. |
embedding_model_config | 'EmbeddingModelConfig' | 向量化模型配置(类型 `'EmbeddingModelConfig'`)。Embedding model configuration; pinned to the record. |
chunker_config默认default None | 'ChunkerConfig | None' | 切分器配置(类型 `'ChunkerConfig | None'`)。Chunker configuration; pinned to the record. `None` leaves the record without a pinned chunker (legacy). |
- 可能抛出 `Exception`。`DimensionPolicyError`:
- 可能抛出 `Exception`。If the requested dimension violates the manager's
- 可能抛出 `Exception`。dimension policy.
agentscope/app/rag/knowledge_base_manager/_base.py:125–164get_knowledge_base
async def get_knowledge_base(user_id: str, knowledge_base_id: str) -> 'KnowledgeBaseRecord | None'
获取知识库。
Fetch a knowledge base record by id (delegates to storage).
| 名称Name | 类型Type | 说明Description |
|---|---|---|
user_id | str | 所有者用户标识。The owner user id. |
knowledge_base_id | str | 知识库基类标识。The knowledge base id. |
agentscope/app/rag/knowledge_base_manager/_base.py:166–187list_knowledge_bases
async def list_knowledge_bases(user_id: str) -> 'list[KnowledgeBaseRecord]'
列出 list_knowledge_bases。
List all knowledge base records owned by the given user.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
user_id | str | 所有者用户标识。The owner user id. |
agentscope/app/rag/knowledge_base_manager/_base.py:189–203update_knowledge_base
async def update_knowledge_base(user_id: str, knowledge_base_id: str, name: str | None = None, description: str | None = None) -> 'KnowledgeBaseRecord | None'
更新知识库。
Only name and description are mutable.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
user_id | str | 所有者用户标识。The owner user id. |
knowledge_base_id | str | 知识库基类标识。The knowledge base id. |
name默认default None | str | None | 名称(类型 `str | None`)。New display name; `None` leaves the name unchanged. |
description默认default None | str | None | 描述(类型 `str | None`)。New description; `None` leaves the description unchanged. |
agentscope/app/rag/knowledge_base_manager/_base.py:205–245delete_knowledge_base
async def delete_knowledge_base(user_id: str, knowledge_base_id: str) -> bool
删除知识库。
Implementations must: 1.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
user_id | str | 所有者用户标识。The owner user id. |
knowledge_base_id | str | 知识库基类到删除的标识。The id of the knowledge base to delete. |
agentscope/app/rag/knowledge_base_manager/_base.py:248–272get_knowledge
async def get_knowledge(user_id: str, knowledge_base_id: str) -> 'KnowledgeBase'
获取知识库。
Implementations are responsible for: - looking the record up in storage (authorisation); - resolving the embedding model from the record's credential; - constructing the :class:KnowledgeBase with the strategy's collection name and metadata filter.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
user_id | str | 所有者用户标识。The owner user id. |
knowledge_base_id | str | 知识库基类标识。The knowledge base id. |
- 可能抛出 `Exception`。`KnowledgeBaseNotFoundError`:
- 可能抛出 `Exception`。If the record does not exist or does not belong to
- 可能抛出 `Exception`。the authenticated user.
agentscope/app/rag/knowledge_base_manager/_base.py:279–307