From 5be8b33885825e810466a3d9a1972ecd95f6577f Mon Sep 17 00:00:00 2001 From: YuShifan <894402575bt@gmail.com> Date: Tue, 24 Sep 2024 01:19:32 +0800 Subject: [PATCH 1/2] feat(copilot): change to gpt-4o to default model --- src/database/database.config.ts | 2 + .../1727111519962-changeDefaultLLMModel.ts | 145 ++++++++++++++++++ src/database/models/SettingEntity.ts | 2 +- src/store/modules/app.ts | 2 +- src/types/global.d.ts | 3 + src/views/settings/index.vue | 7 +- 6 files changed, 157 insertions(+), 4 deletions(-) create mode 100644 src/database/migration/1727111519962-changeDefaultLLMModel.ts diff --git a/src/database/database.config.ts b/src/database/database.config.ts index 2c5a00dde..f8ea11029 100644 --- a/src/database/database.config.ts +++ b/src/database/database.config.ts @@ -46,6 +46,7 @@ import { logLevel1704941582350 } from './migration/1704941582350-logLevel' import { updatePayloadTypeToVarchar1630403733965 } from './migration/1705478422620-updatePayloadTypeToVarchar' import { supportOpenAIAPIHost1716044120271 } from './migration/1716044120271-supportOpenAIAPIHost' import { ignoreQoS0Message1724839386732 } from './migration/1724839386732-ignoreQoS0Message' +import { changeDefaultLLMModel1727111519962 } from './migration/1727111519962-changeDefaultLLMModel' const STORE_PATH = getAppDataPath('MQTTX') try { @@ -98,6 +99,7 @@ const ORMConfig = { updatePayloadTypeToVarchar1630403733965, supportOpenAIAPIHost1716044120271, ignoreQoS0Message1724839386732, + changeDefaultLLMModel1727111519962, ], migrationsTableName: 'temp_migration_table', entities: [ diff --git a/src/database/migration/1727111519962-changeDefaultLLMModel.ts b/src/database/migration/1727111519962-changeDefaultLLMModel.ts new file mode 100644 index 000000000..1c75f3bd9 --- /dev/null +++ b/src/database/migration/1727111519962-changeDefaultLLMModel.ts @@ -0,0 +1,145 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class changeDefaultLLMModel1727111519962 implements MigrationInterface { + name = 'changeDefaultLLMModel1727111519962' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_SettingEntity" ( + "id" varchar PRIMARY KEY NOT NULL, + "width" integer NOT NULL DEFAULT (1025), + "height" integer NOT NULL DEFAULT (749), + "autoCheck" boolean NOT NULL DEFAULT (1), + "currentLang" varchar CHECK(currentLang IN ('zh', 'en', 'ja', 'tr', 'hu')) NOT NULL DEFAULT ('en'), + "currentTheme" varchar CHECK(currentTheme IN ('light', 'dark', 'night')) NOT NULL DEFAULT ('light'), + "maxReconnectTimes" integer NOT NULL DEFAULT (10), + "autoResub" boolean NOT NULL DEFAULT (1), + "syncOsTheme" boolean NOT NULL DEFAULT (0), + "multiTopics" boolean NOT NULL DEFAULT (1), + "jsonHighlight" boolean NOT NULL DEFAULT (1), + "openAIAPIKey" varchar NOT NULL DEFAULT (''), + "model" varchar NOT NULL DEFAULT ('gpt-4o'), + "enableCopilot" boolean NOT NULL DEFAULT (1), + "logLevel" varchar CHECK(logLevel IN ('debug', 'info', 'warn', 'error')) NOT NULL DEFAULT ('info'), + "openAIAPIHost" varchar NOT NULL DEFAULT ('https://api.openai.com/v1'), + "ignoreQoS0Message" boolean NOT NULL DEFAULT (0) + ) + `) + await queryRunner.query(` + INSERT INTO "temporary_SettingEntity"( + "id", + "width", + "height", + "autoCheck", + "currentLang", + "currentTheme", + "maxReconnectTimes", + "autoResub", + "syncOsTheme", + "multiTopics", + "jsonHighlight", + "openAIAPIKey", + "model", + "enableCopilot", + "logLevel", + "openAIAPIHost", + "ignoreQoS0Message" + ) + SELECT "id", + "width", + "height", + "autoCheck", + "currentLang", + "currentTheme", + "maxReconnectTimes", + "autoResub", + "syncOsTheme", + "multiTopics", + "jsonHighlight", + "openAIAPIKey", + "model", + "enableCopilot", + "logLevel", + "openAIAPIHost", + "ignoreQoS0Message" + FROM "SettingEntity" + `) + await queryRunner.query(` + DROP TABLE "SettingEntity" + `) + await queryRunner.query(` + ALTER TABLE "temporary_SettingEntity" + RENAME TO "SettingEntity" + `) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "SettingEntity" + RENAME TO "temporary_SettingEntity" + `) + await queryRunner.query(` + CREATE TABLE "SettingEntity" ( + "id" varchar PRIMARY KEY NOT NULL, + "width" integer NOT NULL DEFAULT (1025), + "height" integer NOT NULL DEFAULT (749), + "autoCheck" boolean NOT NULL DEFAULT (1), + "currentLang" varchar CHECK(currentLang IN ('zh', 'en', 'ja', 'tr', 'hu')) NOT NULL DEFAULT ('en'), + "currentTheme" varchar CHECK(currentTheme IN ('light', 'dark', 'night')) NOT NULL DEFAULT ('light'), + "maxReconnectTimes" integer NOT NULL DEFAULT (10), + "autoResub" boolean NOT NULL DEFAULT (1), + "syncOsTheme" boolean NOT NULL DEFAULT (0), + "multiTopics" boolean NOT NULL DEFAULT (1), + "jsonHighlight" boolean NOT NULL DEFAULT (1), + "openAIAPIKey" varchar NOT NULL DEFAULT (''), + "model" varchar NOT NULL DEFAULT ('gpt-3.5-turbo'), + "enableCopilot" boolean NOT NULL DEFAULT (1), + "logLevel" varchar CHECK(logLevel IN ('debug', 'info', 'warn', 'error')) NOT NULL DEFAULT ('info'), + "openAIAPIHost" varchar NOT NULL DEFAULT ('https://api.openai.com/v1'), + "ignoreQoS0Message" boolean NOT NULL DEFAULT (0) + ) + `) + await queryRunner.query(` + INSERT INTO "SettingEntity"( + "id", + "width", + "height", + "autoCheck", + "currentLang", + "currentTheme", + "maxReconnectTimes", + "autoResub", + "syncOsTheme", + "multiTopics", + "jsonHighlight", + "openAIAPIKey", + "model", + "enableCopilot", + "logLevel", + "openAIAPIHost", + "ignoreQoS0Message" + ) + SELECT "id", + "width", + "height", + "autoCheck", + "currentLang", + "currentTheme", + "maxReconnectTimes", + "autoResub", + "syncOsTheme", + "multiTopics", + "jsonHighlight", + "openAIAPIKey", + "model", + "enableCopilot", + "logLevel", + "openAIAPIHost", + "ignoreQoS0Message" + FROM "temporary_SettingEntity" + `) + await queryRunner.query(` + DROP TABLE "temporary_SettingEntity" + `) + } +} diff --git a/src/database/models/SettingEntity.ts b/src/database/models/SettingEntity.ts index 6a5d6cf4c..d0fd31191 100644 --- a/src/database/models/SettingEntity.ts +++ b/src/database/models/SettingEntity.ts @@ -44,7 +44,7 @@ export default class SettingEntity { @Column({ type: 'varchar', default: '' }) openAIAPIKey!: string - @Column({ type: 'varchar', default: 'gpt-3.5-turbo' }) + @Column({ type: 'varchar', default: 'gpt-4o' }) model!: string @Column({ type: 'simple-enum', enum: ['debug', 'info', 'warn', 'error'], default: 'info' }) diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index 1ea3e7a97..30898385e 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -61,7 +61,7 @@ const app = { enableCopilot: settingData.enableCopilot, openAIAPIHost: settingData.openAIAPIHost || 'https://api.openai.com/v1', openAIAPIKey: settingData.openAIAPIKey || '', - model: settingData.model || 'gpt-3.5-turbo', + model: settingData.model || 'gpt-4o', isPrismButtonAdded: false, logLevel: settingData.logLevel || 'info', showConnectionList: getShowConnectionList(), diff --git a/src/types/global.d.ts b/src/types/global.d.ts index b14bacf71..e2a49ef89 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -429,6 +429,9 @@ declare global { | 'gpt-4-32k-0613' | 'gpt-4-turbo' | 'gpt-4o' + | 'gpt-4o-mini' + | 'o1-preview' + | 'o1-mini' | string interface AreaLineSeriesData { diff --git a/src/views/settings/index.vue b/src/views/settings/index.vue index 1c649b19f..2bf93cbbe 100644 --- a/src/views/settings/index.vue +++ b/src/views/settings/index.vue @@ -401,7 +401,7 @@ Date: Tue, 24 Sep 2024 01:38:29 +0800 Subject: [PATCH 2/2] feat(copilot): deepseek support --- src/views/settings/index.vue | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/views/settings/index.vue b/src/views/settings/index.vue index 2bf93cbbe..32b114cb6 100644 --- a/src/views/settings/index.vue +++ b/src/views/settings/index.vue @@ -505,6 +505,10 @@ export default class Settings extends Vue { value: 'Moonshot', children: [{ value: 'moonshot-v1-8k' }, { value: 'moonshot-v1-32k' }, { value: 'moonshot-v1-128k' }], }, + { + value: 'DeepSeek', + children: [{ value: 'deepseek-chat' }, { value: 'deepseek-coder' }], + }, ] private AIAPIHostOptions = [ { @@ -513,6 +517,9 @@ export default class Settings extends Vue { { value: 'https://api.moonshot.cn/v1', }, + { + value: 'https://api.deepseek.com/v1', + }, ] private showImportData = false private showExportData = false