فهرست منبع

准备修改metadata.txt的生成需求,改了表的字段,增加了这个表的md文件,增加了一个让LLM判断是否查询数据库的提示词文件。

wangxq 1 هفته پیش
والد
کامیت
434784d3ec
2فایلهای تغییر یافته به همراه117 افزوده شده و 11 حذف شده
  1. 36 11
      agent/classifier.py
  2. 81 0
      docs/Metadata.txt生成过程的修改方案.md

+ 36 - 11
agent/classifier.py

@@ -66,8 +66,8 @@ class QuestionClassifier:
                 "高速线路", "公路线路"
             ],
             "系统查询指示词": [
-                "当前系统", "当前数据库", "当前数据",
-                "本系统", "系统", "数据库中", "数据中",
+                "当前系统", "当前数据库", "当前数据", "数据库"
+                "本系统", "系统", "数据库中", "数据中",
                 "现有数据", "已有数据", "存储的数据",
                 "平台数据", "我们的数据库", "这个系统"
             ]
@@ -80,7 +80,7 @@ class QuestionClassifier:
             "趋势", "占比", "百分比", "比例",
             "最大", "最小", "最高", "最低", "平均",
             "总计", "合计", "累计", "求和", "求平均",
-            "生成", "导出", "显示", "列出"
+            "生成", "导出", "显示", "列出", "共有"
         ]
         
         # 非业务实体词(包含则倾向CHAT)
@@ -94,7 +94,7 @@ class QuestionClassifier:
             "AI", "神经网络", "模型训练", "数据挖掘",
             
             # 身份询问
-            "你是谁", "你是什么", "你叫什么", "你的名字", 
+            "你是谁", "你是什么", "你叫什么", "你的名字", "你是什么AI",
             "什么模型", "大模型", "AI助手", "助手", "机器人",
             
             # 天气相关
@@ -104,20 +104,34 @@ class QuestionClassifier:
             # 其他生活常识
             "怎么做饭", "如何减肥", "健康", "医疗", "病症",
             "历史", "地理", "文学", "电影", "音乐", "体育",
-            "娱乐", "游戏", "小说", "新闻", "政治"
+            "娱乐", "游戏", "小说", "新闻", "政治", "战争",
+            "足球", "NBA", "篮球", "乒乓球", "冠军", "夺冠",
+            "高考",
+
+            # 旅游出行
+            "旅游","景点","门票","酒店","机票","航班","高铁","的士",
+            #情绪
+            "伤心","开心","无聊","生气","孤独","累了","烦恼","心情","难过","抑郁",
+            #商业
+            "股票","基金","理财","投资","经济","通货膨胀","上市",
+            #哲学
+            "人生意义","价值观","道德","信仰","宗教","爱情",
+            #地理
+            "全球","全国","亚洲","发展中","欧洲","美洲","东亚","东南亚","南美","非洲","大洋"
         ]
         
         # SQL关键词(技术层面的数据库操作)
+        # business_score +3
         self.sql_patterns = [
-            r"\b(select|from|where|group by|order by|having|join)\b",
-            r"\b(数据库|表名|字段名|SQL|sql)\b"
+            r"\b(select|from|where|group by|order by|having|join|update)\b",
+            r"\b(数据库|表名|表|字段名|SQL|sql|database|table)\b"
         ]
         
         # 聊天关键词(平台功能和帮助)
         self.chat_keywords = [
-            "你好", "谢谢", "再见", "怎么样", "如何", "为什么", "什么是",
+            "你好", "谢谢", "再见", "怎么样", "如何", "为什么", "什么是",
             "介绍", "解释", "说明", "帮助", "操作", "使用方法", "功能",
-            "教程", "指南", "手册"
+            "教程", "指南", "手册","讲解"
         ]
         
         # 追问关键词(用于检测追问型问题)
@@ -439,12 +453,23 @@ class QuestionClassifier:
    - 身份询问:你是谁、什么模型、AI助手等
    - 技术概念:人工智能、编程、算法等
    - 平台使用:功能介绍、操作帮助、使用教程等
+   - 旅游出行:旅游景点、酒店、机票、高铁、的士等
+   - 情绪:开心、伤心、无聊、生气、孤独、累了、烦恼、心情、难过、抑郁
+   - 商业:股票、基金、理财、投资、经济、通货膨胀、上市
+   - 哲学:人生意义、价值观、道德、信仰、宗教、爱情
+   - 政策:政策、法规、法律、条例、指南、手册、规章制度、实施细则
+   - 地理:全球、全国、亚洲、发展中、欧洲、美洲、东亚、东南亚、南美、非洲、大洋
+   - 体育:足球、NBA、篮球、乒乓球、冠军、夺冠
+   - 文学:小说、新闻、政治、战争、足球、NBA、篮球、乒乓球、冠军、夺冠
+   - 娱乐:游戏、小说、新闻、政治、战争、足球、NBA、篮球、乒乓球、冠军、夺冠、电影、电视剧、音乐、舞蹈、绘画、书法、摄影、雕塑、建筑、设计、
+   - 健康:健康、医疗、病症、健康、饮食、睡眠、心理、养生、减肥、美容、护肤
+   - 其他:高考、人生意义、价值观、道德、信仰、宗教、爱情、全球、全国、亚洲、发展中、欧洲、美洲、东亚、东南亚、南美、非洲、大洋
    - 例如:"荔枝几月份上市"、"今天天气如何"、"你是什么AI"、"怎么使用平台"
 
