使用openai进行了代码review
This commit is contained in:
+37
-17
@@ -1,4 +1,4 @@
|
||||
import { create } from "zustand";
|
||||
import { create } from "zustand";
|
||||
import { persist } from "zustand/middleware";
|
||||
|
||||
export interface AIPrompt {
|
||||
@@ -12,38 +12,39 @@ export const defaultPrompts: AIPrompt[] = [
|
||||
{
|
||||
id: "improve",
|
||||
label: "润色内容",
|
||||
description: "提升语言表达质量",
|
||||
systemPrompt: "你是专业的写作润色助手。请优化以下文本,使其更流畅、专业,具有吸引力,同时保持原意。请直接输出优化后的文本,不要包含任何解释或'优化后'等前缀。",
|
||||
description: "提升语句表达质量",
|
||||
systemPrompt:
|
||||
"你是专业的写作润色助手。请优化用户提供的文本,使其更清晰、流畅、专业,并保持原意。请直接输出优化后的文本。",
|
||||
},
|
||||
{
|
||||
id: "complete",
|
||||
label: "续写内容",
|
||||
description: "基于上下文自动续写",
|
||||
systemPrompt: "你是富有创意的写作助手。请根据以下上下文逻辑,自然地续写一段内容,风格与前文保持一致。",
|
||||
description: "基于上下文自然续写",
|
||||
systemPrompt:
|
||||
"你是富有创意的写作助手。请根据用户提供的上下文自然续写,保证语气和风格一致。",
|
||||
},
|
||||
{
|
||||
id: "summarize",
|
||||
label: "生成摘要",
|
||||
description: "提取核心观点",
|
||||
systemPrompt: "你是专业的文档总结助手。请为以下文本生成一份简明扼要的摘要,提取核心观点,使用中文回答。",
|
||||
systemPrompt:
|
||||
"你是专业的文档总结助手。请对用户文本进行简明摘要,提取关键要点,使用中文回答。",
|
||||
},
|
||||
];
|
||||
|
||||
interface SettingsState {
|
||||
fontFamily: string;
|
||||
fontSize: number; // in pixels (e.g. 16)
|
||||
lineHeight: number; // e.g. 1.5
|
||||
tableLineHeight: number; // e.g. 1.2
|
||||
fontSize: number;
|
||||
lineHeight: number;
|
||||
tableLineHeight: number;
|
||||
timezone: string;
|
||||
|
||||
// AI Config
|
||||
aiConfig: {
|
||||
apiKey: string;
|
||||
baseURL: string;
|
||||
model: string;
|
||||
};
|
||||
|
||||
// Custom Prompts
|
||||
prompts: AIPrompt[];
|
||||
|
||||
setFontFamily: (font: string) => void;
|
||||
@@ -53,7 +54,6 @@ interface SettingsState {
|
||||
setTimezone: (timezone: string) => void;
|
||||
setAIConfig: (config: Partial<{ apiKey: string; baseURL: string; model: string }>) => void;
|
||||
|
||||
// Prompt Actions
|
||||
setPrompts: (prompts: AIPrompt[]) => void;
|
||||
addPrompt: (prompt: AIPrompt) => void;
|
||||
updatePrompt: (id: string, prompt: Partial<AIPrompt>) => void;
|
||||
@@ -64,7 +64,7 @@ interface SettingsState {
|
||||
export const useSettingsStore = create<SettingsState>()(
|
||||
persist(
|
||||
(set) => ({
|
||||
fontFamily: "Inter", // Default
|
||||
fontFamily: "Inter",
|
||||
fontSize: 16,
|
||||
lineHeight: 1.5,
|
||||
tableLineHeight: 1.2,
|
||||
@@ -83,18 +83,38 @@ export const useSettingsStore = create<SettingsState>()(
|
||||
setLineHeight: (height) => set({ lineHeight: height }),
|
||||
setTableLineHeight: (height) => set({ tableLineHeight: height }),
|
||||
setTimezone: (timezone) => set({ timezone }),
|
||||
setAIConfig: (config) => set((state) => ({ aiConfig: { ...state.aiConfig, ...config } })),
|
||||
setAIConfig: (config) =>
|
||||
set((state) => ({
|
||||
aiConfig: {
|
||||
...state.aiConfig,
|
||||
...config,
|
||||
},
|
||||
})),
|
||||
|
||||
setPrompts: (prompts) => set({ prompts }),
|
||||
addPrompt: (prompt) => set((state) => ({ prompts: [...state.prompts, prompt] })),
|
||||
updatePrompt: (id, prompt) => set((state) => ({
|
||||
prompts: state.prompts.map((p) => (p.id === id ? { ...p, ...prompt } : p)),
|
||||
})),
|
||||
updatePrompt: (id, prompt) =>
|
||||
set((state) => ({
|
||||
prompts: state.prompts.map((p) => (p.id === id ? { ...p, ...prompt } : p)),
|
||||
})),
|
||||
deletePrompt: (id) => set((state) => ({ prompts: state.prompts.filter((p) => p.id !== id) })),
|
||||
resetPrompts: () => set({ prompts: defaultPrompts }),
|
||||
}),
|
||||
{
|
||||
name: "noteai-settings",
|
||||
partialize: (state) => ({
|
||||
fontFamily: state.fontFamily,
|
||||
fontSize: state.fontSize,
|
||||
lineHeight: state.lineHeight,
|
||||
tableLineHeight: state.tableLineHeight,
|
||||
timezone: state.timezone,
|
||||
aiConfig: {
|
||||
baseURL: state.aiConfig.baseURL,
|
||||
model: state.aiConfig.model,
|
||||
apiKey: "",
|
||||
},
|
||||
prompts: state.prompts,
|
||||
}),
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user