Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions astrbot/core/astr_main_agent_resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
RunBrowserSkillTool,
SyncSkillReleaseTool,
)
from astrbot.core.knowledge_base.kb_helper import KBHelper
from astrbot.core.message.message_event_result import MessageChain
from astrbot.core.platform.message_session import MessageSession
from astrbot.core.star.context import Context
Expand Down Expand Up @@ -396,6 +397,18 @@ async def call(
return f"Message sent to session {target_session}"


def check_all_kb(kb_list: list[KBHelper | None]) -> bool:
"""检查是否所有的知识库都为空
Args:
kb_list: 所选的知识库
Returns:
bool: 是否全为空
"""
return not any(
kb and (kb.kb.doc_count != 0 or kb.kb.chunk_count != 0) for kb in kb_list
)


async def retrieve_knowledge_base(
query: str,
umo: str,
Expand Down Expand Up @@ -454,6 +467,12 @@ async def retrieve_knowledge_base(
if not kb_names:
return

all_kbs = [await kb_mgr.get_kb_by_name(kb) for kb in kb_names]

if check_all_kb(all_kbs):
logger.debug("所配置的所有知识库全为空,跳过检索过程")
return

logger.debug(f"[知识库] 开始检索知识库,数量: {len(kb_names)}, top_k={top_k}")
kb_context = await kb_mgr.retrieve(
query=query,
Expand Down
4 changes: 3 additions & 1 deletion astrbot/core/db/vec_db/faiss_impl/vec_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ async def insert_batch(
ids = ids or [str(uuid.uuid4()) for _ in contents]

if not contents:
logger.debug("No contents provided for batch insert; skipping embedding generation.")
logger.debug(
"No contents provided for batch insert; skipping embedding generation."
)
return []

start = time.time()
Expand Down
Loading