From 3446462184493f5090526669fdb88747449ee5ef Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 6 Mar 2023 14:07:32 +0800 Subject: [PATCH 1/3] =?UTF-8?q?:art:=20=E5=9D=97=E7=BA=A7=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=20`=E4=BA=BA=E5=B7=A5=E6=99=BA=E8=83=BD`=20https://gi?= =?UTF-8?q?thub.com/siyuan-note/siyuan/issues/7566?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/ai.go | 74 ++----------------------------------------- kernel/api/router.go | 6 +--- kernel/model/ai.go | 44 ++----------------------- kernel/util/openai.go | 25 +++------------ 4 files changed, 11 insertions(+), 138 deletions(-) diff --git a/kernel/api/ai.go b/kernel/api/ai.go index b0a49824c..02dece192 100644 --- a/kernel/api/ai.go +++ b/kernel/api/ai.go @@ -38,7 +38,7 @@ func chatGPT(c *gin.Context) { ret.Data = model.ChatGPT(msg) } -func chatGPTContinueWriteBlocks(c *gin.Context) { +func chatGPTWithAction(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) @@ -52,74 +52,6 @@ func chatGPTContinueWriteBlocks(c *gin.Context) { for _, id := range idsArg { ids = append(ids, id.(string)) } - ret.Data = model.ChatGPTContinueWriteBlocks(ids) -} - -func chatGPTTranslate(c *gin.Context) { - ret := gulu.Ret.NewResult() - defer c.JSON(http.StatusOK, ret) - - arg, ok := util.JsonArg(c, ret) - if !ok { - return - } - - idsArg := arg["ids"].([]interface{}) - var ids []string - for _, id := range idsArg { - ids = append(ids, id.(string)) - } - lang := arg["lang"].(string) - ret.Data = model.ChatGPTTranslate(ids, lang) -} - -func chatGPTSummary(c *gin.Context) { - ret := gulu.Ret.NewResult() - defer c.JSON(http.StatusOK, ret) - - arg, ok := util.JsonArg(c, ret) - if !ok { - return - } - - idsArg := arg["ids"].([]interface{}) - var ids []string - for _, id := range idsArg { - ids = append(ids, id.(string)) - } - ret.Data = model.ChatGPTSummary(ids) -} - -func chatGPTBrainStorm(c *gin.Context) { - ret := gulu.Ret.NewResult() - defer c.JSON(http.StatusOK, ret) - - arg, ok := util.JsonArg(c, ret) - if !ok { - return - } - - idsArg := arg["ids"].([]interface{}) - var ids []string - for _, id := range idsArg { - ids = append(ids, id.(string)) - } - ret.Data = model.ChatGPTBrainStorm(ids) -} - -func chatGPTFixGrammarSpell(c *gin.Context) { - ret := gulu.Ret.NewResult() - defer c.JSON(http.StatusOK, ret) - - arg, ok := util.JsonArg(c, ret) - if !ok { - return - } - - idsArg := arg["ids"].([]interface{}) - var ids []string - for _, id := range idsArg { - ids = append(ids, id.(string)) - } - ret.Data = model.ChatGPTFixGrammarSpell(ids) + action := arg["action"].(string) + ret.Data = model.ChatGPTWithAction(ids, action) } diff --git a/kernel/api/router.go b/kernel/api/router.go index 9c10c5883..8846ca349 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -329,9 +329,5 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/av/renderAttributeView", model.CheckAuth, renderAttributeView) ginServer.Handle("POST", "/api/ai/chatGPT", model.CheckAuth, chatGPT) - ginServer.Handle("POST", "/api/ai/chatGPTContinueWriteBlocks", model.CheckAuth, chatGPTContinueWriteBlocks) - ginServer.Handle("POST", "/api/ai/chatGPTTranslate", model.CheckAuth, chatGPTTranslate) - ginServer.Handle("POST", "/api/ai/chatGPTSummary", model.CheckAuth, chatGPTSummary) - ginServer.Handle("POST", "/api/ai/chatGPTBrainStorm", model.CheckAuth, chatGPTBrainStorm) - ginServer.Handle("POST", "/api/ai/chatGPTFixGrammarSpell", model.CheckAuth, chatGPTFixGrammarSpell) + ginServer.Handle("POST", "/api/ai/chatGPTWithAction", model.CheckAuth, chatGPTWithAction) } diff --git a/kernel/model/ai.go b/kernel/model/ai.go index dabe796f7..a2f759263 100644 --- a/kernel/model/ai.go +++ b/kernel/model/ai.go @@ -25,53 +25,13 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) -func ChatGPTFixGrammarSpell(ids []string) (ret string) { +func ChatGPTWithAction(ids []string, action string) (ret string) { if !isOpenAIAPIEnabled() { return } msg := getBlocksContent(ids) - ret = util.ChatGPTFixGrammarSpell(msg, Conf.Lang) - return -} - -func ChatGPTBrainStorm(ids []string) (ret string) { - if !isOpenAIAPIEnabled() { - return - } - - msg := getBlocksContent(ids) - ret = util.ChatGPTBrainStorm(msg, Conf.Lang) - return -} - -func ChatGPTSummary(ids []string) (ret string) { - if !isOpenAIAPIEnabled() { - return - } - - msg := getBlocksContent(ids) - ret = util.ChatGPTSummary(msg, Conf.Lang) - return -} - -func ChatGPTTranslate(ids []string, lang string) (ret string) { - if !isOpenAIAPIEnabled() { - return - } - - msg := getBlocksContent(ids) - ret = util.ChatGPTTranslate(msg, lang) - return -} - -func ChatGPTContinueWriteBlocks(ids []string) (ret string) { - if !isOpenAIAPIEnabled() { - return - } - - msg := getBlocksContent(ids) - ret, _ = util.ChatGPTContinueWrite(msg, nil) + ret = util.ChatGPTWithAction(msg, action, Conf.Lang) return } diff --git a/kernel/util/openai.go b/kernel/util/openai.go index 17775ea11..2ee9bddfb 100644 --- a/kernel/util/openai.go +++ b/kernel/util/openai.go @@ -45,26 +45,11 @@ func ChatGPT(msg string) (ret string) { return } -func ChatGPTTranslate(msg string, lang string) (ret string) { - msg = "Translate to " + lang + ":\n" + msg - ret, _ = ChatGPTContinueWrite(msg, nil) - return -} - -func ChatGPTSummary(msg string, lang string) (ret string) { - msg = "Summarized as follows, the result is in {" + lang + "}:\n" + msg - ret, _ = ChatGPTContinueWrite(msg, nil) - return -} - -func ChatGPTBrainStorm(msg string, lang string) (ret string) { - msg = "Brainstorm ideas as follows, the result is in {" + lang + "}:\n" + msg - ret, _ = ChatGPTContinueWrite(msg, nil) - return -} - -func ChatGPTFixGrammarSpell(msg string, lang string) (ret string) { - msg = "Fix grammar and spelling as follows, the result is in {" + lang + "}:\n" + msg +func ChatGPTWithAction(msg string, action string, lang string) (ret string) { + prompt := "{action} as follows, the result is in {lang}:\n" + prompt = strings.Replace(prompt, "{action}", action, -1) + prompt = strings.Replace(prompt, "{lang}", lang, -1) + msg = prompt + msg ret, _ = ChatGPTContinueWrite(msg, nil) return } From 4d6129de7b4255b752a4bb2e2b09b4fa73cb7c61 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 6 Mar 2023 14:11:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?:art:=20=E5=9D=97=E7=BA=A7=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=20`=E4=BA=BA=E5=B7=A5=E6=99=BA=E8=83=BD`=20https://gi?= =?UTF-8?q?thub.com/siyuan-note/siyuan/issues/7566?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/appearance/langs/en_US.json | 1 + app/appearance/langs/es_ES.json | 1 + app/appearance/langs/fr_FR.json | 1 + app/appearance/langs/zh_CHT.json | 1 + app/appearance/langs/zh_CN.json | 1 + 5 files changed, 5 insertions(+) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index ef9f6294a..df50f6d9f 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -11,6 +11,7 @@ "aiTranslate_de_DE": "German", "aiBrainStorm": "Brainstorm", "aiFixGrammarSpell": "Fix grammar and spelling", + "aiCustomAction": "Custom action...", "attributeView": "Attribute View", "mgmt": "Management", "spaceRepetition": "Spaced Repetition", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 1de402117..334716dba 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -11,6 +11,7 @@ "aiTranslate_de_DE": "Alemán", "aiBrainStorm": "Lluvia de ideas", "aiFixGrammarSpell": "Corregir gramática y ortografía", + "aiCustomAction": "Acción personalizada...", "attributeView": "Vista de atributos", "mgmt": "Administración", "spaceRepetition": "Repetición Espaciada", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 0bf630c7d..4b53f5cd9 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -11,6 +11,7 @@ "aiTranslate_de_DE": "Allemand", "aiBrainStorm": "Remue-méninges", "aiFixGrammarSpell": "Corrige la grammaire et l'orthographe", + "aiCustomAction": "Action personnalisée...", "attributeView": "Vista de atributos", "mgmt": "Gestion", "spaceRepetition": "Répétition espacée", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 8403ae9d1..66e8d1a70 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -11,6 +11,7 @@ "aiTranslate_de_DE": "德文", "aiBrainStorm": "頭腦風暴", "aiFixGrammarSpell": "修正語法和拼寫", + "aiCustomAction": "自定義操作...", "attributeView": "屬性視圖", "mgmt": "管理", "spaceRepetition": "間隔重複", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index f0a8ca466..497789203 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -11,6 +11,7 @@ "aiTranslate_de_DE": "德文", "aiBrainStorm": "头脑风暴", "aiFixGrammarSpell": "修正语法和拼写", + "aiCustomAction": "自定义操作...", "attributeView": "属性视图", "mgmt": "管理", "spaceRepetition": "间隔重复", From c214a38eb9182f8b03290e498103d121cd2c1db1 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 6 Mar 2023 14:28:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?:art:=20=E5=9D=97=E7=BA=A7=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=20`=E4=BA=BA=E5=B7=A5=E6=99=BA=E8=83=BD`=20https://gi?= =?UTF-8?q?thub.com/siyuan-note/siyuan/issues/7566?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/ai.go | 7 ++++--- kernel/util/openai.go | 7 ++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/kernel/model/ai.go b/kernel/model/ai.go index a2f759263..df9b33b02 100644 --- a/kernel/model/ai.go +++ b/kernel/model/ai.go @@ -31,7 +31,7 @@ func ChatGPTWithAction(ids []string, action string) (ret string) { } msg := getBlocksContent(ids) - ret = util.ChatGPTWithAction(msg, action, Conf.Lang) + ret = util.ChatGPTWithAction(msg, action) return } @@ -81,10 +81,11 @@ func getBlocksContent(ids []string) string { } } + luteEngine := util.NewLute() buf := bytes.Buffer{} for _, node := range nodes { - content := treenode.NodeStaticContent(node, nil, true) - buf.WriteString(content) + md := treenode.ExportNodeStdMd(node, luteEngine) + buf.WriteString(md) buf.WriteString("\n\n") } return buf.String() diff --git a/kernel/util/openai.go b/kernel/util/openai.go index 2ee9bddfb..6a13690b6 100644 --- a/kernel/util/openai.go +++ b/kernel/util/openai.go @@ -45,11 +45,8 @@ func ChatGPT(msg string) (ret string) { return } -func ChatGPTWithAction(msg string, action string, lang string) (ret string) { - prompt := "{action} as follows, the result is in {lang}:\n" - prompt = strings.Replace(prompt, "{action}", action, -1) - prompt = strings.Replace(prompt, "{lang}", lang, -1) - msg = prompt + msg +func ChatGPTWithAction(msg string, action string) (ret string) { + msg = action + ":\n\n" + msg ret, _ = ChatGPTContinueWrite(msg, nil) return }