chore: 告一段落
This commit is contained in:
parent
ece04df2cb
commit
c1971e71c1
|
|
@ -5,9 +5,12 @@ server:
|
||||||
|
|
||||||
ollama:
|
ollama:
|
||||||
base_url: "http://192.168.6.115:11434"
|
base_url: "http://192.168.6.115:11434"
|
||||||
model: "qwen3-coder:480b-cloud"
|
model: "qwen3:8b"
|
||||||
generate_model: "qwen3-coder:480b-cloud"
|
generate_model: "qwen3:8b"
|
||||||
mapping_model: "deepseek-v3.2:cloud"
|
mapping_model: "qwen3:8b"
|
||||||
|
# model: "qwen3-coder:480b-cloud"
|
||||||
|
# generate_model: "qwen3-coder:480b-cloud"
|
||||||
|
# mapping_model: "deepseek-v3.2:cloud"
|
||||||
vl_model: "qwen2.5vl:7b"
|
vl_model: "qwen2.5vl:7b"
|
||||||
timeout: "120s"
|
timeout: "120s"
|
||||||
level: "info"
|
level: "info"
|
||||||
|
|
|
||||||
|
|
@ -283,12 +283,31 @@ func (d *DingTalkBotBiz) fallbackToGroupCreation(ctx context.Context, requireDat
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 4. 匹配问题类型
|
||||||
|
var issueType model.AiIssueType
|
||||||
|
for _, it := range allIssueTypes {
|
||||||
|
if it.Name == classification.IssueTypeName {
|
||||||
|
issueType = it
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if sys.SysID == 0 {
|
if sys.SysID == 0 {
|
||||||
// 无法明确系统,询问用户
|
|
||||||
statusKey := fmt.Sprintf("ai_bot:session:status:%s", requireData.Req.SenderStaffId)
|
// 判断全局是否存在该规则
|
||||||
d.redisCli.Set(ctx, statusKey, "WAITING_FOR_SYS_CONFIRM", time.Hour)
|
_, found, _ := d.issueImpl.IssueAssignRule.FindOne(
|
||||||
entitys.ResText(requireData.Ch, "", "抱歉,我无法确定您咨询的是哪个系统。请告诉我具体系统名称(如:直连天下系统、货易通系统),以便我为您安排对应的技术支持。")
|
d.issueImpl.WithSysID(0),
|
||||||
return nil
|
d.issueImpl.WithIssueTypeID(issueType.ID),
|
||||||
|
d.issueImpl.WithStatus(1),
|
||||||
|
)
|
||||||
|
if !found {
|
||||||
|
// 无法明确系统,且全局无该能力,询问用户
|
||||||
|
statusKey := fmt.Sprintf("ai_bot:session:status:%s", requireData.Req.SenderStaffId)
|
||||||
|
d.redisCli.Set(ctx, statusKey, "WAITING_FOR_SYS_CONFIRM", time.Hour)
|
||||||
|
entitys.ResText(requireData.Ch, "", "抱歉,我无法确定您咨询的是哪个系统。请告诉我具体系统名称(如:直连天下系统、货易通系统),以便我为您安排对应的技术支持。")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return d.fallbackToGroupCreationWithSys(ctx, requireData, &sys)
|
return d.fallbackToGroupCreationWithSys(ctx, requireData, &sys)
|
||||||
|
|
@ -323,8 +342,18 @@ func (d *DingTalkBotBiz) fallbackToGroupCreationWithSys(ctx context.Context, req
|
||||||
d.issueImpl.WithStatus(1),
|
d.issueImpl.WithStatus(1),
|
||||||
)
|
)
|
||||||
if !found {
|
if !found {
|
||||||
log.Errorf("assign rule not found for sys %s and issue type %s; err: %v", sys.SysName, issueType.Name, err)
|
// 创建默认分配规则 - 暂不考虑并发,有唯一索引
|
||||||
return fmt.Errorf("分配规则 %s-%s 不存在", sys.SysName, issueType.Name)
|
rule = model.AiIssueAssignRule{
|
||||||
|
SysID: sys.SysID,
|
||||||
|
IssueTypeID: issueType.ID,
|
||||||
|
Status: 1,
|
||||||
|
}
|
||||||
|
if err := d.issueImpl.IssueAssignRule.Create(&rule); err != nil {
|
||||||
|
log.Errorf("create assign rule for sys %s and issue type %s failed; err: %v", sys.SysName, issueType.Name, err)
|
||||||
|
return fmt.Errorf("创建分配规则 %s-%s 失败", sys.SysName, issueType.Name)
|
||||||
|
} else {
|
||||||
|
log.Infof("create assign rule for sys %s and issue type %s success; rule id: %d", sys.SysName, issueType.Name, rule.ID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var staffIds []string
|
var staffIds []string
|
||||||
|
|
|
||||||
|
|
@ -137,10 +137,10 @@ func (r *Handle) ClassifyIssue(ctx context.Context, systems []string, issueTypes
|
||||||
可用问题类型: [%s]
|
可用问题类型: [%s]
|
||||||
|
|
||||||
请仅以 JSON 格式回复,包含以下字段:
|
请仅以 JSON 格式回复,包含以下字段:
|
||||||
- sys_name: 系统名称
|
- sys_name: 系统名称,若未提及系统关键词,则为"全局"
|
||||||
- issue_type_name: 问题类型名称
|
- issue_type_name: 问题类型名称
|
||||||
- summary: 15字以内的问题简述(用于群命名)
|
- summary: 15字以内的问题简述(用于群命名)
|
||||||
- reason: 分类理由`, strings.Join(systems, ", "), strings.Join(issueTypes, ", "))
|
- reason: 分类判断理由;系统名称判断理由`, strings.Join(systems, ", "), strings.Join(issueTypes, ", "))
|
||||||
|
|
||||||
messages := []api.Message{
|
messages := []api.Message{
|
||||||
{Role: "system", Content: systemPrompt},
|
{Role: "system", Content: systemPrompt},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue