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
+1 -1
View File
@@ -17,7 +17,7 @@ import (
const (
enumsPkgName = "enums"
enumsDir = "internal/pkg/enums"
outputPath = "web/lib/generated/enums.ts"
outputPath = "dashboard/lib/generated/enums.ts"
)
type enumValueType string
+1
View File
@@ -87,6 +87,7 @@ func buildSeedItems(aiConfigID int64, knowledgeIDs []int64, defaultTeamIDs strin
ReplyTimeoutSeconds: 180,
TeamIDs: defaultTeamIDs,
HandoffMode: enums.AIAgentHandoffModeWaitPool,
FallbackMode: enums.AIAgentFallbackModeSuggestRetry,
FallbackMessage: "我暂时没有找到足够准确的信息。你可以补充具体的问题,我再继续帮你查。",
KnowledgeIDs: utils.JoinInt64s(knowledgeIDs),
SkillIDs: defaultSkillIDs,
-3
View File
@@ -118,7 +118,6 @@ func ensureKnowledgeBase(db *gorm.DB) (*models.KnowledgeBase, error) {
ChunkMaxTokens: 400,
ChunkOverlapTokens: 40,
AnswerMode: int(enums.KnowledgeAnswerModeStrict),
FallbackMode: int(enums.KnowledgeFallbackModeNoAnswer),
AuditFields: models.AuditFields{
CreatedAt: now,
CreateUserID: constants.SystemAuditUserID,
@@ -168,7 +167,6 @@ func ensureFAQKnowledgeBase(db *gorm.DB) (*models.KnowledgeBase, error) {
ChunkMaxTokens: 0,
ChunkOverlapTokens: 0,
AnswerMode: int(enums.KnowledgeAnswerModeStrict),
FallbackMode: int(enums.KnowledgeFallbackModeNoAnswer),
Remark: "测试数据初始化自动生成",
AuditFields: models.AuditFields{
CreatedAt: now,
@@ -197,7 +195,6 @@ func ensureFAQKnowledgeBase(db *gorm.DB) (*models.KnowledgeBase, error) {
"chunk_max_tokens": 0,
"chunk_overlap_tokens": 0,
"answer_mode": int(enums.KnowledgeAnswerModeStrict),
"fallback_mode": int(enums.KnowledgeFallbackModeNoAnswer),
"remark": "测试数据初始化自动生成",
"update_user_id": constants.SystemAuditUserID,
"update_user_name": constants.SystemAuditUserName,