From 02a243aae5b85affba4145cd9178addf7649612d Mon Sep 17 00:00:00 2001 From: terwer Date: Thu, 31 Aug 2023 14:58:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96AI=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/composables/useChatGPT.ts | 20 +------------------ src/stores/usePublishPreferenceSetting.ts | 24 +++++++++++++++++++++-- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/composables/useChatGPT.ts b/src/composables/useChatGPT.ts index 5b2dd181..308cc73c 100644 --- a/src/composables/useChatGPT.ts +++ b/src/composables/useChatGPT.ts @@ -29,7 +29,6 @@ import { ChatGPTAPI, ChatGPTUnofficialProxyAPI, SendMessageOptions } from "chatg import { Utils } from "~/src/utils/utils.ts" import { isDev } from "~/src/utils/constants.ts" import { createAppLogger } from "~/src/utils/appLogger.ts" -import { SiyuanDevice } from "zhi-device" /** * 创建一个用于与 ChatGPT 服务进行交互的钩子 @@ -41,30 +40,13 @@ import { SiyuanDevice } from "zhi-device" */ const useChatGPT = () => { const logger = createAppLogger("use-chatgpt") - const { getReadOnlyPublishPreferenceSetting, getPublishPreferenceSetting } = usePublishPreferenceSetting() - const changablePref = getPublishPreferenceSetting() + const { getReadOnlyPublishPreferenceSetting } = usePublishPreferenceSetting() const pref = getReadOnlyPublishPreferenceSetting() // 创建 ChatGPTAPI 实例 let api: ChatGPTAPI | ChatGPTUnofficialProxyAPI try { - // 检测是否使用思源笔记的配置 - const win = SiyuanDevice.siyuanWindow() - const snAiCfg = win?.siyuan?.config?.ai?.openAI - logger.info("try load win.siyuan.config =>", snAiCfg) - // 使用思源笔记的配置 - if (snAiCfg) { - changablePref.value.experimentalUseSiyuanNoteAIConfig = true - changablePref.value.experimentalAIProxyUrl = snAiCfg.apiProxy - changablePref.value.experimentalAICode = snAiCfg.apiKey - changablePref.value.experimentalAIBaseUrl = snAiCfg.apiBaseURL - logger.info("use siyuan-note ai config") - } else { - changablePref.value.experimentalUseSiyuanNoteAIConfig = false - logger.info("use custom ai config") - } - // 设置了代理地址创建代理实例,否则使用官方实例 if (!StrUtil.isEmptyString(pref.value.experimentalAIProxyUrl)) { api = new ChatGPTUnofficialProxyAPI({ diff --git a/src/stores/usePublishPreferenceSetting.ts b/src/stores/usePublishPreferenceSetting.ts index 32416c1a..2f73ba86 100644 --- a/src/stores/usePublishPreferenceSetting.ts +++ b/src/stores/usePublishPreferenceSetting.ts @@ -26,6 +26,8 @@ import { RemovableRef, StorageSerializers, useLocalStorage } from "@vueuse/core" import { PublishPreferenceCfg } from "~/src/models/publishPreferenceCfg.ts" import { readonly } from "vue" +import {SiyuanDevice} from "zhi-device"; +import {createAppLogger} from "~/src/utils/appLogger.ts"; /** * 使用发布偏好设置的自定义钩子 @@ -33,6 +35,7 @@ import { readonly } from "vue" const usePublishPreferenceSetting = () => { // 存储键 const storageKey = "publish-preference-cfg" + const logger = createAppLogger("use-publish-pref") /** * 获取思源笔记配置 @@ -43,10 +46,27 @@ const usePublishPreferenceSetting = () => { */ const getPublishPreferenceSetting = (): RemovableRef => { const initialValue = new PublishPreferenceCfg() - const siyuanConfig = useLocalStorage(storageKey, initialValue, { + const prefConfig = useLocalStorage(storageKey, initialValue, { serializer: StorageSerializers.object, }) - return siyuanConfig + + // 检测是否使用思源笔记的配置 + const win = SiyuanDevice.siyuanWindow() + const snAiCfg = win?.siyuan?.config?.ai?.openAI + logger.info("try load win.siyuan.config =>", snAiCfg) + // 使用思源笔记的配置 + if (snAiCfg) { + prefConfig.value.experimentalUseSiyuanNoteAIConfig = true + prefConfig.value.experimentalAIProxyUrl = snAiCfg.apiProxy + prefConfig.value.experimentalAICode = snAiCfg.apiKey + prefConfig.value.experimentalAIBaseUrl = snAiCfg.apiBaseURL + logger.info("use siyuan-note ai config") + } else { + prefConfig.value.experimentalUseSiyuanNoteAIConfig = false + logger.info("use custom ai config") + } + + return prefConfig } /**