ai_scheduler/internal/biz/llm_service/langchain.go

77 lines
2.1 KiB
Go

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
//}