package szr import ( "context" "l_szr_go/pkg/doubao" "github.com/volcengine/volcengine-go-sdk/service/arkruntime/model" "github.com/volcengine/volcengine-go-sdk/volcengine" "strings" ) var modelObj *doubao.DouBao func Instance(key, model string) *doubao.DouBao { if modelObj == nil { modelObj = doubao.NewDouBao(model, key) } return modelObj } type View struct { Ques string CheckSkill []string QuesType string Ans string } func TextCorrect(ctx context.Context, view *View, key string, modelStr string) (result string, err error) { Instance(key, modelStr) var texts = make([]*model.ChatCompletionMessage, 4) texts[0] = &model.ChatCompletionMessage{ Role: model.ChatMessageRoleSystem, Content: &model.ChatCompletionMessageContent{ StringValue: volcengine.String("你现在是AI面试评估系统的文本修正模块,请根据以下输入完成修正任务:"), }, } texts[1] = &model.ChatCompletionMessage{ Role: model.ChatMessageRoleUser, Content: &model.ChatCompletionMessageContent{ StringValue: volcengine.String(Input(view)), }, } texts[2] = &model.ChatCompletionMessage{ Role: model.ChatMessageRoleUser, Content: &model.ChatCompletionMessageContent{ StringValue: volcengine.String(modify()), }, } texts[3] = &model.ChatCompletionMessage{ Role: model.ChatMessageRoleUser, Content: &model.ChatCompletionMessageContent{ StringValue: volcengine.String(output()), }, } return modelObj.GetData(ctx, func(input string) (string, error) { return input, nil }, texts) } func Input(view *View) string { str := `1. 【输入信息】 - 面试问题: "{ques}" - 问题类型: "{quesType}" - 涉及知识点: "{checkSkill}" - 面试者回答: "{Ans}"` str = strings.ReplaceAll(str, "{ques}", view.Ques) str = strings.ReplaceAll(str, "{quesType}", view.QuesType) str = strings.ReplaceAll(str, "{checkSkill}", strings.Join(view.CheckSkill, ",")) str = strings.ReplaceAll(str, "{Ans}", view.Ans) return str } func modify() string { return `2. 【修正要求】 - 仅修正语音转文字产生的错误(如谐音词/缺失字/多余字),保持回答原意不变 - 对技术术语、专业名词的错误必须修正(如将"Redis"误写为"瑞迪斯") - 保留回答中的口语化表达(如"嗯""然后"),但需删除重复填充词(如连续3个"那个") - 根据提问对回答的内容进行0-100分的打分 - 如果回答内容不足以满足涉及知识点,根据回答进行合理追问,分数小于20分就不用追问` } func output() string { return `3. 【输出格式(json)】 "{"text":"<修正后的完整文本>","score":<回答内容评分,数字类型>,"ask":"<追问内容文本>","not_enough_check_skill":"<为满足涉及的知识点(多个','隔开)>"}"` }