-- ============================================ -- 提示词服务 (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 '结果文件类型';