+
 **重要提示:**
 - 只有涉及高速公路服务区业务数据的问题才分类为DATABASE
-- 即使包含时间词汇(如"月份"、"时间"),也要看是否与我们的业务数据相关
-- 农产品上市时间、生活常识等都应分类为CHAT
+- 只要不是涉及高速公路服务区业务数据的问题都应分类为CHAT
 
 请基于问题与我们高速公路服务区业务数据的相关性来分类。
 

+ 81 - 0
docs/Metadata.txt生成过程的修改方案.md

@@ -0,0 +1,81 @@
+# 关于Metadata.txt产生的修改需求
+
+
+
+### 一、主要修改内容概述:
+
+- 修改metadata表结构;
+- 修改metadata.txt中的建表语句和插入语句;
+- 为metadata表创建一个md文件;
+- 新增一个 db_query_decision_prompt.txt 文件。
+
+### 二、修改详细需求如下:
+
+### 1.修改 metadata 表结构:
+
+- 把原来的字段 keywords 改为业务实体  biz_entities,类型不变
+- 把原来的字段 foceus_area 改为业务指标 biz_metrics ,类型不变。
+
+```sql
+CREATE TABLE IF NOT EXISTS metadata (
+    id SERIAL PRIMARY KEY,    -- 主键
+    topic_name VARCHAR(100) NOT NULL,  -- 业务主题名称
+    description TEXT,                  -- 业务主体说明
+    related_tables TEXT[],			  -- 相关表名
+    biz_entities TEXT[],               -- 主要业务实体名称
+    biz_metrics TEXT[],                -- 主要业务指标名称
+    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP    -- 插入时间
+);
+```
+
+### 2.在生成 metadata.txt 的时候,文件的内容也要相应的修改:
+
+- 创建表的sql语句(create table metadata)需要更新为上面的内容。
+- 生成的数据也要适应上面的要求,比如 biz_entities,它主要是表的维度(dim)字段,或者说非数值型字段。
+- biz_metrics 主要是指统计指标(metrics)的名称。
+- insert into metadata语句也要做相应的调整。
+
+### 3.为metadata.txt表生成一个md文件:
+
+格式请参考下面的内容,其实下面只要修改这个表的字段后的“示例”和"例如"就可以了,其他基本不用修改。
+
+### metadata(存储分析主题元数据)
+
+`metadata` 主要描述了当前数据库包含了哪些数据内容,哪些分析主题,哪些指标等等。
+
+字段列表:
+
+- `id` (serial) - 主键ID [主键, 非空]
+- `topic_name` (varchar(100)) - 业务主题名称 [非空]
+- `description` (text) - 业务主题说明
+- `related_tables` (text[]) - 涉及的数据表 [示例: `{bss_business_day_data, bss_service_area}`]
+- `biz_entities` (text[]) - 主要业务实体名称 [示例: `{营收, 服务区, 支付方式}`]
+- `biz_metrics` (text[]) - 主要业务指标名称 [示例: `{收入趋势, 支付方式分布, 服务区对比}`]
+- `created_at` (timestamp) - 插入时间 [默认值: `CURRENT_TIMESTAMP`]
+
+字段补充说明:
+
+- `id` 为主键,自增;
+- `related_tables` 用于建立主题与具体明细表的依赖关系;
+- `biz_entities` 表示主题关注的核心对象,例如服务区、车辆、公司;
+- `biz_metrics` 表示该主题关注的业务分析指标,例如营收对比、趋势变化、占比结构等。
+
+### 4.新增一个文本文件 db_query_decision_prompt.txt
+
+该文件存储的是用于LLM判断是查询数据库,还是自由对话的提示词,请再提交LLM生成metadata.txt的内容时,同步生成这个文件,它的格式如下:
+
+```
+=== 数据库业务范围 ===
+当前数据库存储的是高速公路服务区的相关数据,主要涉及服务区、管理公司等主题,包含以下业务数据:
+核心业务实体:
+- 服务区:服务区基础信息、位置、状态,如"鄱阳湖服务区"、"信丰西服务区"
+- 档口/商铺:档口信息、品类(餐饮/小吃/便利店)、品牌,如"驿美餐饮"、"加水机"
+- 营业数据:每日支付金额、订单数量,包含微信、支付宝、现金等支付方式
+关键业务指标:
+- 支付方式:微信支付(wx)、支付宝支付(zfb)、现金支付(rmb)、行吧支付(xs)、金豆支付(jd)
+- 营业数据:支付金额、订单数量、营业额、收入统计
+```
+
+### 三、补充说明
+
+ db_query_decision_prompt.txt 和 metadata.txt 其实只是表现形式不同,可以让大模型同时生成。