Skip to content

Commit 567313a

Browse files
committed
fix(kb): skip knowledge base retrieval if query is empty or whitespace
1 parent 24f568b commit 567313a

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

astrbot/core/knowledge_base/retrieval/manager.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,17 @@ async def retrieve(
8080
Args:
8181
query: 查询文本
8282
kb_ids: 知识库 ID 列表
83+
kb_id_helper_map: 知识库助手映射
84+
top_k_fusion: 融合召回的数量
8385
top_m_final: 最终返回数量
84-
enable_rerank: 是否启用 Rerank
8586
8687
Returns:
8788
List[RetrievalResult]: 检索结果列表
8889
8990
"""
91+
if not isinstance(query, str) or not query.strip():
92+
return []
93+
9094
if not kb_ids:
9195
return []
9296

@@ -163,11 +167,16 @@ async def retrieve(
163167
content=fr.content,
164168
score=fr.score,
165169
metadata={
166-
"chunk_index": fr.chunk_index,
170+
"chunk_index": getattr(fr, "chunk_index", None),
167171
"char_count": len(fr.content),
168172
},
169173
),
170174
)
175+
else:
176+
logger.warning(
177+
f"Metadata for document {fr.doc_id} not found in database, "
178+
f"skipping chunk {fr.chunk_id}."
179+
)
171180

172181
# 5. Rerank
173182
first_rerank = None

0 commit comments

Comments
 (0)