diff --git a/internal/biz/callback.go b/internal/biz/callback.go index 3870abe..22eb76c 100644 --- a/internal/biz/callback.go +++ b/internal/biz/callback.go @@ -70,11 +70,18 @@ func (c *CallbackBiz) issueHandlingExtractContent(data chatbot.BotCallbackDataMo Model: c.cfg.Ollama.GenerateModel, Prompt: prompt, Stream: util.AnyToPoint(false), + Think: &api.ThinkValue{Value: false}, }) if err != nil { log.Errorf("问题提取失败: %v", err) return } + + // 尝试清理 JSON 内容(有时模型会返回 markdown 块) + generateResp.Response = strings.TrimPrefix(generateResp.Response, "```json") + generateResp.Response = strings.TrimSuffix(generateResp.Response, "```") + generateResp.Response = strings.TrimSpace(generateResp.Response) + // 解析 JSON 响应 var resp struct { Question string `json:"question"` diff --git a/internal/biz/ding_talk_bot.go b/internal/biz/ding_talk_bot.go index 397a0bc..55ad22a 100644 --- a/internal/biz/ding_talk_bot.go +++ b/internal/biz/ding_talk_bot.go @@ -927,6 +927,7 @@ func (d *DingTalkBotBiz) createIssueHandlingGroupAndInit(ctx context.Context, ca // } // 初始化群聊 + time.Sleep(time.Millisecond * 200) // 等待机器人加入群聊 groupScope := callbackParams["group_scope"].(string) // 群主题 d.initIssueHandlingGroup(appKey, openConversationId, groupScope) diff --git a/internal/server/router/router.go b/internal/server/router/router.go index 19593f1..431da2e 100644 --- a/internal/server/router/router.go +++ b/internal/server/router/router.go @@ -197,6 +197,12 @@ func registerCommon(c *fiber.Ctx, err error) error { rawData = json.RawMessage(`"` + strings.ReplaceAll(string(body), `"`, `\"`) + `"`) } } + + // 检查是否需要跳过响应包装 + if c.Locals("skip_response_wrap") == true { + return c.JSON(rawData) + } + return c.JSON(fiber.Map{ "data": rawData, "message": errors.Success.Error(),