diff --git a/AI/Text2Sql/Sql/CreateTable.sql b/AI/Text2Sql/Sql/CreateTable.sql index 363a846d..80308afe 100644 --- a/AI/Text2Sql/Sql/CreateTable.sql +++ b/AI/Text2Sql/Sql/CreateTable.sql @@ -15,7 +15,6 @@ COMMENT ON COLUMN "public"."t_crawler_book"."stage_id" IS '学段ID,与t_crawl COMMENT ON COLUMN "public"."t_crawler_book"."id" IS '主键,无实际意义'; COMMENT ON TABLE "public"."t_crawler_book" IS '课程章节目录中的册概念,比如三年级上册,四年级下册'; -DROP TABLE IF EXISTS "public"."t_crawler_scheme"; CREATE TABLE "public"."t_crawler_scheme" ( "scheme_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "scheme_name" varchar(255) COLLATE "pg_catalog"."default", @@ -31,7 +30,6 @@ COMMENT ON COLUMN "public"."t_crawler_scheme"."stage_id" IS '学段ID'; COMMENT ON COLUMN "public"."t_crawler_scheme"."id" IS '主键'; COMMENT ON TABLE "public"."t_crawler_scheme" IS '教材版本,目前一般一个学科一个版本'; -DROP TABLE IF EXISTS "public"."t_crawler_stage"; CREATE TABLE "public"."t_crawler_stage" ( "stage_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "stage_name" varchar(255) COLLATE "pg_catalog"."default" @@ -41,7 +39,6 @@ COMMENT ON COLUMN "public"."t_crawler_stage"."stage_id" IS '学段ID'; COMMENT ON COLUMN "public"."t_crawler_stage"."stage_name" IS '学段名称'; COMMENT ON TABLE "public"."t_crawler_stage" IS '学段表'; -DROP TABLE IF EXISTS "public"."t_crawler_subject"; CREATE TABLE "public"."t_crawler_subject" ( "subject_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "subject_name" varchar(255) COLLATE "pg_catalog"."default", @@ -53,15 +50,6 @@ COMMENT ON COLUMN "public"."t_crawler_subject"."subject_name" IS '科目名称'; COMMENT ON COLUMN "public"."t_crawler_subject"."stage_id" IS '学段ID'; COMMENT ON TABLE "public"."t_crawler_subject" IS '学科表'; -ALTER TABLE "public"."t_crawler_book" ADD CONSTRAINT "t_crawler_booke_pkey" PRIMARY KEY ("id"); - -ALTER TABLE "public"."t_crawler_scheme" ADD CONSTRAINT "t_crawler_scheme_pkey" PRIMARY KEY ("id"); - - -ALTER TABLE "public"."t_crawler_subject" ADD CONSTRAINT "t_crawler_subject_pkey" PRIMARY KEY ("subject_id"); - - -DROP TABLE IF EXISTS "public"."t_crawler_lesson"; CREATE TABLE "public"."t_crawler_lesson" ( "lesson_id" varchar(255) COLLATE "pg_catalog"."default", "lesson_name" varchar(255) COLLATE "pg_catalog"."default", @@ -101,7 +89,6 @@ COMMENT ON COLUMN "public"."t_crawler_lesson"."publish_time" IS '发布时间'; COMMENT ON COLUMN "public"."t_crawler_lesson"."node_type" IS '节点类型 1:章节目录 2:知识点'; COMMENT ON TABLE "public"."t_crawler_lesson" IS '课程,resource资源表'; -DROP TABLE IF EXISTS "public"."t_crawler_lesson_school"; CREATE TABLE "public"."t_crawler_lesson_school" ( "lesson_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "original_school_name" varchar(255) COLLATE "pg_catalog"."default", @@ -125,33 +112,7 @@ COMMENT ON COLUMN "public"."t_crawler_lesson_school"."update_ts" IS '修改时 COMMENT ON COLUMN "public"."t_crawler_lesson_school"."school_running_type" IS '学校类型'; COMMENT ON TABLE "public"."t_crawler_lesson_school" IS '资源所属学校的原名和正式名对应表'; --- ---------------------------- --- Indexes structure for table t_crawler_lesson_school --- ---------------------------- -CREATE INDEX "idx_lesson_school_lesson" ON "public"."t_crawler_lesson_school" USING btree ( - "lesson_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "idx_lesson_school_match" ON "public"."t_crawler_lesson_school" USING btree ( - "match_type" "pg_catalog"."int4_ops" ASC NULLS LAST, - "school_running_type" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_school_gather_regionc_idx" ON "public"."t_crawler_lesson_school" USING btree ( - "gather_regionc" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_school_lesson_id_match_type_idx" ON "public"."t_crawler_lesson_school" USING btree ( - "lesson_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "match_type" "pg_catalog"."int4_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_school_match_type_idx" ON "public"."t_crawler_lesson_school" USING btree ( - "match_type" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table t_crawler_lesson_school --- ---------------------------- -ALTER TABLE "public"."t_crawler_lesson_school" ADD CONSTRAINT "t_crawler_school________pkey" PRIMARY KEY ("lesson_id"); -DROP TABLE IF EXISTS "public"."t_crawler_structure"; CREATE TABLE "public"."t_crawler_structure" ( "node_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "node_name" varchar(255) COLLATE "pg_catalog"."default", @@ -201,41 +162,10 @@ COMMENT ON COLUMN "public"."t_crawler_structure_knowledge"."stage_name" IS '学 COMMENT ON COLUMN "public"."t_crawler_structure_knowledge"."subject_id" IS '科目ID'; COMMENT ON COLUMN "public"."t_crawler_structure_knowledge"."subject_name" IS '科目名称'; - -CREATE INDEX "idx_lesson_publish_subject" ON "public"."t_crawler_lesson" USING btree ( - "publish_time" "pg_catalog"."date_ops" ASC NULLS LAST, - "subject_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_node_type_idx" ON "public"."t_crawler_lesson" USING btree ( - "node_type" "pg_catalog"."int2_ops" ASC NULLS LAST -); - - -ALTER TABLE "public"."t_crawler_lesson" ADD CONSTRAINT "t_crawler_resource_pkey" PRIMARY KEY ("id"); - - -CREATE INDEX "idx_lesson_school_lesson" ON "public"."t_crawler_lesson_school" USING btree ( - "lesson_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "idx_lesson_school_match" ON "public"."t_crawler_lesson_school" USING btree ( - "match_type" "pg_catalog"."int4_ops" ASC NULLS LAST, - "school_running_type" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_school_gather_regionc_idx" ON "public"."t_crawler_lesson_school" USING btree ( - "gather_regionc" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_school_lesson_id_match_type_idx" ON "public"."t_crawler_lesson_school" USING btree ( - "lesson_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, - "match_type" "pg_catalog"."int4_ops" ASC NULLS LAST -); -CREATE INDEX "t_crawler_lesson_school_match_type_idx" ON "public"."t_crawler_lesson_school" USING btree ( - "match_type" "pg_catalog"."int4_ops" ASC NULLS LAST -); - - -ALTER TABLE "public"."t_crawler_lesson_school" ADD CONSTRAINT "t_crawler_school________pkey" PRIMARY KEY ("lesson_id"); - - -ALTER TABLE "public"."t_crawler_structure" ADD CONSTRAINT "t_crawler_structure_pkey" PRIMARY KEY ("id"); - -ALTER TABLE "public"."t_crawler_structure_knowledge" ADD CONSTRAINT "t_crawler_structure_knowledge_pkey" PRIMARY KEY ("id"); +特别注意: +1、如果用户需要检索学段,比如小学,初中,需要先到 + select stage_id from t_crawler_stage where stage_name='小学' + 用得到stage_id再与其它表进行关联查询,不要直接使用学段名称进行查询。 +2、如果用户需要检索科目,比如语文,数学,需要先到 + select subject_id from t_crawler_subject where subject_name='语文' + 用得到subject_id再与其它表进行关联查询,不要直接使用科目名称进行查询。 \ No newline at end of file diff --git a/AI/Text2Sql/Start.py b/AI/Text2Sql/Start.py index 21dbf9d9..68cc19ff 100644 --- a/AI/Text2Sql/Start.py +++ b/AI/Text2Sql/Start.py @@ -18,8 +18,17 @@ if __name__ == "__main__": ) # 自然语言提问 - #question = "查询小学语文有哪些册,返回册信息的所有相关属性。" - question = "查询每个区每个校都上传了多少课程数量,需要返回行政区名称,学校名称,上传课程数量等属性.先按行政区划排序,再按课程数量由高到低排序,只要行政区划是二道区的" + question = ''' + 查询每个区每个校都上传了多少课程数量,需要返回行政区名称,学校名称,上传课程数量等属性. + 先按行政区划排序,再按课程数量由高到低排序''' + # ,只要行政区划是二道区的 + + # question = ''' + # 查询小学语文每个章节下资源的数量,除了章节名称和资源数量外, + # 还需要返回所属册的名称, + # 按册进行排序,第二级排序使用章节号, + # 输出顺序为:册名称,章节名称,资源数量,字段名称也按上面的中文来描述''' + # 开始查询 print("开始查询...") # 获取完整 SQL