feat: 新增模型管理功能(供应商 + 模型 CRUD)
- 新增 providers/models 数据库表、迁移和数据访问层 - 新增 15 个后端 API 路由(供应商/模型 CRUD + 连通性测试) - 新增 AI 服务层(registry.ts: buildProviderRegistry + testProviderConnection) - 新增前端模型管理页面(Tabs: 供应商/模型,含表格、表单、工具栏) - 新增前端 hooks(use-providers, use-models) - 新增共享类型和 MODEL_CAPABILITIES 常量 - 新增 10 个测试文件(66 个测试用例,4 个因 bun test ESM 兼容问题待修复) - 更新开发文档(architecture, backend, frontend) - 附带 apply-review 修复:统一错误响应、提取共享常量、清理重复测试 注意:registry.test.ts 中 4 个测试因 bun test 无法解析 createProviderRegistry ESM 导出而失败,详情见 context.md
This commit is contained in:
30
drizzle/0001_wooden_rocket_raccoon.sql
Normal file
30
drizzle/0001_wooden_rocket_raccoon.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
CREATE TABLE `providers` (
|
||||
`api_key` text NOT NULL,
|
||||
`base_url` text NOT NULL,
|
||||
`created_at` text NOT NULL,
|
||||
`enabled` integer DEFAULT 1 NOT NULL,
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`name` text NOT NULL,
|
||||
`type` text DEFAULT 'openai-compatible' NOT NULL,
|
||||
`updated_at` text NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `providers_name_unique` ON `providers` (`name`);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `models` (
|
||||
`capabilities` text NOT NULL,
|
||||
`context_length` integer,
|
||||
`created_at` text NOT NULL,
|
||||
`enabled` integer DEFAULT 1 NOT NULL,
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`max_output_tokens` integer,
|
||||
`model_id` text NOT NULL,
|
||||
`name` text NOT NULL,
|
||||
`provider_id` text NOT NULL,
|
||||
`updated_at` text NOT NULL,
|
||||
FOREIGN KEY (`provider_id`) REFERENCES `providers`(`id`) ON UPDATE no action ON DELETE no action
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `models_provider_id_model_id_unique` ON `models` (`provider_id`,`model_id`);
|
||||
--> statement-breakpoint
|
||||
CREATE INDEX `models_provider_id_idx` ON `models` (`provider_id`);
|
||||
Reference in New Issue
Block a user