From b7b3f0400b957bc3cf33542e17a06d1c76ca3912 Mon Sep 17 00:00:00 2001 From: zouap Date: Wed, 22 Nov 2023 09:15:00 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E6=8E=A8=E7=90=86?= =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 4f971a628d..5f7ab71935 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -363,10 +363,18 @@ func GetNotebookUrl(ctx *context.Context) { ctx.JSON(http.StatusOK, response.OuterTrBizError(err, ctx)) return } + url = onlyTestReplace(url) m := map[string]interface{}{"url": url} ctx.JSON(http.StatusOK, response.OuterSuccessWithData(m)) } +func onlyTestReplace(url string) string { + if strings.HasSuffix(url, "?token=") { + url = strings.Replace(url, "?token=", "", 1) + } + return url +} + func GetNodeInfo(ctx *context.Context) { id := ctx.QueryInt64("id") t, err := task.GetAITaskTemplateByCloudbrainId(id) -- 2.34.1 From 3a688e36956d8fc2a405cbfab5b5c431e3a69112 Mon Sep 17 00:00:00 2001 From: zouap Date: Wed, 22 Nov 2023 17:16:24 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 3 +++ services/ai_task_service/cluster/c2net.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 5f7ab71935..6c3d7094d8 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -372,6 +372,9 @@ func onlyTestReplace(url string) string { if strings.HasSuffix(url, "?token=") { url = strings.Replace(url, "?token=", "", 1) } + if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { + url = strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.207.34/gradio", 1) + } return url } diff --git a/services/ai_task_service/cluster/c2net.go b/services/ai_task_service/cluster/c2net.go index 44570666f1..75d7f370de 100644 --- a/services/ai_task_service/cluster/c2net.go +++ b/services/ai_task_service/cluster/c2net.go @@ -180,7 +180,7 @@ func generateCommand(repoName, bootFile, datasetName string) string { } currentTimeNow := time.Now() timePostfix := currentTimeNow.Format("20060102_150405") - command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" + command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level debug --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" log.Info("comand=" + command) return command -- 2.34.1 From 95176a70b72450e002d1c35f2383dbfd3a7c5e71 Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 14:14:16 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- services/ai_task_service/cluster/c2net.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ai_task_service/cluster/c2net.go b/services/ai_task_service/cluster/c2net.go index 75d7f370de..1bbfef7e61 100644 --- a/services/ai_task_service/cluster/c2net.go +++ b/services/ai_task_service/cluster/c2net.go @@ -180,7 +180,7 @@ func generateCommand(repoName, bootFile, datasetName string) string { } currentTimeNow := time.Now() timePostfix := currentTimeNow.Format("20060102_150405") - command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level debug --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" + command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level trace --ws wsproto --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" log.Info("comand=" + command) return command -- 2.34.1 From 3e5ed838f006df5a778918582eee4aad0a034f71 Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 14:20:22 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 6c3d7094d8..3000aefbfc 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -369,11 +369,9 @@ func GetNotebookUrl(ctx *context.Context) { } func onlyTestReplace(url string) string { - if strings.HasSuffix(url, "?token=") { - url = strings.Replace(url, "?token=", "", 1) - } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { - url = strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.207.34/gradio", 1) + // + } return url } -- 2.34.1 From 9da156185e8af47d8d178fbaa8cc3e804c27dc24 Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 14:33:02 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- services/ai_task_service/cluster/c2net.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ai_task_service/cluster/c2net.go b/services/ai_task_service/cluster/c2net.go index 1bbfef7e61..33198e38c9 100644 --- a/services/ai_task_service/cluster/c2net.go +++ b/services/ai_task_service/cluster/c2net.go @@ -153,7 +153,7 @@ func generateCommand(repoName, bootFile, datasetName string) string { //prepare //command := "bash && cd /code && unzip master.zip && cd test-export-data && uvicorn train:app --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT" workDir := "/" - command := "mkdir /output;pip install gradio fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple;" + command := "mkdir /output;pip install wsproto -i https://pypi.tuna.tsinghua.edu.cn/simple;pip install gradio fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple;" command += "pwd; cd " + workDir + fmt.Sprintf(model_grampus.CommandPrepareScriptGpu) //unzip code & dataset -- 2.34.1 From 5ba51de1f385ec155d7d0fb90435e4a7ff9b7007 Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 15:50:51 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- services/ai_task_service/cluster/c2net.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ai_task_service/cluster/c2net.go b/services/ai_task_service/cluster/c2net.go index 33198e38c9..d3bd5cf0c7 100644 --- a/services/ai_task_service/cluster/c2net.go +++ b/services/ai_task_service/cluster/c2net.go @@ -180,7 +180,7 @@ func generateCommand(repoName, bootFile, datasetName string) string { } currentTimeNow := time.Now() timePostfix := currentTimeNow.Format("20060102_150405") - command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level trace --ws wsproto --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" + command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level trace --ws websockets --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" log.Info("comand=" + command) return command -- 2.34.1 From 95819c4304ac7a1acadfa83ce581b2af04866ca5 Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 15:58:55 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 3000aefbfc..c90875ad81 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -369,9 +369,11 @@ func GetNotebookUrl(ctx *context.Context) { } func onlyTestReplace(url string) string { + if strings.HasSuffix(url, "?token=") { + url = strings.Replace(url, "?token=", "", 1) + } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { - // - + //url = strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.207.34/gradio", 1) } return url } -- 2.34.1 From 97ed46c0a0a738b30e45e28ce25667691beade7f Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 16:12:05 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E6=AF=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index c90875ad81..fe31dca095 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -373,7 +373,7 @@ func onlyTestReplace(url string) string { url = strings.Replace(url, "?token=", "", 1) } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { - //url = strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.207.34/gradio", 1) + url = strings.Replace(url, "https://notebook.openi.org.cn", " http://192.168.242.23", 1) } return url } -- 2.34.1 From 253674b7ed951c410f374971eed0298e8e78ca9d Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 16:58:09 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E6=AF=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index fe31dca095..56da1d3950 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -2,6 +2,7 @@ package ai_task import ( "archive/zip" + "encoding/json" "net/http" "net/url" "strings" @@ -18,6 +19,7 @@ import ( "code.gitea.io/gitea/services/ai_task_service/schedule" "code.gitea.io/gitea/services/ai_task_service/task" "code.gitea.io/gitea/services/cloudbrain/resource" + "github.com/go-resty/resty/v2" ) func CreateAITask(ctx *context.Context, form entity.CreateReq) { @@ -373,11 +375,27 @@ func onlyTestReplace(url string) string { url = strings.Replace(url, "?token=", "", 1) } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { - url = strings.Replace(url, "https://notebook.openi.org.cn", " http://192.168.242.23", 1) + tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", " http://192.168.242.23", 1) + tmpurl += "queue/join" + clickOnce(tmpurl) } return url } +func clickOnce(url string) { + restyClient := resty.New() + log.Info("click url=" + url) + res, err := restyClient.R(). + SetHeader("Content-Type", "application/json"). + Get(url) + if err != nil { + log.Info("error=" + err.Error()) + } else { + jsonstr, _ := json.Marshal(res) + log.Info("job resp:", jsonstr) + } +} + func GetNodeInfo(ctx *context.Context) { id := ctx.QueryInt64("id") t, err := task.GetAITaskTemplateByCloudbrainId(id) -- 2.34.1 From f2750f319d69e5fb2b5258b93fdf6af74582c8ab Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 23 Nov 2023 17:37:49 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8=E8=8E=B7=E5=8F=96URL=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8HTTP=E6=96=B9=E5=BC=8F=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 56da1d3950..c02ee5e4f3 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -375,8 +375,8 @@ func onlyTestReplace(url string) string { url = strings.Replace(url, "?token=", "", 1) } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { - tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", " http://192.168.242.23", 1) - tmpurl += "queue/join" + tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.242.23", 1) + tmpurl += "/queue/join" clickOnce(tmpurl) } return url -- 2.34.1 From 32a7a98cbadb3a924eddb30d54f5c671ce24f2d3 Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 24 Nov 2023 10:05:54 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index c02ee5e4f3..674c5a0354 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -20,6 +20,7 @@ import ( "code.gitea.io/gitea/services/ai_task_service/task" "code.gitea.io/gitea/services/cloudbrain/resource" "github.com/go-resty/resty/v2" + "github.com/gorilla/websocket" ) func CreateAITask(ctx *context.Context, form entity.CreateReq) { @@ -376,12 +377,28 @@ func onlyTestReplace(url string) string { } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.242.23", 1) - tmpurl += "/queue/join" clickOnce(tmpurl) + tmpurl += "/queue/join" + sendMsgToWebsocket(tmpurl) } return url } +func sendMsgToWebsocket(tmpurl string) { + wsurl := strings.Replace(tmpurl, "http", "ws", 1) + log.Info("wsurl =" + wsurl) + conn, _, err := websocket.DefaultDialer.Dial(wsurl, nil) + if err == nil { + err1 := conn.WriteJSON("{\"msg\":\"send_hash\"}") + if err1 != nil { + log.Info("websocket send msg error=" + err1.Error()) + } + } else { + log.Info("websocket error=" + err.Error()) + } + +} + func clickOnce(url string) { restyClient := resty.New() log.Info("click url=" + url) -- 2.34.1 From aab921f44ad8c303f31630e39105f4edb54892db Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 24 Nov 2023 10:40:56 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86chatglm2=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 674c5a0354..22796de82b 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -366,22 +366,18 @@ func GetNotebookUrl(ctx *context.Context) { ctx.JSON(http.StatusOK, response.OuterTrBizError(err, ctx)) return } - url = onlyTestReplace(url) + onlyTestReplace(url) m := map[string]interface{}{"url": url} ctx.JSON(http.StatusOK, response.OuterSuccessWithData(m)) } -func onlyTestReplace(url string) string { - if strings.HasSuffix(url, "?token=") { - url = strings.Replace(url, "?token=", "", 1) - } +func onlyTestReplace(url string) { if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.242.23", 1) clickOnce(tmpurl) tmpurl += "/queue/join" sendMsgToWebsocket(tmpurl) } - return url } func sendMsgToWebsocket(tmpurl string) { @@ -389,6 +385,7 @@ func sendMsgToWebsocket(tmpurl string) { log.Info("wsurl =" + wsurl) conn, _, err := websocket.DefaultDialer.Dial(wsurl, nil) if err == nil { + defer conn.Close() err1 := conn.WriteJSON("{\"msg\":\"send_hash\"}") if err1 != nil { log.Info("websocket send msg error=" + err1.Error()) @@ -396,7 +393,6 @@ func sendMsgToWebsocket(tmpurl string) { } else { log.Info("websocket error=" + err.Error()) } - } func clickOnce(url string) { -- 2.34.1 From 85904082d6605a12c1f25473902b100bd7ec9926 Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 24 Nov 2023 11:28:06 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8=E7=BA=BF=E6=8E=A8=E7=90=86=E9=81=87=E5=88=B0?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=B1=BB=E7=9A=84=E5=A4=A7=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=97=B6=E8=BF=9B=E8=A1=8C=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index 22796de82b..f589f8ff12 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -366,13 +366,24 @@ func GetNotebookUrl(ctx *context.Context) { ctx.JSON(http.StatusOK, response.OuterTrBizError(err, ctx)) return } - onlyTestReplace(url) + onlyTestReplace(url, id) m := map[string]interface{}{"url": url} ctx.JSON(http.StatusOK, response.OuterSuccessWithData(m)) } -func onlyTestReplace(url string) { +func onlyTestReplace(url string, id int64) { + cloudbrainTask, bizErr := models.GetCloudbrainByCloudbrainID(id) + if bizErr == nil { + if cloudbrainTask.JobType != string(models.JobTypeOnlineInference) { + return + } + } else { + return + } if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { + if strings.HasSuffix(url, "?token=") { + url = strings.Replace(url, "?token=", "", 1) + } tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.242.23", 1) clickOnce(tmpurl) tmpurl += "/queue/join" @@ -395,10 +406,20 @@ func sendMsgToWebsocket(tmpurl string) { } } +var ( + restyClient *resty.Client +) + +func getRestyClient() *resty.Client { + if restyClient == nil { + restyClient = resty.New() + } + return restyClient +} func clickOnce(url string) { - restyClient := resty.New() + client := getRestyClient() log.Info("click url=" + url) - res, err := restyClient.R(). + res, err := client.R(). SetHeader("Content-Type", "application/json"). Get(url) if err != nil { -- 2.34.1 From 8d7e60f194d9ca58bc9bf23361cf1ecaa596d1dc Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 24 Nov 2023 17:03:03 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E6=8E=A8=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- manager/client/grampus/grampus.go | 33 +++++++++++++++++++++++ modules/setting/setting.go | 4 +++ services/ai_task_service/cluster/c2net.go | 20 ++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/manager/client/grampus/grampus.go b/manager/client/grampus/grampus.go index 47f08bde2c..3d78bfd140 100644 --- a/manager/client/grampus/grampus.go +++ b/manager/client/grampus/grampus.go @@ -12,6 +12,7 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "github.com/go-resty/resty/v2" + "github.com/gorilla/websocket" ) var ( @@ -597,3 +598,35 @@ sendjob: log.Info("delete grampus task, re=" + result.Info + " grampus jobId=" + jobID) return &result, nil } + +func ClickOnce(url string) { + client := getRestyClient() + log.Info("click url=" + url) + res, err := client.R(). + SetHeader("Content-Type", "application/json"). + Get(url) + if err != nil { + log.Info("error=" + err.Error()) + } else { + if res != nil { + jsonstr, _ := json.Marshal(res) + log.Info("job resp:", jsonstr) + } + } +} + +func SendMsgToWebsocket(wsurl string, msg string) { + //wsurl := strings.Replace(tmpurl, "http", "ws", 1) + log.Info("wsurl =" + wsurl) + conn, _, err := websocket.DefaultDialer.Dial(wsurl, nil) + if err == nil { + defer conn.Close() + err1 := conn.WriteJSON(msg) + //err1 := conn.WriteJSON("{\"msg\":\"send_hash\"}") + if err1 != nil { + log.Info("websocket send msg error=" + err1.Error()) + } + } else { + log.Info("websocket error=" + err.Error()) + } +} diff --git a/modules/setting/setting.go b/modules/setting/setting.go index dc3e773c8d..b48eac812f 100755 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -641,6 +641,8 @@ var ( GPUImageCommonName string MultiNode string MMLSparkMaxTime int64 + NoteBookDomainURL string + NoteBookLocalURL string }{} ClearStrategy = struct { @@ -1965,6 +1967,8 @@ func GetGrampusConfig() { Grampus.MMLSparkMaxTime = sec.Key("MMLSparkMaxTime").MustInt64(8 * 3600) + Grampus.NoteBookDomainURL = sec.Key("NoteBookDomainURL").MustString("https://notebook.openi.org.cn") + Grampus.NoteBookLocalURL = sec.Key("NoteBookLocalURL").MustString("http://192.168.242.23") } func SetRadarMapConfig() { diff --git a/services/ai_task_service/cluster/c2net.go b/services/ai_task_service/cluster/c2net.go index d3bd5cf0c7..f43783f97f 100644 --- a/services/ai_task_service/cluster/c2net.go +++ b/services/ai_task_service/cluster/c2net.go @@ -351,8 +351,28 @@ func (c C2NetClusterAdapter) GetNoteBookUrl(jobId string) (string, error) { if res.Url == "" { return "", errors.New("notebook task error") } + onlyForOnlineInference(res.Url, jobId) return res.Url + "?token=" + res.Token, nil } + +func onlyForOnlineInference(url string, jobId string) { + cloudbrainTask, bizErr := models.GetCloudbrainByJobID(jobId) + if bizErr == nil { + if cloudbrainTask.JobType != string(models.JobTypeOnlineInference) { + return + } + } else { + return + } + if strings.HasPrefix(url, setting.Grampus.NoteBookDomainURL) { + tmpurl := strings.Replace(url, setting.Grampus.NoteBookDomainURL, setting.Grampus.NoteBookLocalURL, 1) + grampus.ClickOnce(tmpurl) + tmpurl += "/queue/join" + wsurl := strings.Replace(tmpurl, "http", "ws", 1) + grampus.SendMsgToWebsocket(wsurl, "{\"msg\":\"send_hash\"}") + } +} + func (c C2NetClusterAdapter) GetNoteBookOperationProfile(jobId string) (*entity.OperationProfile, error) { if jobId == "" { log.Error("jobid is empty") -- 2.34.1 From d5fdc4aabce4fc5f044b97a656baf49f43d5510e Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 24 Nov 2023 17:18:21 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/ai_task/ai_task.go | 63 -------------------------------------- 1 file changed, 63 deletions(-) diff --git a/routers/ai_task/ai_task.go b/routers/ai_task/ai_task.go index f589f8ff12..4f971a628d 100644 --- a/routers/ai_task/ai_task.go +++ b/routers/ai_task/ai_task.go @@ -2,7 +2,6 @@ package ai_task import ( "archive/zip" - "encoding/json" "net/http" "net/url" "strings" @@ -19,8 +18,6 @@ import ( "code.gitea.io/gitea/services/ai_task_service/schedule" "code.gitea.io/gitea/services/ai_task_service/task" "code.gitea.io/gitea/services/cloudbrain/resource" - "github.com/go-resty/resty/v2" - "github.com/gorilla/websocket" ) func CreateAITask(ctx *context.Context, form entity.CreateReq) { @@ -366,70 +363,10 @@ func GetNotebookUrl(ctx *context.Context) { ctx.JSON(http.StatusOK, response.OuterTrBizError(err, ctx)) return } - onlyTestReplace(url, id) m := map[string]interface{}{"url": url} ctx.JSON(http.StatusOK, response.OuterSuccessWithData(m)) } -func onlyTestReplace(url string, id int64) { - cloudbrainTask, bizErr := models.GetCloudbrainByCloudbrainID(id) - if bizErr == nil { - if cloudbrainTask.JobType != string(models.JobTypeOnlineInference) { - return - } - } else { - return - } - if strings.HasPrefix(url, "https://notebook.openi.org.cn/") { - if strings.HasSuffix(url, "?token=") { - url = strings.Replace(url, "?token=", "", 1) - } - tmpurl := strings.Replace(url, "https://notebook.openi.org.cn", "http://192.168.242.23", 1) - clickOnce(tmpurl) - tmpurl += "/queue/join" - sendMsgToWebsocket(tmpurl) - } -} - -func sendMsgToWebsocket(tmpurl string) { - wsurl := strings.Replace(tmpurl, "http", "ws", 1) - log.Info("wsurl =" + wsurl) - conn, _, err := websocket.DefaultDialer.Dial(wsurl, nil) - if err == nil { - defer conn.Close() - err1 := conn.WriteJSON("{\"msg\":\"send_hash\"}") - if err1 != nil { - log.Info("websocket send msg error=" + err1.Error()) - } - } else { - log.Info("websocket error=" + err.Error()) - } -} - -var ( - restyClient *resty.Client -) - -func getRestyClient() *resty.Client { - if restyClient == nil { - restyClient = resty.New() - } - return restyClient -} -func clickOnce(url string) { - client := getRestyClient() - log.Info("click url=" + url) - res, err := client.R(). - SetHeader("Content-Type", "application/json"). - Get(url) - if err != nil { - log.Info("error=" + err.Error()) - } else { - jsonstr, _ := json.Marshal(res) - log.Info("job resp:", jsonstr) - } -} - func GetNodeInfo(ctx *context.Context) { id := ctx.QueryInt64("id") t, err := task.GetAITaskTemplateByCloudbrainId(id) -- 2.34.1 From 59f63d49b4bc3943c96e67c684bd1e79359e4b60 Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 24 Nov 2023 17:22:14 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- services/ai_task_service/cluster/c2net.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/ai_task_service/cluster/c2net.go b/services/ai_task_service/cluster/c2net.go index f43783f97f..0cd97d26a3 100644 --- a/services/ai_task_service/cluster/c2net.go +++ b/services/ai_task_service/cluster/c2net.go @@ -153,7 +153,7 @@ func generateCommand(repoName, bootFile, datasetName string) string { //prepare //command := "bash && cd /code && unzip master.zip && cd test-export-data && uvicorn train:app --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT" workDir := "/" - command := "mkdir /output;pip install wsproto -i https://pypi.tuna.tsinghua.edu.cn/simple;pip install gradio fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple;" + command := "mkdir /output;pip install gradio fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple;" command += "pwd; cd " + workDir + fmt.Sprintf(model_grampus.CommandPrepareScriptGpu) //unzip code & dataset @@ -180,7 +180,7 @@ func generateCommand(repoName, bootFile, datasetName string) string { } currentTimeNow := time.Now() timePostfix := currentTimeNow.Format("20060102_150405") - command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level trace --ws websockets --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" + command += "cd " + copyDatasetPath + ";echo " + timePostfix + " | tee /output/log_" + timePostfix + ".txt; uvicorn " + bootonlyfile + ":app --log-level debug --host 0.0.0.0 --port $OCTOPUS_NOTEBOOK_PORT 2>&1 | tee -a /output/log_" + timePostfix + ".txt;" log.Info("comand=" + command) return command -- 2.34.1