智能图表服务
文档生成服务分成2个主要步骤,一个是SQL生成,而是图表生成
整体架构
体系结构
工作流程
调用参数校验
- 判断是否直接触发规则,如果触发则直接用正则提取信息,自动填写接口参数
- 如未触发,临时缓存或永久缓存,自动生成参数(暂未实现,该功能配置提供给助手模块进行调用)
- 大模型直接生成参数,进行参数校验和补充或丢弃
数据查询生成
- 参数分为2类,一类为数据库关键拼接,二类为用户问题转化为数据库查询问题。
- 优先触发第一类,如有完整的时间、地点、报警类型,则拼接sql。
- 如没有根据nlp2sql进行sql生成。
查询结果校验
- 如果满足2维数据则生成指定图表,如果为二维空数据则生成空图表
- 如果非2维数据则通过表格方式直接展示。(后期可考虑分页)
- 如果异常、则报数查询异常
生成图表
- 组装数据为Echarts格式数据,或tabel表格,以及文字提示。
NLP2SQL提示词
sqlcoder
_DEFAULT_TEMPLATE = """### Instructions:
Your task is convert a question into a SQL query, given a {dialect} database schema.
Adhere to these rules:
- **Deliberately go through the question and database schema word by word** to appropriately answer the question
- **Use Table Aliases** to prevent ambiguity. For example, `SELECT table1.col1, table2.col1 FROM table1 JOIN table2 ON table1.id = table2.id`.
- When creating a ratio, always cast the numerator as float
### Input:
Generate a SQL query that answers the questioq `{input}`.
This query will run on a database whose schema is represented in this string:
{schema_info}
### Response:
Based on your instructions, here is the SQL query I have generated to answer the question `{input}`:
```sql
常用
_DEFAULT_TEMPLATE = """
你是一个 SQL 专家,给你一个用户的问题,你会生成一条对应的 {dialect} 语法的 SQL 语句。
如果用户没有在问题中指定 sql 返回多少条数据,那么你生成的 sql 最多返回 {top_k} 条数据。
你应该尽可能少地使用表。
已知表结构信息如下:
{table_info}
注意:
1. 只能使用表结构信息中提供的表来生成 sql,如果无法根据提供的表结构中生成 sql ,请说:“提供的表结构信息不足以生成 sql 查询。” 禁止随意捏造信息。
2. 不要查询不存在的列,注意哪一列位于哪张表中。
3. 使用 json 格式回答,确保你的回答是必须是正确的 json 格式,并且能被 python 语言的 `json.loads` 库解析, 格式如下:
{response}
"""
RESPONSE_FORMAT_SIMPLE = {
"thoughts": "对用户说的想法摘要",
"sql": "生成的将被执行的 SQL",
}
下一步计划(商业BI)
技术规律
1.Text2Sql(已实践) 无法解决KnowHow问题,模型不稳定。需要加sql改写、纠正等模块。 主要问题在解决Text2Sql如何解决业务知识,以及某些问题光用SQL无法完成。
2.Text2Graph
3.代码编写类(有开源参考) https://github.com/zwq2018/Data-Copilot 九章云极TableAgent
4.指标平台+大模型(可选择一个成熟的BI系统进行改造或融合)
例如Quick BI
https://bi.aliyun.com/template/nl/public?spm=5176.14192723.J_4311996040.5.62652577LZCQVk
5.数据虚拟化+大模型(未接触)
参考资料
以终为始,以业务为导向
流程分层,而不是端到端
https://www.zhihu.com/question/628814054/answer/3274271761
https://zhuanlan.zhihu.com/p/670082492