77 lines
2.1 KiB
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
|
|
//}
|