|
- package aisafety
-
- import (
- "crypto/md5"
- "encoding/hex"
- "encoding/json"
- "fmt"
- "sort"
- "strings"
-
- "code.gitea.io/gitea/modules/log"
-
- "github.com/go-resty/resty/v2"
- )
-
- var (
- restyClient *resty.Client
- HOST string
- KEY string
- )
-
- const (
- APPID = "1"
- LogPageSize = 500
- LogPageTokenExpired = "5m"
- pageSize = 15
- Success = "S000"
- )
-
- func getRestyClient() *resty.Client {
- if restyClient == nil {
- restyClient = resty.New()
- }
- return restyClient
- }
-
- func checkSetting() {
- if len(HOST) != 0 && len(KEY) != 0 {
- return
- }
- _ = loginCloudbrain()
- }
-
- func loginCloudbrain() error {
- HOST = "http://221.122.70.196:8081/atp-api"
- KEY = "1"
- return nil
- }
-
- func createSign(params map[string]interface{}, signKey string) string {
- var sceneList []string
- for k := range params {
- sceneList = append(sceneList, k)
- }
- sort.Strings(sceneList)
- re := ""
- for _, key := range sceneList {
- if params[key] != nil {
- re += key + "=" + fmt.Sprint(params[key]) + "&"
- }
- }
- re += "key=" + signKey
- log.Info("sign key:" + re)
- h := md5.New()
- h.Write([]byte(re))
- return strings.ToUpper(hex.EncodeToString(h.Sum(nil)))
- }
-
- func CreateSafetyTask(jobName string, body interface{}) (string, error) {
- checkSetting()
- client := getRestyClient()
- var jobResult string
-
- reqPara, _ := json.Marshal(body)
- log.Warn("job req:", string(reqPara[:]))
-
- params := make(map[string]interface{})
- //params["appId"] = APPID
-
- res, err := client.R().
- SetHeader("Content-Type", "application/json").
- SetHeader("sign", createSign(params, KEY)).
- //SetAuthToken(TOKEN).
- SetBody(body).
- SetResult(&jobResult).
- Post(HOST + "/v1/external/eval-standard/create")
- log.Info("url=" + HOST + "/v1/external/eval-standard/create")
-
- if err != nil {
- return "", fmt.Errorf("resty create job: %s", err)
- } else {
- log.Info("result string=" + jobResult + " res code=" + fmt.Sprint(res.StatusCode()))
- }
-
- responseStr := string(res.Body())
- log.Info("responseStr=" + responseStr)
-
- return jobResult, nil
-
- }
-
- func GetAlgorithmList() error {
- checkSetting()
- client := getRestyClient()
- var taskResult string
- params := make(map[string]interface{})
- //params["appId"] = APPID
-
- sign := createSign(params, KEY)
-
- res, err := client.R().
- SetHeader("Content-Type", "application/json").
- SetHeader("appId", APPID).
- SetHeader("sign", sign).
- SetResult(&taskResult).
- Get(HOST + "/v1/external/eval-standard/algorithmList")
-
- log.Info("url=" + HOST + "/v1/external/eval-standard/algorithmList" + " sign=" + sign + " appId=" + APPID)
-
- if err != nil {
- log.Info("error =" + err.Error())
- return fmt.Errorf("resty GetJob: %v", err)
- }
- log.Info("taskResult=" + taskResult)
- responseStr := string(res.Body())
- log.Info("GetAlgorithmList responseStr=" + responseStr + " res code=" + fmt.Sprint(res.StatusCode()))
-
- return nil
- }
-
- func GetTaskStatus(jobID string) error {
- checkSetting()
- client := getRestyClient()
- var taskResult string
- params := make(map[string]interface{})
- //params["appId"] = APPID
-
- res, err := client.R().
- SetHeader("Content-Type", "application/json").
- SetHeader("appId", APPID).
- SetHeader("sign", createSign(params, KEY)).
- SetResult(&taskResult).
- Get(HOST + "/v1/external/eval-standard/query")
- log.Info("url=" + HOST + "/v1/external/eval-standard/query")
- if err != nil {
- return fmt.Errorf("resty GetJob: %v", err)
- }
-
- responseStr := string(res.Body())
- log.Info("GetTaskStatus responseStr=" + responseStr + " res code=" + fmt.Sprint(res.StatusCode()))
-
- return nil
- }
|