以下是一些可以帮助您进行数据分析的工具:
1.第一个user prompt:限定SELECT SQL,这里告诉它:不要用SELECT *来查询全部列,且仅回复一条SELECT SQL语句。至少查询两列:数据项、数据值,且不能直接查询如mediumtext/longtext这样的长类型字段,可以用count/substring等函数查询这些长类型列。2.system prompt是表结构信息,如有难以理解的字段可以告诉GPT字段的意义,有多个表可分开描述。3.需校验GPT生成的SQL,不通过直接返回提示:抱歉,不支持此类请求。通过再执行SQL查询数据。4.数据分析的user prompt:提示数据分析,限定返回的JSON格式:conclusion、keyMap、title。keyMap的作用:数据key的映射,获取结果数据对应的维度、数据项、数据值的key值,用于映射数据渲染图表。由于支持多维数据,单维度数据的keyMap没有维度项,就存在让GPT返回两种结构的情况。这里我采取分开定义单维度数据和多维度数据的prompt,根据结果数据tableData的维度,用条件运算符选择对应的prompt,再传递给GPT。5.结果数据tableData是跟随接口一起返回到前端,已经通过SQL查询的数据,不能让GPT又生成一次,否则非常耗时。
逻辑流程图如下:上面说的两种方式对应流程图的上下两个步骤,红色部分是重点。SQL分析:用户描述想分析的内容,后台连接DB,附带表结构信息让AI输出SQL语句,校验是SELECT类型的SQL,其他操作如UPDATE/DELETE绝不能通过!!校验通过后执行SQL返回结果数据。再将数据传给GPT(附带上下文),让AI学习并分析数据,最后输出分析结论和建议,和结果数据一起返回给前端页面渲染图表、展示分析结论。目前已实现两张表关联查询。个性化分析:用户上传文件,如有需要可以简单描述这是什么数据、字段意义或作用辅助分析。前端解析用户上传的文件,再传给GPT分析数据,后续步骤与上面一致。流程描述得比较详细,就不具体讲解开发过程和代码了,而是会更多讲述开发时的一些问题、重点和技巧。相关重点:
以下是一些推荐的text2sql相关的AI工具及其链接:Text2SQL -将英文转换为SQL查询。链接:https://toolske.com/text2sql/?ref=theresanaiforthatai2sql -高效且无错误的SQL构建器。链接:https://www.ai2sql.io/EverSQL -从SQL查询翻译英文文本。链接:https://www.eversql.com/sql-to-text/SupaSQL -从NLP生成SQL查询。链接:https://supasql.com/SQLgenius -使用自然语言的SQL查询生成器。链接:https://sqlgenius.app/SQL Chat -与数据库进行自然语言聊天的SQL客户端。链接:https://www.sqlchat.ai/SQL Ease -从自然语言输入生成SQL查询。链接:https://sqlease.buildnship.in/Talktotables -翻译和查询数据库。链接:https://talktotables.com/我建议查看以下几个知名的text2sql项目:SQLNet -一个使用深度学习方法解决text2sql任务的项目。Seq2SQL -一个将自然语言转换为SQL查询的序列到序列模型。Spider -一个大规模的text2sql数据集及其相关的挑战