有没有一些技术和框架可以让模型学习数据库结构(DDL)和里面的一部分数据来判断什么样的问题适合查询数据库回答,并且转化问题为SQL,还可以把查询的结果展现成用户方便查看的方式?
mcp?
好问题,最近工作上遇到类似的问题,先占楼关注一下
GPT deep research 提供了
参考项目:可参考开源的 Chat2DB 和 DB-GPT 项目来实现上述想法。这些项目已经实现了自然语言到SQL的主要功能和界面,开发者可以在其基础上修改以适应自己的PostgreSQL数据库。本方案的各步骤在这些项目中多少都有体现,比如 Chat2DB 用提示模板确保中文SQL互译,DB-GPT 使用LangChain Agent执行数据库查询等。结合这些现有代码,将能更高效地搭建出满足需求的数据库问答系统。
MCP只是个协议啊,很多MCP server是扩展大模型访问API的能力,也是很有用的,但是感觉如果只靠API增加一些简单描述容易产生误差?而且API一般都有局限,只能反映出包装到API输入输出里面的知识和数据,而不是数据库里的所有知识和数据
像这种或许可以简单高效实现自动query?我还没有尝试过 或许是我想太多
感觉这个针对的用户还是程序员或者数据库管理员?而不是最终用户的业务相关问题?
- Help you explore and understand your database structure
- Assist in writing and validating SQL queries
- Displays relationships between tables
- Analyze large datasets and create reports
可不可以把agent当成程序员呢 我感觉我似乎没有理解你一开始的问题
GraphRAG
数据的话RAG就行,但是效果肯定不如长context好
生成SQL的话写个简单的MCP/FunctionCall插件就行了
用户是不了解数据库结构也不懂SQL的,用户只是提出需求和问题,而模型需要分析用户的输入判断数据库能够提供哪些数据来回答问题,并且可以向用户提问题找到更多的输入来去数据库找到更合适的数据,并且可以结合数据库之外的信息给用户适合的答案
我感觉你是不是在找开箱即用的框架?这个我不太知道有没有。我还以为是准备自己缝一个multi agent的框架,感觉用langgraph之类的倒也不难实现
嗯,想找专门对数据库优化的开箱即用的,正在试用langchain,还是有一些基础能力在的
你的 SQL 其实就是 maxmypoints 的东西吧,其实把 metadata 做好,然后 build 几个 enriched view 就基本都能做到吧。大概率就是带 filter 的 SQL query,大部分模型应该都能做到的。
主要困难感觉是 latency,不知道这种 query 需要多久执行。
对,就是想对接maxmypoint的数据库,你说的都是db层面的?
跑sql可以通过mcp / func call,自然语言生成sql基本搞点prompt就行,但是 判断什么样的问题适合查询数据库回答 是需要domain knowledge的
我意思是 metadata 索引 + enriched view 做好,你把这俩给 LLM 生成的 query 基本能用了,能够满足90%的搜索任务,
有没有技术可以让模型读取schema和数据然后能增加判断什么适合查询数据库回答问题的能力?
这些都可以跑sql解决,domain / business knowledge都是db之外的context,得想办法喂给model
试了下chat2db,按文档是可以支持我说的场景,但问第一个问题就翻车了 ![]()