From 99e1a01d7067e0a6f77cb40efea306db5a0fefa7 Mon Sep 17 00:00:00 2001 From: AI Clinical Dev Team Date: Sat, 11 Oct 2025 21:20:13 +0800 Subject: [PATCH] debug: add detailed logging for knowledge base search --- backend/src/services/knowledgeBaseService.ts | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/backend/src/services/knowledgeBaseService.ts b/backend/src/services/knowledgeBaseService.ts index eae7cc10..bc10b9c9 100644 --- a/backend/src/services/knowledgeBaseService.ts +++ b/backend/src/services/knowledgeBaseService.ts @@ -196,6 +196,8 @@ export async function searchKnowledgeBase( query: string, topK: number = 3 ) { + console.log('🔍 [searchKnowledgeBase] 开始检索', { kbId, query, topK }); + // 1. 验证权限 const knowledgeBase = await prisma.knowledgeBase.findFirst({ where: { @@ -205,10 +207,23 @@ export async function searchKnowledgeBase( }); if (!knowledgeBase) { + console.error('❌ [searchKnowledgeBase] 知识库不存在', { kbId, userId }); throw new Error('Knowledge base not found or access denied'); } + console.log('📚 [searchKnowledgeBase] 找到知识库', { + id: knowledgeBase.id, + name: knowledgeBase.name, + difyDatasetId: knowledgeBase.difyDatasetId + }); + // 2. 调用Dify检索API + console.log('🌐 [searchKnowledgeBase] 调用Dify检索API', { + difyDatasetId: knowledgeBase.difyDatasetId, + query, + topK + }); + const results = await difyClient.retrieveKnowledge( knowledgeBase.difyDatasetId, query, @@ -222,6 +237,22 @@ export async function searchKnowledgeBase( } ); + console.log('✅ [searchKnowledgeBase] Dify返回结果', { + recordCount: results.records?.length || 0, + hasRecords: results.records && results.records.length > 0 + }); + + if (results.records && results.records.length > 0) { + console.log('📄 [searchKnowledgeBase] 检索到的记录:', + results.records.map((r: any) => ({ + score: r.score, + contentPreview: r.segment?.content?.substring(0, 100) + })) + ); + } else { + console.warn('⚠️ [searchKnowledgeBase] 没有检索到任何记录'); + } + return results; }