package llm_service //type LangChainService struct { // client *utils_langchain.UtilLangChain //} // //func NewLangChainGenerate( // client *utils_langchain.UtilLangChain, //) *LangChainService { // // return &LangChainService{ // client: client, // } //} // //func (r *LangChainService) IntentRecognize(ctx context.Context, sysInfo model.AiSy, history []model.AiChatHi, userInput string, tasks []model.AiTask) (msg string, err error) { // prompt := r.getPrompt(sysInfo, history, userInput, tasks) // AgentClient := r.client.Get() // defer r.client.Put(AgentClient) // match, err := AgentClient.Llm.GenerateContent( // ctx, // 使用可取消的上下文 // prompt, // llms.WithJSONMode(), // ) // msg = match.Choices[0].Content // return //} // //func (r *LangChainService) getPrompt(sysInfo model.AiSy, history []model.AiChatHi, reqInput string, tasks []model.AiTask) []llms.MessageContent { // var ( // prompt = make([]llms.MessageContent, 0) // ) // prompt = append(prompt, llms.MessageContent{ // Role: llms.ChatMessageTypeSystem, // Parts: []llms.ContentPart{ // llms.TextPart(buildSystemPrompt(sysInfo.SysPrompt)), // }, // }, llms.MessageContent{ // Role: llms.ChatMessageTypeTool, // Parts: []llms.ContentPart{ // llms.TextPart(pkg.JsonStringIgonErr(buildAssistant(history))), // }, // }, llms.MessageContent{ // Role: llms.ChatMessageTypeTool, // Parts: []llms.ContentPart{ // llms.TextPart(pkg.JsonStringIgonErr(r.registerTools(tasks))), // }, // }, llms.MessageContent{ // Role: llms.ChatMessageTypeHuman, // Parts: []llms.ContentPart{ // llms.TextPart(reqInput), // }, // }) // return prompt //} // //func (r *LangChainService) registerTools(tasks []model.AiTask) []llms.Tool { // taskPrompt := make([]llms.Tool, 0) // for _, task := range tasks { // var taskConfig entitys.TaskConfig // err := json.Unmarshal([]byte(task.Config), &taskConfig) // if err != nil { // continue // } // taskPrompt = append(taskPrompt, llms.Tool{ // Type: "function", // Function: &llms.FunctionDefinition{ // Name: task.Index, // Description: task.Desc, // Parameters: taskConfig.Param, // }, // }) // // } // return taskPrompt //}