From 8bae0df1b62dbfe59cb5aff8c4e2daa4aa6f76bd Mon Sep 17 00:00:00 2001 From: 12975 <1297598740@qq.com> Date: Fri, 30 Jan 2026 00:10:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20AI=20=E8=AE=B0?= =?UTF-8?q?=E8=B4=A6=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/service/ai_bookkeeping_service.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/service/ai_bookkeeping_service.go b/internal/service/ai_bookkeeping_service.go index 9188ea5..f9aa6c0 100644 --- a/internal/service/ai_bookkeeping_service.go +++ b/internal/service/ai_bookkeeping_service.go @@ -986,7 +986,8 @@ func (s *AIBookkeepingService) ProcessChat(ctx context.Context, userID uint, ses } // 4. 处理消费建议意图 - if isSpendingAdvice && session.Params.Amount != nil { + // 即使没有金额,如果用户是在寻求建议(如“吃什么”),也应该进入建议流程 + if isSpendingAdvice { response.Intent = "spending_advice" advice := s.generateSpendingAdvice(ctx, message, session.Params, fc) if advice != "" { @@ -1158,7 +1159,7 @@ func (s *AIBookkeepingService) callLLM(ctx context.Context, messages []ChatMessa // isSpendingAdviceIntent 检测是否为消费建议意图 func (s *AIBookkeepingService) isSpendingAdviceIntent(message string) bool { - keywords := []string{"想吃", "想喝", "想买", "想花", "打算买", "准备买", "要不要", "可以买", "能买", "想要"} + keywords := []string{"想吃", "想喝", "想买", "想花", "打算买", "准备买", "要不要", "可以买", "能买", "想要", "推荐", "吃什么", "喝什么", "买什么"} for _, kw := range keywords { if strings.Contains(message, kw) { return true