From 863df0a2e11015de575493fab64f1353ab538975 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 6 Mar 2023 11:21:52 +0800 Subject: [PATCH 1/2] =?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 | 12 ++++++++++++ app/appearance/langs/es_ES.json | 12 ++++++++++++ app/appearance/langs/fr_FR.json | 12 ++++++++++++ app/appearance/langs/zh_CHT.json | 12 ++++++++++++ app/appearance/langs/zh_CN.json | 12 ++++++++++++ 5 files changed, 60 insertions(+) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 31c117396..ef9f6294a 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1,4 +1,16 @@ { + "aiContinueWrite": "Continue writing", + "aiTranslate": "Translate", + "aiExtractSummary": "Extract summary", + "aiTranslate_zh_CN": "Chinese", + "aiTranslate_ja_JP": "Japanese", + "aiTranslate_ko_KR": "Korean", + "aiTranslate_en_US": "English", + "aiTranslate_es_ES": "Spanish", + "aiTranslate_fr_FR": "French", + "aiTranslate_de_DE": "German", + "aiBrainStorm": "Brainstorm", + "aiFixGrammarSpell": "Fix grammar and spelling", "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 fcbe99967..1de402117 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1,4 +1,16 @@ { + "aiContinueWrite": "Continuar escribiendo", + "aiTranslate": "Traducir", + "aiExtractSummary": "Extraer resumen", + "aiTranslate_zh_CN": "Chino", + "aiTranslate_ja_JP": "Japonés", + "aiTranslate_ko_KR": "Coreano", + "aiTranslate_en_US": "Inglés", + "aiTranslate_es_ES": "Español", + "aiTranslate_fr_FR": "Francés", + "aiTranslate_de_DE": "Alemán", + "aiBrainStorm": "Lluvia de ideas", + "aiFixGrammarSpell": "Corregir gramática y ortografía", "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 5296617c9..0bf630c7d 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1,4 +1,16 @@ { + "aiContinueWrite": "Continuer à écrire", + "aiTranslate": "Traduire", + "aiExtractSummary": "Résumé de l'extrait", + "aiTranslate_zh_CN": "Chinois", + "aiTranslate_ja_JP": "Japonais", + "aiTranslate_ko_KR": "Coréen", + "aiTranslate_en_US": "Anglais", + "aiTranslate_es_ES": "Espagnol", + "aiTranslate_fr_FR": "Français", + "aiTranslate_de_DE": "Allemand", + "aiBrainStorm": "Remue-méninges", + "aiFixGrammarSpell": "Corrige la grammaire et l'orthographe", "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 7d7eb260f..8403ae9d1 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1,4 +1,16 @@ { + "aiContinueWrite": "續寫", + "aiTranslate": "翻譯", + "aiExtractSummary": "提取摘要", + "aiTranslate_zh_CN": "中文", + "aiTranslate_ja_JP": "日文", + "aiTranslate_ko_KR": "韓文", + "aiTranslate_en_US": "英文", + "aiTranslate_es_ES": "西班牙文", + "aiTranslate_fr_FR": "法文", + "aiTranslate_de_DE": "德文", + "aiBrainStorm": "頭腦風暴", + "aiFixGrammarSpell": "修正語法和拼寫", "attributeView": "屬性視圖", "mgmt": "管理", "spaceRepetition": "間隔重複", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 3f131c84c..f0a8ca466 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1,4 +1,16 @@ { + "aiContinueWrite": "续写", + "aiTranslate": "翻译", + "aiExtractSummary": "提取摘要", + "aiTranslate_zh_CN": "中文", + "aiTranslate_ja_JP": "日文", + "aiTranslate_ko_KR": "韩文", + "aiTranslate_en_US": "英文", + "aiTranslate_es_ES": "西班牙文", + "aiTranslate_fr_FR": "法文", + "aiTranslate_de_DE": "德文", + "aiBrainStorm": "头脑风暴", + "aiFixGrammarSpell": "修正语法和拼写", "attributeView": "属性视图", "mgmt": "管理", "spaceRepetition": "间隔重复", From 6edcdf7d5073a470698e6b73515594f10d515475 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 6 Mar 2023 11:28:27 +0800 Subject: [PATCH 2/2] =?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 | 34 ++++++++++++++++++++++++++++++++++ kernel/api/router.go | 2 ++ kernel/model/ai.go | 20 ++++++++++++++++++++ kernel/util/openai.go | 12 ++++++++++++ 4 files changed, 68 insertions(+) diff --git a/kernel/api/ai.go b/kernel/api/ai.go index 13717e233..b0a49824c 100644 --- a/kernel/api/ai.go +++ b/kernel/api/ai.go @@ -89,3 +89,37 @@ func chatGPTSummary(c *gin.Context) { } 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) +} diff --git a/kernel/api/router.go b/kernel/api/router.go index de415a515..9c10c5883 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -332,4 +332,6 @@ func ServeAPI(ginServer *gin.Engine) { 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) } diff --git a/kernel/model/ai.go b/kernel/model/ai.go index bc48dc5a9..dabe796f7 100644 --- a/kernel/model/ai.go +++ b/kernel/model/ai.go @@ -25,6 +25,26 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func ChatGPTFixGrammarSpell(ids []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 diff --git a/kernel/util/openai.go b/kernel/util/openai.go index ca98d6528..17775ea11 100644 --- a/kernel/util/openai.go +++ b/kernel/util/openai.go @@ -57,6 +57,18 @@ func ChatGPTSummary(msg string, lang string) (ret string) { 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 + ret, _ = ChatGPTContinueWrite(msg, nil) + return +} + func ChatGPTContinueWrite(msg string, contextMsgs []string) (ret string, retContextMsgs []string) { if "" == OpenAIAPIKey { return