diff --git a/internal/biz/llm_service/ollama.go b/internal/biz/llm_service/ollama.go index eba69d6..00929aa 100644 --- a/internal/biz/llm_service/ollama.go +++ b/internal/biz/llm_service/ollama.go @@ -7,6 +7,7 @@ import ( "ai_scheduler/internal/pkg/utils_ollama" "context" "encoding/json" + "errors" "fmt" "github.com/gofiber/fiber/v2/log" @@ -29,10 +30,25 @@ func (r *OllamaService) IntentRecognize(ctx context.Context, requireData *entity prompt := r.getPrompt(requireData.Sys, requireData.Histories, requireData.UserInput, requireData.Tasks) toolDefinitions := r.registerToolsOllama(requireData.Tasks) match, err := r.client.ToolSelect(context.TODO(), prompt, toolDefinitions) - log.Info("意图识别结果: %v", match) if err != nil { return } + log.Info("意图识别结果: %v", pkg.JsonStringIgonErr(match)) + if len(match.Message.Content) == 0 { + if match.Message.ToolCalls != nil { + var matchFromTools = &entitys.Match{ + Confidence: 1, + Index: match.Message.ToolCalls[0].Function.Name, + Parameters: pkg.JsonStringIgonErr(match.Message.ToolCalls[0].Function.Arguments), + IsMatch: true, + } + match.Message.Content = pkg.JsonStringIgonErr(matchFromTools) + } else { + err = errors.New("不太明白你想表达的意思呢,可以在仔细描述一下您所需要的内容吗,感谢感谢") + return + } + } + msg = match.Message.Content return }