Tencent/WeKnora · error
答案不能全为空
Error message
答案不能全为空
What it means
Basic FAQ import validation (validateFAQEntryPayloadBasic): the Answers slice is non-empty but every answer is blank after trimming, so there is no usable answer text. This fires after the hasValidAnswer loop fails, catching payloads that try to satisfy 'answers required' with whitespace-only entries.
Source
Thrown at internal/application/service/knowledge_faq_import.go:979
if entry == nil {
return fmt.Errorf("条目不能为空")
}
standardQ := strings.TrimSpace(entry.StandardQuestion)
if standardQ == "" {
return fmt.Errorf("标准问不能为空")
}
if len(entry.Answers) == 0 {
return fmt.Errorf("答案不能为空")
}
hasValidAnswer := false
for _, a := range entry.Answers {
if strings.TrimSpace(a) != "" {
hasValidAnswer = true
break
}
}
if !hasValidAnswer {
return fmt.Errorf("答案不能全为空")
}
return nil
}
type faqMergeOperation struct {
Entry types.FAQEntryPayload
ExistingChunk *types.Chunk
OldMeta *types.FAQChunkMetadata
MergedMeta *types.FAQChunkMetadata
Detail types.FAQMergeDetail
}
// calculateAppendOperations 计算 Append 模式下的操作(支持智能合并)。
// 如果 entry 的标准问在 KB 中已存在,则视为合并操作(相似问 / 反例并集,
// 答案 / 策略以新条目为准);否则视为新建。无变化(hash 一致且操作位
// 也未变)的合并目标会被 skip 掉,避免无效写库 / 重建索引。
//
// 内部 master 行为,对应开源版仅 "重复 = 失败" 的简化逻辑。FAQ 导入的View on GitHub (pinned to 988cbb0330)
Solutions
- Ensure at least one answer contains non-whitespace content
- Strip empty-string answers when building the payload client-side
- Check dry-run CSV output for rows flagged with this reason
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/application/service/knowledge_faq_import.go:979 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/3082f3a53719e681.
Report an issue: GitHub.