Browse Source

提交调试代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.10.1^2
zouap 3 years ago
parent
commit
098dbe62b7
6 changed files with 186 additions and 1 deletions
  1. +4
    -0
      models/aisafety.go
  2. +1
    -0
      models/cloudbrain.go
  3. +134
    -0
      modules/aisafety/resty.go
  4. +44
    -0
      routers/repo/aisafety.go
  5. +2
    -1
      routers/repo/cloudbrain.go
  6. +1
    -0
      routers/routes/routes.go

+ 4
- 0
models/aisafety.go View File

@@ -0,0 +1,4 @@
package models

type AisafetyReq struct {
}

+ 1
- 0
models/cloudbrain.go View File

@@ -54,6 +54,7 @@ const (

JobTypeDebug JobType = "DEBUG"
JobTypeBenchmark JobType = "BENCHMARK"
JobTypeModelSafety JobType = "MODELSAFETY"
JobTypeSnn4imagenet JobType = "SNN4IMAGENET"
JobTypeBrainScore JobType = "BRAINSCORE"
JobTypeTrain JobType = "TRAIN"


+ 134
- 0
modules/aisafety/resty.go View File

@@ -0,0 +1,134 @@
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
TOKEN string
)

const (
JobHasBeenStopped = "S410"
errInvalidToken = "S401"
Public = "public"
Custom = "custom"
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(TOKEN) != 0 && restyClient != nil {
return
}
_ = loginCloudbrain()
}

func loginCloudbrain() error {

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
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[:]))

res, err := client.R().
SetHeader("Content-Type", "application/json").
//SetAuthToken(TOKEN).
SetBody(body).
SetResult(&jobResult).
Post(HOST + "/v1/external/eval-standard/create")

if err != nil {
return "", fmt.Errorf("resty create job: %s", err)
} else {
log.Info("restult=" + jobResult)
}

responseStr := string(res.Body())
log.Info("responseStr=" + responseStr)

return jobResult, nil

}

func GetAlgorithmList() error {
checkSetting()
client := getRestyClient()

res, err := client.R().
SetHeader("Content-Type", "application/json").
SetAuthToken(TOKEN).
Get(HOST + "/v1/external/eval-standard/algorithmList")

if err != nil {
return fmt.Errorf("resty GetJob: %v", err)
}

responseStr := string(res.Body())
log.Info("GetAlgorithmList responseStr=" + responseStr)

return nil
}

func GetTaskStatus(jobID string) error {
checkSetting()
client := getRestyClient()

res, err := client.R().
SetHeader("Content-Type", "application/json").
SetAuthToken(TOKEN).
Get(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)

return nil
}

+ 44
- 0
routers/repo/aisafety.go View File

@@ -0,0 +1,44 @@
package repo

import (
"encoding/json"
"io/ioutil"
"net/http"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/aisafety"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
)

func CloudBrainAiSafetyCreate(ctx *context.Context) {
jobType := ctx.Query("jobType")
if jobType == string(models.JobTypeBenchmark) {
jsonMap, err := getJsonContent("http://192.168.207.34:8065/Test_zap1234/openi_aisafety/src/branch/master/result/0301.json")
if err == nil {
aisafety.GetAlgorithmList()
aisafety.CreateSafetyTask("test", jsonMap)
//aisafety.GetTaskStatus()
}
}
}

func getJsonContent(url string) (map[string]interface{}, error) {

resp, err := http.Get(url)
if err != nil || resp.StatusCode != 200 {
log.Info("Get organizations url error=" + err.Error())
return nil, err
}
bytes, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
log.Info("Get organizations url error=" + err.Error())
return nil, err
}
jsonMap := make(map[string]interface{})

err = json.Unmarshal(bytes, &jsonMap)

return jsonMap, nil
}

+ 2
- 1
routers/repo/cloudbrain.go View File

@@ -2,7 +2,6 @@ package repo

import (
"bufio"
"code.gitea.io/gitea/services/cloudbrain/resource"
"encoding/json"
"errors"
"fmt"
@@ -16,6 +15,8 @@ import (
"time"
"unicode/utf8"

"code.gitea.io/gitea/services/cloudbrain/resource"

"code.gitea.io/gitea/modules/notification"

"code.gitea.io/gitea/modules/grampus"


+ 1
- 0
routers/routes/routes.go View File

@@ -1126,6 +1126,7 @@ func RegisterRoutes(m *macaron.Macaron) {
})
m.Get("/create", reqWechatBind, reqRepoCloudBrainWriter, repo.CloudBrainBenchmarkNew)
m.Post("/create", reqWechatBind, reqRepoCloudBrainWriter, bindIgnErr(auth.CreateCloudBrainForm{}), repo.CloudBrainBenchmarkCreate)
m.Get("/create_safetytask", repo.CloudBrainAiSafetyCreate)
m.Get("/get_child_types", repo.GetChildTypes)
})



Loading…
Cancel
Save