feat: add fallback mode for AI agents and update knowledge base handling

- Introduced AIAgentFallbackMode with options for NoAnswer and SuggestRetry.
- Updated AI agent edit component to include fallback mode selection.
- Modified API types and payloads to accommodate fallback mode.
- Removed deprecated KnowledgeFallbackMode and related logic from knowledge base.
- Adjusted knowledge retrieval and response handling to utilize new fallback logic.
- Updated tests to reflect changes in fallback mode handling for AI agents.
This commit is contained in:
mlogclub
2026-04-18 13:36:44 +08:00
parent d9c4b669b2
commit c84870b968
25 changed files with 497 additions and 139 deletions
+3 -13
View File
@@ -112,15 +112,7 @@ func (s *answer) DebugAnswer(ctx context.Context, req request.KnowledgeAnswerReq
}
}
fallbackMode := enums.KnowledgeFallbackMode(req.FallbackMode)
if fallbackMode == 0 {
if knowledgeBase != nil {
fallbackMode = enums.KnowledgeFallbackMode(knowledgeBase.FallbackMode)
}
if fallbackMode == 0 {
fallbackMode = enums.KnowledgeFallbackModeNoAnswer
}
}
fallbackMode := enums.AIAgentFallbackModeNoAnswer
answerStatus := enums.KnowledgeAnswerStatusNormal
answer := ""
@@ -391,12 +383,10 @@ func buildAnswerSystemPrompt(answerMode enums.KnowledgeAnswerMode) string {
return "你是严格的客服知识库助手。只能依据提供的知识片段回答;如果资料不足,请明确说明知识库暂无明确信息。"
}
func buildFallbackAnswer(fallbackMode enums.KnowledgeFallbackMode) string {
func buildFallbackAnswer(fallbackMode enums.AIAgentFallbackMode) string {
switch fallbackMode {
case enums.KnowledgeFallbackModeSuggestRetry:
case enums.AIAgentFallbackModeSuggestRetry:
return "当前知识库里没有找到足够明确的信息,你可以换个更具体的问法再试一次。"
case enums.KnowledgeFallbackModeTransferHuman:
return "当前知识库里没有找到足够明确的信息,建议转人工进一步处理。"
default:
return "当前知识库暂无明确信息。"
}
+3 -8
View File
@@ -11,24 +11,19 @@ import (
func TestBuildFallbackAnswer(t *testing.T) {
tests := []struct {
name string
mode enums.KnowledgeFallbackMode
mode enums.AIAgentFallbackMode
expected string
}{
{
name: "no answer",
mode: enums.KnowledgeFallbackModeNoAnswer,
mode: enums.AIAgentFallbackModeNoAnswer,
expected: "当前知识库暂无明确信息。",
},
{
name: "suggest retry",
mode: enums.KnowledgeFallbackModeSuggestRetry,
mode: enums.AIAgentFallbackModeSuggestRetry,
expected: "当前知识库里没有找到足够明确的信息,你可以换个更具体的问法再试一次。",
},
{
name: "transfer human",
mode: enums.KnowledgeFallbackModeTransferHuman,
expected: "当前知识库里没有找到足够明确的信息,建议转人工进一步处理。",
},
}
for _, tt := range tests {