zsjz-ai-schema-20261028.sql 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740
  1. -- PostgreSQL database schema dump (structure only, no data)
  2. -- Database: zsjz-ai
  3. -- Server: PostgreSQL 18.4 (Ubuntu 18.4-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0, 64-bit
  4. -- Generated: 2026-10-28 16:18:36
  5. -- Note: generated from PostgreSQL catalogs because pg_dump is not installed on this host.
  6. SET client_encoding = 'UTF8';
  7. SET standard_conforming_strings = on;
  8. SET search_path = public, pg_catalog;
  9. -- Extensions
  10. CREATE EXTENSION IF NOT EXISTS "vector";
  11. -- Tables
  12. CREATE TABLE public."agent" (
  13. "row_id" bigint NOT NULL,
  14. "owner_id" bigint,
  15. "agent_id" character varying(8),
  16. "workspace_path" character varying(128),
  17. "name" character varying(50),
  18. "description" text,
  19. "sys_prompt" text,
  20. "model" character varying(32),
  21. "max_iters" integer,
  22. "tools_allow_json" text,
  23. "tools_deny_json" text,
  24. "skills_allow_json" text,
  25. "skills_deny_json" text,
  26. "run_as" character varying(30),
  27. "fork_of" character varying(30),
  28. "skill_repositories_json" text,
  29. "sandbox_mode" character varying(100),
  30. "sandbox_scope" character varying(100),
  31. "user_id" bigint,
  32. "is_builtin" smallint DEFAULT 0 NOT NULL,
  33. "tool_packs_json" text,
  34. "knowledge_base_id" bigint
  35. );
  36. CREATE TABLE public."agent_chat_session" (
  37. "id" bigint NOT NULL,
  38. "agent_id" bigint,
  39. "case_id" bigint,
  40. "title" character varying(100),
  41. "context" jsonb DEFAULT '{}'::jsonb,
  42. "message_count" integer DEFAULT 0,
  43. "total_tokens" bigint DEFAULT 0,
  44. "last_message_at" timestamp(6) without time zone,
  45. "pinned" boolean DEFAULT false,
  46. "attachments" jsonb,
  47. "create_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP,
  48. "update_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP,
  49. "model_id" bigint,
  50. "user_id" bigint
  51. );
  52. CREATE TABLE public."agent_insight_message" (
  53. "id" bigint NOT NULL,
  54. "session_id" bigint NOT NULL,
  55. "case_id" bigint NOT NULL,
  56. "seq" bigint NOT NULL,
  57. "role" character varying(16) NOT NULL,
  58. "content" text,
  59. "content_type" character varying(16) DEFAULT 'text'::character varying NOT NULL,
  60. "message_type" character varying(16) DEFAULT 'chat'::character varying NOT NULL,
  61. "metadata" jsonb,
  62. "tool_events" jsonb,
  63. "output_json" jsonb,
  64. "token_count" integer DEFAULT 0 NOT NULL,
  65. "reply_to_message_id" bigint,
  66. "starred" boolean DEFAULT false NOT NULL,
  67. "status" character varying(16) DEFAULT 'DONE'::character varying NOT NULL,
  68. "create_at" timestamp without time zone DEFAULT now() NOT NULL
  69. );
  70. CREATE TABLE public."agent_insight_session" (
  71. "id" bigint NOT NULL,
  72. "case_id" bigint NOT NULL,
  73. "biz_type" character varying(32) DEFAULT 'CALL_CONTINUOUS'::character varying NOT NULL,
  74. "scope" character varying(16) DEFAULT 'BATCH'::character varying NOT NULL,
  75. "agent_row_id" bigint,
  76. "model_id" bigint NOT NULL,
  77. "title" character varying(128),
  78. "context" jsonb NOT NULL,
  79. "context_hash" character varying(64) NOT NULL,
  80. "sys_prompt" text NOT NULL,
  81. "message_count" integer DEFAULT 0 NOT NULL,
  82. "last_seq" bigint DEFAULT 0 NOT NULL,
  83. "total_tokens" bigint DEFAULT 0 NOT NULL,
  84. "last_message_at" timestamp without time zone,
  85. "pinned" boolean DEFAULT false NOT NULL,
  86. "status" character varying(16) DEFAULT 'ACTIVE'::character varying NOT NULL,
  87. "create_at" timestamp without time zone DEFAULT now() NOT NULL,
  88. "update_at" timestamp without time zone DEFAULT now() NOT NULL
  89. );
  90. CREATE TABLE public."agent_message" (
  91. "id" bigint NOT NULL,
  92. "session_id" bigint,
  93. "role" character varying(20),
  94. "content" text,
  95. "content_type" character varying(20) DEFAULT 'text'::character varying,
  96. "token_count" integer DEFAULT 0,
  97. "metadata" jsonb DEFAULT '{}'::jsonb,
  98. "tool_events" jsonb DEFAULT '[]'::jsonb,
  99. "parent_id" bigint,
  100. "create_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP,
  101. "message_type" character varying(32) DEFAULT 'text'::character varying,
  102. "reply_to_message_id" bigint,
  103. "starred" boolean DEFAULT false
  104. );
  105. CREATE TABLE public."agent_model" (
  106. "id" bigint NOT NULL,
  107. "model_id" character varying(128),
  108. "name" character varying(128),
  109. "type" character varying(20) DEFAULT 'llm'::character varying,
  110. "api_key" character varying(128),
  111. "base_url" character varying(256),
  112. "config" jsonb DEFAULT '{}'::jsonb,
  113. "headers_json" jsonb DEFAULT '{}'::jsonb,
  114. "extra_json" jsonb DEFAULT '{}'::jsonb,
  115. "status" character varying(10) DEFAULT 'active'::character varying,
  116. "create_by" bigint,
  117. "create_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP,
  118. "update_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP,
  119. "default_model" boolean DEFAULT false,
  120. "provider" character varying(64)
  121. );
  122. CREATE TABLE public."agent_model_provider" (
  123. "id" bigint NOT NULL,
  124. "name" character varying(64),
  125. "base_url" character varying(256),
  126. "config" jsonb DEFAULT '{}'::jsonb,
  127. "status" character varying(20) DEFAULT 'active'::character varying,
  128. "models_endpoint" character varying(512),
  129. "headers_json" jsonb DEFAULT '{}'::jsonb,
  130. "extra_json" jsonb DEFAULT '{}'::jsonb,
  131. "type" character varying(10)
  132. );
  133. CREATE TABLE public."agent_tool" (
  134. "id" bigint NOT NULL,
  135. "tool_name" character varying(128) NOT NULL,
  136. "tool_class" character varying(255),
  137. "tool_method" character varying(128),
  138. "group_code" character varying(32),
  139. "group_label" character varying(64),
  140. "group_description" text,
  141. "group_sort" integer,
  142. "default_active" boolean,
  143. "description" text,
  144. "parameters" jsonb,
  145. "read_only" boolean,
  146. "status" character varying(16),
  147. "create_at" timestamp without time zone,
  148. "update_at" timestamp without time zone
  149. );
  150. CREATE TABLE public."agent_tool_pack" (
  151. "id" bigint NOT NULL,
  152. "user_id" bigint NOT NULL,
  153. "name" character varying(100) NOT NULL,
  154. "description" character varying(500),
  155. "tool_names" text DEFAULT '[]'::text NOT NULL,
  156. "create_at" timestamp without time zone DEFAULT now(),
  157. "update_at" timestamp without time zone DEFAULT now(),
  158. "is_builtin" smallint DEFAULT 0 NOT NULL
  159. );
  160. CREATE TABLE public."ai_clean_batch" (
  161. "id" bigint NOT NULL,
  162. "case_id" bigint NOT NULL,
  163. "batch_id" bigint NOT NULL,
  164. "stage" character varying(20) NOT NULL,
  165. "file_count" integer DEFAULT 0,
  166. "sheet_total" integer DEFAULT 0,
  167. "matched_count" integer DEFAULT 0,
  168. "ai_judged_count" integer DEFAULT 0,
  169. "existing_hit_count" integer DEFAULT 0,
  170. "ai_load_count" integer DEFAULT 0,
  171. "need_review_count" integer DEFAULT 0,
  172. "failed_count" integer DEFAULT 0,
  173. "need_review_detail" text,
  174. "last_error" character varying(1000),
  175. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  176. "update_time" timestamp without time zone,
  177. "loaded_rows" bigint DEFAULT 0,
  178. "rejected_rows" bigint DEFAULT 0,
  179. "unprocessed_rows" bigint DEFAULT 0,
  180. "self_built_count" integer DEFAULT 0
  181. );
  182. CREATE TABLE public."ai_clean_field" (
  183. "id" bigint NOT NULL,
  184. "ai_template_id" bigint NOT NULL,
  185. "column_name" character varying(5) NOT NULL,
  186. "field_name_cn" character varying(200),
  187. "field_name_en" character varying(5),
  188. "field_type" character varying(50),
  189. "required" integer DEFAULT 0,
  190. "field_len" integer DEFAULT 0,
  191. "field_sort" integer DEFAULT 0,
  192. "direction_conf" text,
  193. "col_index" integer,
  194. "matched" integer DEFAULT 1,
  195. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP
  196. );
  197. CREATE TABLE public."ai_clean_job" (
  198. "id" bigint NOT NULL,
  199. "case_id" bigint NOT NULL,
  200. "file_id" bigint NOT NULL,
  201. "sheet_id" bigint NOT NULL,
  202. "block_no" integer DEFAULT 0,
  203. "ver" integer DEFAULT 1,
  204. "batch_id" bigint,
  205. "file_name" character varying(500),
  206. "sheet_name" character varying(200),
  207. "status" character varying(30) NOT NULL,
  208. "exit_code" character varying(10),
  209. "matched_by" character varying(20),
  210. "match_tier" character varying(20),
  211. "ref_template_id" integer,
  212. "ai_template_id" bigint,
  213. "header_md5" character varying(64),
  214. "header_row" integer,
  215. "confidence" numeric(6,4),
  216. "detail" text,
  217. "draft" text,
  218. "model_name" character varying(200),
  219. "token_in" integer,
  220. "token_out" integer,
  221. "llm_calls" integer DEFAULT 0,
  222. "cost_ms" bigint,
  223. "row_total" integer,
  224. "row_loaded" integer,
  225. "fail_reason" character varying(1000),
  226. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  227. "update_time" timestamp without time zone,
  228. "row_rejected" integer,
  229. "row_warned" integer,
  230. "row_unprocessed" integer
  231. );
  232. CREATE TABLE public."ai_clean_rule" (
  233. "id" bigint NOT NULL,
  234. "ai_template_id" bigint,
  235. "col_index" integer NOT NULL,
  236. "field_name_en" character varying(200),
  237. "hints" text,
  238. "ref_template_id" integer,
  239. "ver" integer DEFAULT 1,
  240. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP
  241. );
  242. CREATE TABLE public."ai_clean_synonym" (
  243. "id" bigint NOT NULL,
  244. "std_word" character varying(100) NOT NULL,
  245. "alias_word" character varying(100) NOT NULL,
  246. "remark" character varying(200),
  247. "status" smallint DEFAULT 1,
  248. "create_by" bigint,
  249. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  250. "update_time" timestamp without time zone
  251. );
  252. CREATE TABLE public."ai_clean_template" (
  253. "id" bigint NOT NULL,
  254. "table_name_cn" character varying(200) NOT NULL,
  255. "table_name_en" character varying(200) NOT NULL,
  256. "headers" character varying(4000),
  257. "header_md5" character varying(64) NOT NULL,
  258. "header_line_no" integer,
  259. "func_regex" text,
  260. "block_no" integer,
  261. "struct_ops" text,
  262. "needs_struct" integer DEFAULT 0,
  263. "category" character varying(50),
  264. "category_l2" character varying(50),
  265. "main_ref_template_id" integer,
  266. "match_tier" character varying(20),
  267. "status" character varying(20) DEFAULT 'DRAFT'::character varying,
  268. "ver" integer DEFAULT 1,
  269. "confidence" numeric(6,4),
  270. "case_id_src" bigint,
  271. "create_by" bigint,
  272. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  273. "update_time" timestamp without time zone
  274. );
  275. CREATE TABLE public."bank_card_issuer_info" (
  276. "bank_bin" character varying(8) NOT NULL,
  277. "bank_name" character varying(126),
  278. "card_type" character varying(10),
  279. "flag" integer
  280. );
  281. CREATE TABLE public."case_info" (
  282. "id" bigint NOT NULL,
  283. "name" character varying(30),
  284. "pwd" character varying(16),
  285. "type" character varying(20),
  286. "remark" character varying(200),
  287. "db" character varying(64),
  288. "db_path" character varying(200),
  289. "create_time" timestamp(0) without time zone,
  290. "init" integer DEFAULT 0,
  291. "owner_id" bigint
  292. );
  293. CREATE TABLE public."chat_attachment" (
  294. "id" bigint NOT NULL,
  295. "user_id" bigint NOT NULL,
  296. "case_id" bigint NOT NULL,
  297. "session_id" bigint NOT NULL,
  298. "file_name" character varying(500) NOT NULL,
  299. "file_path" character varying(1000) NOT NULL,
  300. "sidecar_path" character varying(1000),
  301. "mime" character varying(100),
  302. "kind" character varying(20) NOT NULL,
  303. "size_bytes" bigint DEFAULT 0,
  304. "char_count" integer DEFAULT 0,
  305. "row_count" integer DEFAULT 0,
  306. "truncated" integer DEFAULT 0,
  307. "inline_text" text,
  308. "index_blocks" integer DEFAULT 0,
  309. "index_status" character varying(20),
  310. "status" character varying(20) NOT NULL,
  311. "link_message_id" bigint,
  312. "fail_reason" character varying(1000),
  313. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  314. "update_time" timestamp without time zone
  315. );
  316. CREATE TABLE public."file_ai_profile" (
  317. "id" bigint NOT NULL,
  318. "caseid" bigint,
  319. "fileid" bigint,
  320. "batchid" bigint,
  321. "filename" character varying,
  322. "filetype" character varying,
  323. "mimetype" character varying,
  324. "category" character varying,
  325. "summary" character varying,
  326. "keywords" character varying,
  327. "sampletext" character varying,
  328. "samplelength" integer,
  329. "parsestatus" character varying,
  330. "failreason" character varying,
  331. "modelname" character varying,
  332. "costmillis" bigint,
  333. "createdatetime" timestamp without time zone DEFAULT CURRENT_TIMESTAMP
  334. );
  335. CREATE TABLE public."gateway_node" (
  336. "id" character varying(64) NOT NULL,
  337. "service_id" character varying(64) NOT NULL,
  338. "name" character varying(128) NOT NULL,
  339. "base_url" character varying(255) NOT NULL,
  340. "enabled" smallint DEFAULT 1 NOT NULL,
  341. "remark" character varying(512),
  342. "create_time" timestamp without time zone DEFAULT now() NOT NULL,
  343. "update_time" timestamp without time zone DEFAULT now() NOT NULL
  344. );
  345. CREATE TABLE public."gateway_service" (
  346. "id" character varying(64) NOT NULL,
  347. "name" character varying(128) NOT NULL,
  348. "path_prefix" character varying(128) NOT NULL,
  349. "login_path" character varying(128),
  350. "health_path" character varying(255) NOT NULL,
  351. "default_node_id" character varying(64),
  352. "enabled" smallint DEFAULT 1 NOT NULL,
  353. "create_time" timestamp without time zone DEFAULT now() NOT NULL,
  354. "update_time" timestamp without time zone DEFAULT now() NOT NULL
  355. );
  356. CREATE TABLE public."gateway_user_route" (
  357. "id" bigint NOT NULL,
  358. "service_id" character varying(64) NOT NULL,
  359. "user_id" bigint,
  360. "username" character varying(64),
  361. "node_id" character varying(64) NOT NULL,
  362. "create_time" timestamp without time zone DEFAULT now() NOT NULL,
  363. "update_time" timestamp without time zone DEFAULT now() NOT NULL
  364. );
  365. CREATE TABLE public."kb_vec_1_bge_m3_d1024" (
  366. "doc_id" character varying(128) NOT NULL,
  367. "content" text,
  368. "payload" jsonb,
  369. "embedding" vector(1024)
  370. );
  371. CREATE TABLE public."kb_vec_1_d1024" (
  372. "doc_id" character varying(128) NOT NULL,
  373. "content" text,
  374. "payload" jsonb,
  375. "embedding" vector(1024)
  376. );
  377. CREATE TABLE public."knowledge_base" (
  378. "id" bigint NOT NULL,
  379. "user_id" bigint NOT NULL,
  380. "is_builtin" smallint DEFAULT 0 NOT NULL,
  381. "name" character varying(100) NOT NULL,
  382. "description" character varying(500),
  383. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  384. "update_time" timestamp without time zone
  385. );
  386. CREATE TABLE public."knowledge_doc" (
  387. "id" bigint NOT NULL,
  388. "kb_id" bigint NOT NULL,
  389. "user_id" bigint NOT NULL,
  390. "file_name" character varying(500) NOT NULL,
  391. "file_path" character varying(1000) NOT NULL,
  392. "sidecar_path" character varying(1000),
  393. "mime" character varying(100),
  394. "size_bytes" bigint DEFAULT 0,
  395. "char_count" integer DEFAULT 0,
  396. "chunk_count" integer DEFAULT 0,
  397. "index_status" character varying(20) DEFAULT 'PENDING'::character varying,
  398. "fail_reason" character varying(1000),
  399. "download_count" integer DEFAULT 0,
  400. "create_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
  401. "update_time" timestamp without time zone
  402. );
  403. CREATE TABLE public."knowledge_doc_download_log" (
  404. "id" bigint NOT NULL,
  405. "kb_id" bigint NOT NULL,
  406. "doc_id" bigint NOT NULL,
  407. "user_id" bigint NOT NULL,
  408. "file_name" character varying(500) NOT NULL,
  409. "download_time" timestamp without time zone DEFAULT CURRENT_TIMESTAMP
  410. );
  411. CREATE TABLE public."lunar" (
  412. "id" integer NOT NULL,
  413. "gl" character varying(20),
  414. "nl" character varying(20)
  415. );
  416. CREATE TABLE public."meta_raw_file" (
  417. "id" bigint NOT NULL,
  418. "file_name" character varying,
  419. "batch_id" bigint,
  420. "password" character varying(32),
  421. "charset" character varying(16),
  422. "delimiter" character varying(10),
  423. "file_type" character varying(8),
  424. "file_path" character varying,
  425. "file_size" bigint DEFAULT 0,
  426. "total_rows" integer DEFAULT 0,
  427. "success_rows" integer DEFAULT 0,
  428. "fail_rows" integer DEFAULT 0,
  429. "file_status" character varying(20),
  430. "md5" character varying(32),
  431. "created_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP,
  432. "total_sheets" integer,
  433. "workspace_id" bigint
  434. );
  435. CREATE TABLE public."meta_raw_sheet" (
  436. "table_name" character varying(100),
  437. "workspace_id" bigint,
  438. "sheet_name" character varying(100),
  439. "total_rows" bigint DEFAULT 0,
  440. "column_count" integer DEFAULT 0,
  441. "headers_json" jsonb,
  442. "ai_clean_status" character varying(20) DEFAULT 'PENDING'::character varying,
  443. "last_processed_row_id" bigint DEFAULT 0,
  444. "created_at" timestamp(6) without time zone DEFAULT now(),
  445. "updated_at" timestamp(6) without time zone DEFAULT now(),
  446. "id" bigint NOT NULL,
  447. "file_id" bigint,
  448. "template_id" bigint,
  449. "lineNo" integer,
  450. "header" text,
  451. "success_rows" integer,
  452. "fail_rows" integer,
  453. "sheet_status" character varying(20),
  454. "table_rule_list" jsonb,
  455. "table_name_en" character varying(20),
  456. "funcregx" text,
  457. "main_id" integer
  458. );
  459. CREATE TABLE public."phone_isp" (
  460. "paragraph" character varying(8) NOT NULL,
  461. "province" character varying(32),
  462. "city" character varying(32),
  463. "isp" character varying(8)
  464. );
  465. CREATE TABLE public."rag_index_status" (
  466. "workspace_id" bigint NOT NULL,
  467. "embedding_model_id" bigint,
  468. "embedding_model_name" character varying(128),
  469. "dimensions" integer NOT NULL,
  470. "vector_table" character varying(64) NOT NULL,
  471. "schema_fingerprint" character varying(64) NOT NULL,
  472. "table_count" integer DEFAULT 0 NOT NULL,
  473. "status" character varying(20) DEFAULT 'idle'::character varying NOT NULL,
  474. "last_error" text,
  475. "indexed_at" timestamp(6) without time zone,
  476. "update_at" timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
  477. );
  478. CREATE TABLE public."rag_tpl_bge_m3_d1024" (
  479. "doc_id" character varying(128) NOT NULL,
  480. "content" text,
  481. "payload" jsonb,
  482. "embedding" vector(1024)
  483. );
  484. CREATE TABLE public."rag_tpl_d1024" (
  485. "doc_id" character varying(128) NOT NULL,
  486. "content" text,
  487. "payload" jsonb,
  488. "embedding" vector(1024)
  489. );
  490. CREATE TABLE public."rag_ws78431654_d1024" (
  491. "doc_id" character varying(128) NOT NULL,
  492. "content" text,
  493. "payload" jsonb,
  494. "embedding" vector(1024)
  495. );
  496. CREATE TABLE public."sys_user" (
  497. "id" bigint NOT NULL,
  498. "username" character varying(64) NOT NULL,
  499. "pwd_hash" character varying(100) NOT NULL,
  500. "display_name" character varying(64),
  501. "is_admin" smallint DEFAULT 0 NOT NULL,
  502. "status" smallint DEFAULT 1 NOT NULL,
  503. "create_time" timestamp without time zone DEFAULT now() NOT NULL,
  504. "update_time" timestamp without time zone,
  505. "last_login_time" timestamp without time zone
  506. );
  507. CREATE TABLE public."system_info" (
  508. "machinecode" text NOT NULL,
  509. "client_no" text,
  510. "unit" text,
  511. "phone" text,
  512. "first_date_time" date,
  513. "active_date_time" date,
  514. "authdatetime" date,
  515. "overdatetime" date
  516. );
  517. CREATE TABLE public."table_field" (
  518. "id" bigint NOT NULL,
  519. "table_id" integer,
  520. "table_name_en" character varying(30),
  521. "field_name_cn" character varying(30),
  522. "field_name_en" character varying(30),
  523. "field_type" character varying(30),
  524. "required" integer DEFAULT 0,
  525. "field_len" integer DEFAULT 0,
  526. "matched" integer,
  527. "direction_conf" character varying(512),
  528. "field_sort" integer,
  529. "zf" integer DEFAULT 0
  530. );
  531. CREATE TABLE public."table_info" (
  532. "id" integer NOT NULL,
  533. "main_id" integer,
  534. "table_name_cn" character varying(30),
  535. "table_name_en" character varying(30),
  536. "func_regex" character varying(256),
  537. "line_no" integer,
  538. "headers" text,
  539. "classify" character varying(30),
  540. "has_inner" integer DEFAULT 0,
  541. "has_table" integer,
  542. "create_time" timestamp(0) without time zone
  543. );
  544. -- Constraints
  545. ALTER TABLE ONLY public."agent" ADD CONSTRAINT "agent_pkey" PRIMARY KEY (row_id);
  546. ALTER TABLE ONLY public."agent_chat_session" ADD CONSTRAINT "ai_chat_session_pkey" PRIMARY KEY (id);
  547. ALTER TABLE ONLY public."agent_insight_message" ADD CONSTRAINT "agent_insight_message_pkey" PRIMARY KEY (id);
  548. ALTER TABLE ONLY public."agent_insight_message" ADD CONSTRAINT "uk_aim_session_seq" UNIQUE (session_id, seq);
  549. ALTER TABLE ONLY public."agent_insight_session" ADD CONSTRAINT "agent_insight_session_pkey" PRIMARY KEY (id);
  550. ALTER TABLE ONLY public."agent_message" ADD CONSTRAINT "ai_message_pkey" PRIMARY KEY (id);
  551. ALTER TABLE ONLY public."agent_model" ADD CONSTRAINT "ai_model_pkey" PRIMARY KEY (id);
  552. ALTER TABLE ONLY public."agent_model_provider" ADD CONSTRAINT "ai_model_provider_pkey" PRIMARY KEY (id);
  553. ALTER TABLE ONLY public."agent_tool" ADD CONSTRAINT "agent_tool_pkey" PRIMARY KEY (id);
  554. ALTER TABLE ONLY public."agent_tool_pack" ADD CONSTRAINT "agent_tool_pack_pkey" PRIMARY KEY (id);
  555. ALTER TABLE ONLY public."ai_clean_batch" ADD CONSTRAINT "ai_clean_batch_pkey" PRIMARY KEY (id);
  556. ALTER TABLE ONLY public."ai_clean_field" ADD CONSTRAINT "ai_clean_field_pkey" PRIMARY KEY (id);
  557. ALTER TABLE ONLY public."ai_clean_job" ADD CONSTRAINT "ai_clean_job_pkey" PRIMARY KEY (id);
  558. ALTER TABLE ONLY public."ai_clean_rule" ADD CONSTRAINT "ai_clean_rule_pkey" PRIMARY KEY (id);
  559. ALTER TABLE ONLY public."ai_clean_synonym" ADD CONSTRAINT "ai_clean_synonym_pkey" PRIMARY KEY (id);
  560. ALTER TABLE ONLY public."ai_clean_template" ADD CONSTRAINT "ai_clean_template_pkey" PRIMARY KEY (id);
  561. ALTER TABLE ONLY public."bank_card_issuer_info" ADD CONSTRAINT "bank_card_issuer_info_pkey" PRIMARY KEY (bank_bin);
  562. ALTER TABLE ONLY public."case_info" ADD CONSTRAINT "case_info_pkey" PRIMARY KEY (id);
  563. ALTER TABLE ONLY public."chat_attachment" ADD CONSTRAINT "chat_attachment_pkey" PRIMARY KEY (id);
  564. ALTER TABLE ONLY public."file_ai_profile" ADD CONSTRAINT "file_ai_profile_pkey" PRIMARY KEY (id);
  565. ALTER TABLE ONLY public."gateway_node" ADD CONSTRAINT "gateway_node_pkey" PRIMARY KEY (id);
  566. ALTER TABLE ONLY public."gateway_service" ADD CONSTRAINT "gateway_service_pkey" PRIMARY KEY (id);
  567. ALTER TABLE ONLY public."gateway_user_route" ADD CONSTRAINT "gateway_user_route_pkey" PRIMARY KEY (id);
  568. ALTER TABLE ONLY public."kb_vec_1_bge_m3_d1024" ADD CONSTRAINT "kb_vec_1_bge_m3_d1024_pkey" PRIMARY KEY (doc_id);
  569. ALTER TABLE ONLY public."kb_vec_1_d1024" ADD CONSTRAINT "kb_vec_1_d1024_pkey" PRIMARY KEY (doc_id);
  570. ALTER TABLE ONLY public."knowledge_base" ADD CONSTRAINT "knowledge_base_pkey" PRIMARY KEY (id);
  571. ALTER TABLE ONLY public."knowledge_doc" ADD CONSTRAINT "knowledge_doc_pkey" PRIMARY KEY (id);
  572. ALTER TABLE ONLY public."knowledge_doc_download_log" ADD CONSTRAINT "knowledge_doc_download_log_pkey" PRIMARY KEY (id);
  573. ALTER TABLE ONLY public."lunar" ADD CONSTRAINT "lunar_pkey" PRIMARY KEY (id);
  574. ALTER TABLE ONLY public."phone_isp" ADD CONSTRAINT "phone_isp_pkey" PRIMARY KEY (paragraph);
  575. ALTER TABLE ONLY public."rag_tpl_bge_m3_d1024" ADD CONSTRAINT "rag_tpl_bge_m3_d1024_pkey" PRIMARY KEY (doc_id);
  576. ALTER TABLE ONLY public."rag_tpl_d1024" ADD CONSTRAINT "rag_tpl_d1024_pkey" PRIMARY KEY (doc_id);
  577. ALTER TABLE ONLY public."rag_ws78431654_d1024" ADD CONSTRAINT "rag_ws78431654_d1024_pkey" PRIMARY KEY (doc_id);
  578. ALTER TABLE ONLY public."sys_user" ADD CONSTRAINT "sys_user_pkey" PRIMARY KEY (id);
  579. ALTER TABLE ONLY public."system_info" ADD CONSTRAINT "system_info_pkey" PRIMARY KEY (machinecode);
  580. ALTER TABLE ONLY public."table_field" ADD CONSTRAINT "table_field_pkey" PRIMARY KEY (id);
  581. ALTER TABLE ONLY public."table_info" ADD CONSTRAINT "table_info_pkey" PRIMARY KEY (id);
  582. ALTER TABLE ONLY public."agent_insight_message" ADD CONSTRAINT "fk_aim_session" FOREIGN KEY (session_id) REFERENCES agent_insight_session(id) ON DELETE CASCADE;
  583. ALTER TABLE ONLY public."gateway_node" ADD CONSTRAINT "fk_gateway_node_service" FOREIGN KEY (service_id) REFERENCES gateway_service(id) ON DELETE RESTRICT;
  584. ALTER TABLE ONLY public."gateway_user_route" ADD CONSTRAINT "ck_gateway_user_route_owner" CHECK (((user_id IS NOT NULL) OR (username IS NOT NULL)));
  585. ALTER TABLE ONLY public."gateway_user_route" ADD CONSTRAINT "fk_gateway_user_route_node" FOREIGN KEY (node_id) REFERENCES gateway_node(id) ON DELETE RESTRICT;
  586. ALTER TABLE ONLY public."gateway_user_route" ADD CONSTRAINT "fk_gateway_user_route_service" FOREIGN KEY (service_id) REFERENCES gateway_service(id) ON DELETE RESTRICT;
  587. -- Indexes (excluding constraint-backed indexes)
  588. CREATE INDEX idx_agent_user_id ON public.agent USING btree (user_id);
  589. CREATE INDEX idx_agent_chat_session_user_case ON public.agent_chat_session USING btree (user_id, case_id);
  590. CREATE INDEX idx_aim_output ON public.agent_insight_message USING btree (case_id, create_at DESC) WHERE (output_json IS NOT NULL);
  591. CREATE INDEX idx_ais_case_list ON public.agent_insight_session USING btree (case_id, biz_type, last_message_at DESC);
  592. CREATE INDEX idx_ais_ctx_hash ON public.agent_insight_session USING btree (case_id, context_hash);
  593. CREATE UNIQUE INDEX uk_agent_tool_name ON public.agent_tool USING btree (tool_name);
  594. CREATE INDEX idx_agent_tool_pack_user ON public.agent_tool_pack USING btree (user_id);
  595. CREATE UNIQUE INDEX uk_agent_tool_pack_user_name ON public.agent_tool_pack USING btree (user_id, name);
  596. CREATE INDEX idx_ai_clean_batch_stage ON public.ai_clean_batch USING btree (stage);
  597. CREATE UNIQUE INDEX uk_ai_clean_batch ON public.ai_clean_batch USING btree (case_id, batch_id);
  598. CREATE INDEX idx_ai_clean_field_tpl ON public.ai_clean_field USING btree (ai_template_id);
  599. CREATE INDEX idx_ai_clean_job_file ON public.ai_clean_job USING btree (file_id);
  600. CREATE INDEX idx_ai_clean_job_status ON public.ai_clean_job USING btree (status);
  601. CREATE UNIQUE INDEX uk_ai_clean_job ON public.ai_clean_job USING btree (case_id, file_id, sheet_id, block_no, ver);
  602. CREATE INDEX idx_ai_clean_rule_tpl ON public.ai_clean_rule USING btree (ai_template_id);
  603. CREATE UNIQUE INDEX uk_ai_clean_synonym ON public.ai_clean_synonym USING btree (std_word, alias_word);
  604. CREATE INDEX idx_ai_clean_tpl_category ON public.ai_clean_template USING btree (category);
  605. CREATE INDEX idx_ai_clean_tpl_status ON public.ai_clean_template USING btree (status);
  606. CREATE UNIQUE INDEX uk_ai_clean_tpl_md5 ON public.ai_clean_template USING btree (header_md5);
  607. CREATE INDEX idx_case_info_owner ON public.case_info USING btree (owner_id);
  608. CREATE INDEX idx_chat_att_session ON public.chat_attachment USING btree (session_id);
  609. CREATE INDEX idx_chat_att_status ON public.chat_attachment USING btree (status, link_message_id);
  610. CREATE UNIQUE INDEX uk_gateway_node_service_base_url ON public.gateway_node USING btree (service_id, base_url);
  611. CREATE UNIQUE INDEX uk_gateway_service_path_prefix ON public.gateway_service USING btree (path_prefix);
  612. CREATE INDEX idx_gateway_user_route_node ON public.gateway_user_route USING btree (node_id);
  613. CREATE UNIQUE INDEX uk_gateway_user_route_name ON public.gateway_user_route USING btree (service_id, lower((username)::text)) WHERE (username IS NOT NULL);
  614. CREATE UNIQUE INDEX uk_gateway_user_route_user ON public.gateway_user_route USING btree (service_id, user_id) WHERE (user_id IS NOT NULL);
  615. CREATE INDEX idx_kb_user ON public.knowledge_base USING btree (user_id);
  616. CREATE INDEX idx_kd_kb_user ON public.knowledge_doc USING btree (kb_id, user_id);
  617. CREATE INDEX idx_kdl_doc ON public.knowledge_doc_download_log USING btree (doc_id);
  618. CREATE INDEX idx_kdl_user ON public.knowledge_doc_download_log USING btree (user_id);
  619. CREATE UNIQUE INDEX uk_sys_user_username ON public.sys_user USING btree (lower((username)::text));
  620. -- Sequence ownership
  621. -- Comments
  622. COMMENT ON TABLE public."agent" IS 'Agent 定义表';
  623. COMMENT ON COLUMN public."agent"."row_id" IS '主键 ID(MyBatis-Plus 雪花算法生成)';
  624. COMMENT ON COLUMN public."agent"."owner_id" IS '所属用户 ID(软外键关联 UserEntity)';
  625. COMMENT ON COLUMN public."agent"."agent_id" IS 'Agent 唯一标识';
  626. COMMENT ON COLUMN public."agent"."workspace_path" IS '用户提供的 Agent 工作区路径(可为空)';
  627. COMMENT ON COLUMN public."agent"."name" IS 'Agent 名称';
  628. COMMENT ON COLUMN public."agent"."description" IS 'Agent 描述信息';
  629. COMMENT ON COLUMN public."agent"."sys_prompt" IS '系统提示词(System Prompt)';
  630. COMMENT ON COLUMN public."agent"."model" IS '模型名称';
  631. COMMENT ON COLUMN public."agent"."max_iters" IS '最大迭代次数';
  632. COMMENT ON COLUMN public."agent"."tools_allow_json" IS '允许使用的工具列表(JSON 数组字符串)';
  633. COMMENT ON COLUMN public."agent"."tools_deny_json" IS '禁止使用的工具列表(JSON 数组字符串)';
  634. COMMENT ON COLUMN public."agent"."skills_allow_json" IS '允许使用的技能列表(JSON 数组字符串)';
  635. COMMENT ON COLUMN public."agent"."skills_deny_json" IS '禁止使用的技能列表(JSON 数组字符串)';
  636. COMMENT ON COLUMN public."agent"."run_as" IS '运行身份';
  637. COMMENT ON COLUMN public."agent"."fork_of" IS '派生来源 Agent ID';
  638. COMMENT ON COLUMN public."agent"."skill_repositories_json" IS '技能仓库配置列表(JSON 数组字符串)';
  639. COMMENT ON COLUMN public."agent"."sandbox_mode" IS '沙箱执行模式(local / sandbox)';
  640. COMMENT ON COLUMN public."agent"."sandbox_scope" IS '沙箱隔离范围(SESSION / USER / AGENT / GLOBAL)';
  641. COMMENT ON COLUMN public."agent"."tool_packs_json" IS '方案勾选的工具包 id 列表(JSON 字符串数组);与 tools_allow_json 并集构成业务工具白名单';
  642. COMMENT ON COLUMN public."agent_chat_session"."user_id" IS '会话归属用户ID(Sa-Token loginId)';
  643. COMMENT ON TABLE public."agent_insight_message" IS 'AI研判消息(独立存储;case_id 冗余自会话表,用于强制归属过滤)';
  644. COMMENT ON COLUMN public."agent_insight_message"."case_id" IS '冗余自会话表:保证消息查询永远可带 case_id 过滤';
  645. COMMENT ON COLUMN public."agent_insight_message"."seq" IS '会话内单调序号,分页排序列(勿用 create_at/id 排序)';
  646. COMMENT ON COLUMN public."agent_insight_message"."message_type" IS 'chat | first_round(首轮自动分析) | followup';
  647. COMMENT ON COLUMN public."agent_insight_message"."output_json" IS '```insight 围栏解析后的结构化产物,仅首轮 assistant 消息有值';
  648. COMMENT ON COLUMN public."agent_insight_message"."status" IS 'DONE | INTERRUPTED(用户中止/异常时保留已生成正文)';
  649. COMMENT ON TABLE public."agent_insight_session" IS 'AI研判会话(独立存储,不复用通用对话表)';
  650. COMMENT ON COLUMN public."agent_insight_session"."case_id" IS '案件ID:案件级硬隔离边界,所有查询强制携带';
  651. COMMENT ON COLUMN public."agent_insight_session"."biz_type" IS '研判场景:首期恒 CALL_CONTINUOUS,为将来同表扩场景预留';
  652. COMMENT ON COLUMN public."agent_insight_session"."scope" IS '分析范围:BATCH=整批结果集,PAIR=单条关系对(预留)';
  653. COMMENT ON COLUMN public."agent_insight_session"."context" IS '查询条件+结果快照,动态系统提示词的数据源';
  654. COMMENT ON COLUMN public."agent_insight_session"."context_hash" IS 'context 的 sha256,用于同条件复用与去重提示';
  655. COMMENT ON COLUMN public."agent_insight_session"."sys_prompt" IS '会话内实际使用的完整系统提示词,仅运维/追溯读,不通过接口下发';
  656. COMMENT ON COLUMN public."agent_insight_session"."last_seq" IS '会话内消息序号水位,消息 seq 由它原子分配';
  657. COMMENT ON COLUMN public."agent_insight_session"."status" IS 'ACTIVE | STREAMING(流式进行中,用于并发抢占)| ARCHIVED';
  658. COMMENT ON TABLE public."agent_message" IS '消息表';
  659. COMMENT ON COLUMN public."agent_message"."tool_events" IS '工具事件流(tool_call、tool_result、subagent_* 等),与 metadata 解耦存储';
  660. COMMENT ON COLUMN public."agent_message"."message_type" IS '消息类型:text-文本, multimodal_image-多模态图片';
  661. COMMENT ON COLUMN public."agent_message"."starred" IS '是否收藏';
  662. COMMENT ON TABLE public."agent_model" IS '模型配置i表
  663. ';
  664. COMMENT ON TABLE public."agent_tool_pack" IS '研判方案工具包:用户自定义工具组合,在「插件与技能 → 工具包」维护、新建方案时勾选';
  665. COMMENT ON COLUMN public."agent_tool_pack"."user_id" IS '创建者(sa-token 登录用户 ID),用户隔离依据';
  666. COMMENT ON COLUMN public."agent_tool_pack"."name" IS '工具包名(同用户内唯一)';
  667. COMMENT ON COLUMN public."agent_tool_pack"."tool_names" IS '工具名清单(JSON 字符串数组),取值 agent_tool.tool_name(业务工具)';
  668. COMMENT ON COLUMN public."agent_tool_pack"."is_builtin" IS '1=系统内置(全局可见、不可编辑/删除);0=用户自建';
  669. COMMENT ON COLUMN public."case_info"."id" IS '案件 ID(MyBatis-Plus 雪花算法生成)';
  670. COMMENT ON COLUMN public."case_info"."owner_id" IS '案件归属用户 ID(sys_user.id),仅创建者可见';
  671. COMMENT ON TABLE public."gateway_node" IS '网关后端节点(一台 ai-server)';
  672. COMMENT ON COLUMN public."gateway_node"."base_url" IS 'http(s)://host:port,不含路径';
  673. COMMENT ON TABLE public."gateway_service" IS '网关服务定义(路径前缀 -> 节点组)';
  674. COMMENT ON COLUMN public."gateway_service"."login_path" IS '相对路径前缀的登录路径,如 /auth/login;空 = 不做登录粘性';
  675. COMMENT ON COLUMN public."gateway_service"."default_node_id" IS '存量用户兜底节点 id;无绑定的已登录用户会被绑定到该节点';
  676. COMMENT ON TABLE public."gateway_user_route" IS '网关用户粘性路由(用户 -> 节点)';
  677. COMMENT ON COLUMN public."gateway_user_route"."id" IS '路由 ID(应用侧雪花算法生成)';
  678. COMMENT ON COLUMN public."gateway_user_route"."node_id" IS '绑定的目标节点;节点不可用时网关返回 503,不自动切换';
  679. COMMENT ON TABLE public."rag_index_status" IS 'RAG 表结构向量索引状态表';
  680. COMMENT ON COLUMN public."rag_index_status"."workspace_id" IS '工作空间ID';
  681. COMMENT ON COLUMN public."rag_index_status"."embedding_model_id" IS '构建索引使用的嵌入模型ID(model.id)';
  682. COMMENT ON COLUMN public."rag_index_status"."embedding_model_name" IS '嵌入模型名称(冗余展示用)';
  683. COMMENT ON COLUMN public."rag_index_status"."dimensions" IS '向量维度';
  684. COMMENT ON COLUMN public."rag_index_status"."vector_table" IS 'pgvector 向量表名(rag_ws{workspaceId}_d{dims})';
  685. COMMENT ON COLUMN public."rag_index_status"."schema_fingerprint" IS 'DuckDB 表结构指纹(SHA-256),相同则跳过重建';
  686. COMMENT ON COLUMN public."rag_index_status"."table_count" IS '已向量化的表数量';
  687. COMMENT ON COLUMN public."rag_index_status"."status" IS '状态:idle-未索引, indexing-索引中, success-成功, failed-失败';
  688. COMMENT ON COLUMN public."rag_index_status"."last_error" IS '最近一次失败原因';
  689. COMMENT ON COLUMN public."rag_index_status"."indexed_at" IS '最近一次成功索引时间';
  690. COMMENT ON COLUMN public."rag_index_status"."update_at" IS '更新时间';
  691. COMMENT ON TABLE public."sys_user" IS '系统用户表(仅认证,不做权限体系)';
  692. COMMENT ON COLUMN public."sys_user"."id" IS '用户 ID(MyBatis-Plus 雪花算法生成)';
  693. COMMENT ON COLUMN public."sys_user"."pwd_hash" IS 'BCrypt 密码哈希';
  694. COMMENT ON COLUMN public."sys_user"."is_admin" IS '1=管理员(可调用 /user/**) 0=普通用户';
  695. COMMENT ON COLUMN public."sys_user"."status" IS '1=启用 0=停用';