Skip to content

Commit 0ee8bd9

Browse files
author
jiangpeiling
committed
🐛 Knowledge base summary failed. #1619
1 parent 3f560a0 commit 0ee8bd9

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

backend/utils/document_vector_utils.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,10 @@ def summarize_document(document_content: str, filename: str, language: str = LAN
425425
]
426426

427427
# Call LLM
428-
response = llm(messages, max_tokens=max_words * 2) # Allow more tokens for generation
428+
response = llm(messages, max_tokens=max_words * 2)
429+
# Allow more tokens for generation
430+
if not response or not response.content:
431+
return ""
429432
return response.content.strip()
430433
else:
431434
# Fallback to placeholder if no model configuration
@@ -504,6 +507,8 @@ def summarize_cluster(document_summaries: List[str], language: str = LANGUAGE["Z
504507

505508
# Call LLM
506509
response = llm(messages, max_tokens=max_words * 2) # Allow more tokens for generation
510+
if not response or not response.content:
511+
return ""
507512
return response.content.strip()
508513
else:
509514
# Fallback to placeholder if no model configuration

frontend/app/[locale]/setup/knowledges/components/document/DocumentList.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,15 +245,21 @@ const DocumentListContainer = forwardRef<DocumentListRef, DocumentListProps>(
245245
setSummary("");
246246

247247
try {
248-
await knowledgeBaseService.summaryIndex(
248+
const result = await knowledgeBaseService.summaryIndex(
249249
knowledgeBaseName,
250250
1000,
251251
(newText) => {
252252
setSummary((prev) => prev + newText);
253253
},
254254
selectedModel
255255
);
256-
message.success(t("document.summary.completed"));
256+
// Only show success message if summary was actually generated
257+
if (result && result.trim()) {
258+
message.success(t("document.summary.completed"));
259+
} else {
260+
// If no summary was generated, show error message
261+
message.error(t("knowledgeBase.summary.notGenerated"));
262+
}
257263
} catch (error) {
258264
message.error(t("document.summary.error"));
259265
log.error(t("document.summary.error"), error);

frontend/public/locales/en/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@
474474
"knowledgeBase.empty.description": "Please select a knowledge base from the list on the left, or create a new one",
475475
"knowledgeBase.error.createUpload": "Failed to create knowledge base or upload files:",
476476
"knowledgeBase.error.getSummary": "Failed to generate knowledge base summary:",
477+
"knowledgeBase.summary.notGenerated": "Knowledge base summary was not generated, please change model configuration and retry",
477478
"knowledgeBase.name.new": "new_base",
478479
"knowledgeBase.message.getDocumentsFailed": "Failed to get documents",
479480

frontend/public/locales/zh/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@
475475
"knowledgeBase.empty.description": "请在左侧列表选择一个知识库,或创建新的知识库",
476476
"knowledgeBase.error.createUpload": "知识库创建或上传失败:",
477477
"knowledgeBase.error.getSummary": "获取知识库总结失败:",
478+
"knowledgeBase.summary.notGenerated": "未生成知识库总结,请更换模型配置重试",
478479
"knowledgeBase.name.new": "新知识库",
479480
"knowledgeBase.message.getDocumentsFailed": "获取文档列表失败",
480481

frontend/services/knowledgeBaseService.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// Unified encapsulation of knowledge base related API calls
22

3+
import i18n from "i18next";
4+
35
import { API_ENDPOINTS } from "./api";
46

57
import { NAME_CHECK_STATUS } from "@/const/agentConfig";
@@ -466,6 +468,19 @@ class KnowledgeBaseService {
466468
if (onProgress) {
467469
onProgress(data.message);
468470
}
471+
} else if (data.status === "completed") {
472+
// Check if message field exists when status is completed
473+
if (!data.message || data.message.trim() === "") {
474+
// No summary was generated, throw internationalized error
475+
const errorMessage = i18n.t(
476+
"knowledgeBase.summary.notGenerated"
477+
);
478+
throw new Error(errorMessage);
479+
}
480+
summary += data.message;
481+
if (onProgress) {
482+
onProgress(data.message);
483+
}
469484
} else if (data.status === "error") {
470485
throw new Error(data.message);
471486
}

0 commit comments

Comments
 (0)