chore(database): 优化模型配置表结构和索引设计 - 重新设计 model_gateway_models 表的字段结构和约束 - 新增 billing_config 和 special_params 配置字段 - 优化索引策略,包括复合索引和条件索引的创建 - 统一表注释格式和字段说明文档 - 移除过时的配置字段和冗余索引
117 lines
8.8 KiB
SQL
117 lines
8.8 KiB
SQL
-- ============================================
|
|
-- 提示词服务 (prompts-core) 建表语句
|
|
-- ============================================
|
|
|
|
-- 1. 提示词历史会话表
|
|
CREATE TABLE "public"."prompts_compose_session" (
|
|
"id" int8 NOT NULL,
|
|
"tenant_id" int8 NOT NULL DEFAULT 0,
|
|
"creator" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"created_at" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updater" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"updated_at" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"deleted_at" timestamp(6),
|
|
"session_id" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"request_content" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
"response_content" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
"remark" varchar(500) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
"node_id" varchar(64) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
CONSTRAINT "prompts_compose_session_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
ALTER TABLE "public"."prompts_compose_session" OWNER TO "postgres";
|
|
|
|
CREATE INDEX "idx_compose_session_creator_session_created" ON "public"."prompts_compose_session" USING btree (
|
|
"creator", "session_id", "created_at" DESC
|
|
);
|
|
|
|
CREATE INDEX "idx_compose_session_session_id" ON "public"."prompts_compose_session" USING btree ("session_id");
|
|
|
|
CREATE INDEX "idx_prompts_compose_session_deleted_at" ON "public"."prompts_compose_session" USING btree ("deleted_at");
|
|
|
|
COMMENT ON TABLE "public"."prompts_compose_session" IS '提示词历史会话表';
|
|
COMMENT ON COLUMN "public"."prompts_compose_session"."session_id" IS '会话ID';
|
|
COMMENT ON COLUMN "public"."prompts_compose_session"."node_id" IS '节点ID';
|
|
COMMENT ON COLUMN "public"."prompts_compose_session"."request_content" IS '请求内容(JSON格式)';
|
|
COMMENT ON COLUMN "public"."prompts_compose_session"."response_content" IS '返回内容(JSON格式)';
|
|
COMMENT ON COLUMN "public"."prompts_compose_session"."remark" IS '备注';
|
|
|
|
|
|
-- 2. 模型协议配置表
|
|
CREATE TABLE "public"."prompts_provider_protocol" (
|
|
"id" int8 NOT NULL,
|
|
"tenant_id" int8 NOT NULL DEFAULT 0,
|
|
"creator" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"created_at" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updater" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"updated_at" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"deleted_at" timestamp(6),
|
|
"provider_name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
"request_template" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
"system_prompt_template" text COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::text,
|
|
"status" int4 NOT NULL DEFAULT 1,
|
|
CONSTRAINT "prompts_provider_protocol_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
ALTER TABLE "public"."prompts_provider_protocol" OWNER TO "postgres";
|
|
|
|
CREATE INDEX "idx_provider_protocol_provider_status" ON "public"."prompts_provider_protocol" USING btree (
|
|
"provider_name", "status"
|
|
);
|
|
|
|
COMMENT ON TABLE "public"."prompts_provider_protocol" IS '模型协议映射配置表';
|
|
COMMENT ON COLUMN "public"."prompts_provider_protocol"."provider_name" IS '运营商名称';
|
|
COMMENT ON COLUMN "public"."prompts_provider_protocol"."request_template" IS '请求模板(含 {_system_} / {_user_} 占位符)';
|
|
COMMENT ON COLUMN "public"."prompts_provider_protocol"."system_prompt_template" IS '系统提示词模板(含 %s 输出结构占位符)';
|
|
COMMENT ON COLUMN "public"."prompts_provider_protocol"."status" IS '状态:1启用/0禁用';
|
|
|
|
|
|
-- 3. 提示词任务记录表
|
|
CREATE TABLE "public"."prompts_compose_task" (
|
|
"id" int8 NOT NULL,
|
|
"tenant_id" int8 NOT NULL DEFAULT 0,
|
|
"creator" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"created_at" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updater" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"updated_at" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"deleted_at" timestamp(6),
|
|
"task_id" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
|
"model_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
"skill_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
"build_type" int4 NOT NULL DEFAULT 0,
|
|
"callback_url" varchar(512) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
"gateway_state" int4 NOT NULL DEFAULT 0,
|
|
"request_payload" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
"result_json" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
"status" varchar(32) COLLATE "pg_catalog"."default" NOT NULL DEFAULT 'pending'::character varying,
|
|
"error_message" text COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::text,
|
|
"oss_file" varchar(1024) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
"file_type" varchar(64) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
|
|
CONSTRAINT "prompts_compose_task_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
ALTER TABLE "public"."prompts_compose_task" OWNER TO "postgres";
|
|
|
|
CREATE INDEX "idx_prompts_compose_task_creator_created" ON "public"."prompts_compose_task" USING btree (
|
|
"creator", "created_at" DESC
|
|
);
|
|
|
|
CREATE INDEX "idx_prompts_compose_task_deleted_at" ON "public"."prompts_compose_task" USING btree ("deleted_at");
|
|
|
|
CREATE INDEX "idx_prompts_compose_task_status" ON "public"."prompts_compose_task" USING btree ("status") WHERE deleted_at IS NULL;
|
|
|
|
CREATE UNIQUE INDEX "uk_prompts_compose_task_task_id" ON "public"."prompts_compose_task" USING btree ("task_id");
|
|
|
|
COMMENT ON TABLE "public"."prompts_compose_task" IS '提示词任务记录表';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."task_id" IS 'model-gateway 任务ID';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."model_name" IS '业务模型名称';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."skill_name" IS '技能名称';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."build_type" IS '构建类型:0默认/1提示词构建/2节点构建';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."callback_url" IS '回调地址';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."gateway_state" IS 'model-gateway 状态:0排队/1执行/2成功/3失败/4已下载';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."request_payload" IS '发给 model-gateway 的请求内容';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."result_json" IS '回调返回结果json';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."status" IS '业务状态:pending/success/failed';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."error_message" IS '业务错误信息';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."oss_file" IS '网关返回的结果文件地址';
|
|
COMMENT ON COLUMN "public"."prompts_compose_task"."file_type" IS '结果文件类型'; |