package ai import ( "bytes" "context" "data_ai/ul" "encoding/json" "github.com/baidubce/bce-qianfan-sdk/go/qianfan" log "github.com/donnie4w/go-logger/logger" "io/ioutil" qu "jygit.jydev.jianyu360.cn/data_processing/common_utils" "net/http" "os" "time" ) // 通用提示语··· func PostBaiDuDSAI(content string) map[string]interface{} { // API的URL apiURL := "https://qianfan.baidubce.com/v2/chat/completions" // 构造请求数据 messages := []map[string]interface{}{} messages = append(messages, map[string]interface{}{ "role": "user", "content": content, }) //glm-4-air glm-4-0520 glm-4-flash requestData := map[string]interface{}{ "model": "deepseek-v3", "temperature": 0.1, "top_p": 0.7, "messages": messages, } jsonData, _ := json.Marshal(requestData) // 创建HTTP请求 req, err := http.NewRequest("POST", apiURL, bytes.NewBuffer(jsonData)) if err != nil { log.Debug("Error: %s", err) return map[string]interface{}{} } // 设置请求头 req.Header.Add("Content-Type", "application/json") req.Header.Add("appid", "app-myQb9VYP") req.Header.Add("Authorization", "Bearer bce-v3/ALTAK-tiBiZmOp65qBQpU9Ipv8z/b3fe9ad37d7e6b006418d85758b107ad99a72f46") client := &http.Client{} client.Timeout = 300 * time.Second resp, err := client.Do(req) if err != nil { return map[string]interface{}{} } defer resp.Body.Close() // 解析响应 body, _ := ioutil.ReadAll(resp.Body) res := make(map[string]interface{}) json.Unmarshal(body, &res) if res != nil { if choices := ul.IsMarkInterfaceMap(res["choices"]); len(choices) > 0 { if message := qu.ObjToMap(choices[0]["message"]); message != nil { result := qu.ObjToString((*message)["content"]) result = ul.Escape.ReplaceAllString(result, "") if new_result := ul.SaveResultReg.FindString(result); new_result != "" { result = new_result } dict := make(map[string]interface{}) json.Unmarshal([]byte(result), &dict) return dict } } } return map[string]interface{}{} } /***************************** ****************************** ****************************** ****************************** ****************************** ******************************/ // 请求数据外围字段···重试1次··· func PostBaiDuDSInfo(content string) map[string]interface{} { zp, ok := map[string]interface{}{}, 0 for { ok++ if zp = PostBaiDuDSAI(content); len(zp) > 0 { break } if ok >= req_retry_deepseek { break } } return zp } // 百度千帆 func PostBaiDuAI(content string) map[string]interface{} { // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk os.Setenv("QIANFAN_ACCESS_KEY", "d60a9d42ca744a4a9d0e721666c8d3cc") os.Setenv("QIANFAN_SECRET_KEY", "2736bdc60aa14b3eaaf02597fc88a0e5") // 指定特定模型 chat := qianfan.NewChatCompletion( qianfan.WithModel("ERNIE-Speed-128K"), ) resp, err := chat.Do( context.TODO(), &qianfan.ChatCompletionRequest{ Messages: []qianfan.ChatCompletionMessage{ qianfan.ChatCompletionUserMessage(content), }, }, ) if err != nil { log.Debug(err) return map[string]interface{}{} } res := make(map[string]interface{}) result := resp.Result result = ul.Escape.ReplaceAllString(result, "") if new_result := ul.SaveResultReg.FindString(result); new_result != "" { result = new_result } json.Unmarshal([]byte(result), &res) return res }