feat(数据库): 添加提示词优化历史表

- 新增 prompt_optimizations 表存储用户的提示词优化历史
- 支持记录原始提示词、优化后提示词和优化模式
- 添加相应的数据库迁移文件
This commit is contained in:
gaoziman 2025-12-22 00:05:44 +08:00
parent 6e37e61420
commit fae1dfb7c9
4 changed files with 1215 additions and 0 deletions

View File

@ -0,0 +1,10 @@
CREATE TABLE "prompt_optimizations" (
"id" serial PRIMARY KEY NOT NULL,
"user_id" varchar(64) NOT NULL,
"original_prompt" text NOT NULL,
"optimized_prompt" text NOT NULL,
"mode" varchar(20) NOT NULL,
"created_at" timestamp with time zone DEFAULT now()
);
--> statement-breakpoint
ALTER TABLE "user_settings" ALTER COLUMN "default_model" SET DEFAULT 'claude-sonnet-4-5-20250929';

File diff suppressed because it is too large Load Diff

View File

@ -64,6 +64,13 @@
"when": 1766314954003, "when": 1766314954003,
"tag": "0008_flat_star_brand", "tag": "0008_flat_star_brand",
"breakpoints": true "breakpoints": true
},
{
"idx": 9,
"version": "7",
"when": 1766323563111,
"tag": "0009_omniscient_vision",
"breakpoints": true
} }
] ]
} }

View File

@ -289,6 +289,23 @@ export const notes = pgTable('notes', {
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow(), updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow(),
}); });
// ============================================
// 提示词优化历史表
// ============================================
export const promptOptimizations = pgTable('prompt_optimizations', {
id: serial('id').primaryKey(),
// 关联用户
userId: varchar('user_id', { length: 64 }).notNull(),
// 原始提示词
originalPrompt: text('original_prompt').notNull(),
// 优化后的提示词
optimizedPrompt: text('optimized_prompt').notNull(),
// 优化模式: concise(简洁版) | detailed(详细版)
mode: varchar('mode', { length: 20 }).notNull(),
// 时间戳
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow(),
});
// ============================================ // ============================================
// 关系定义 // 关系定义
// ============================================ // ============================================
@ -431,3 +448,6 @@ export type NewUserFavoriteAssistant = typeof userFavoriteAssistants.$inferInser
export type Note = typeof notes.$inferSelect; export type Note = typeof notes.$inferSelect;
export type NewNote = typeof notes.$inferInsert; export type NewNote = typeof notes.$inferInsert;
export type PromptOptimization = typeof promptOptimizations.$inferSelect;
export type NewPromptOptimization = typeof promptOptimizations.$inferInsert;