fix:基本实现相关功能
This commit is contained in:
44
src/rpc/router/config.router.ts
Normal file
44
src/rpc/router/config.router.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { z } from 'zod'
|
||||
import { publicProcedure, router } from '@rpc/init'
|
||||
import Store from 'electron-store'
|
||||
import { CONFIG_STORE_KEY } from '@rpc/constants/store_key'
|
||||
|
||||
// 兼容性处理获取 Store 构造函数
|
||||
const StoreClass = (Store as any).default || Store
|
||||
const store = new StoreClass({ encryptionKey: CONFIG_STORE_KEY })
|
||||
|
||||
export const configRouter = router({
|
||||
// 获取配置
|
||||
// src/main/rpc/routers/configRouter.ts
|
||||
getChatConfigs: publicProcedure.query(() => {
|
||||
const data = store.get('chatModels')
|
||||
|
||||
// 检查是否包含必要的嵌套 Key,如果没有,说明是旧版本数据
|
||||
if (data && !data.reading && !data.summary) {
|
||||
console.log('检测到旧版本配置,正在重置...')
|
||||
store.delete('chatModels') // 删除旧的根键
|
||||
return null
|
||||
}
|
||||
|
||||
return data || null
|
||||
}),
|
||||
|
||||
// 分类保存配置
|
||||
saveChatConfig: publicProcedure
|
||||
.input(
|
||||
z.object({
|
||||
type: z.enum(['reading', 'summary']), // 明确支持 reading
|
||||
config: z.object({
|
||||
apiKey: z.string(),
|
||||
baseURL: z.string(),
|
||||
modelName: z.string(),
|
||||
temperature: z.number()
|
||||
})
|
||||
})
|
||||
)
|
||||
.mutation(async ({ input }) => {
|
||||
// 存储到 chatModels.reading 或 chatModels.summary
|
||||
store.set(`chatModels.${input.type}`, input.config)
|
||||
return { success: true }
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user