仅仅是个原型,用于验证传统系统的数据库与 LLM 互通的方式的 ...
兄弟们帮我点点 star 我去换个 idea 的授权呢
DB2LLM 是一个将 SQLite 数据库的元数据与 RESTful API 和大型语言模型( LLM )结合的最小化原型。它允许用户通过自然语言与数据库进行交互,无需编写 SQL 查询或了解数据库结构。当前为便于演示,使用 SQLite 数据库,实际使用时,请使用自己的数据库并更新相关的配置。
git clone https://github.com/loocor/db2llm.git cd db2llm
bun install
config/config.yaml
文件:server: port: 3000 host: "localhost" database: tempDir: "db2llm" defaultName: "db2llm.sqlite" connection: synchronize: false logging: ["error", "warn"] llm: provider: "deepseek" openai: model: "deepseek-chat" temperature: 0.3 defaultApiUrl: "https://api.deepseek.com/v1" apiKey: "sk-4c907ed3eed5468db793b6f431e9a28c" ui: title: "DB2LLM - 数据库对话助手" welcomeMessage: "欢迎使用 DB2LLM 数据库对话助手!请先连接数据库和配置 LLM API 。" readyMessage: "我已准备好,跟我来聊吧!"
支持的 LLM 提供商:
bun run dev
应用将在 http://localhost:3000 启动。
MIT
![]() | 1 ferock PRO db , 这个形状... |
![]() | 3 twig 214 天前 via iPhone ,,,, db |
![]() | 4 EastLord 213 天前 via iPhone 貌似有不少同类型的产品 |
![]() | 6 elffkdx 213 天前 楼主有微信吗? |
![]() | 7 Alexf4 213 天前 昨晚简单撸了个 MySQL MCP Server, 感觉就是类似这种场景的。但是现在还要依赖一些支持 MCP 的组件。 |
![]() | 8 aminobody 213 天前 text2sql |
![]() | 11 Loocor OP @aminobody 还是交流好,这个 text2sql 还有 Chat2DB 之前都没留意。从 text2sql 官网看它的实现基础估计也是基于数据库的 meta 信息做文章 |
![]() | 12 Wxh16144 213 天前 @Loocor #10 https://github.com/modelcontextprotocol/servers/tree/main/src/sqlite 这个例子差不多,大家都遵循 MCP 最好了 |
![]() | 13 Loocor OP ![]() @Wxh16144 确实,遵循一致的规范有必要,下来得学习下 MCP 。 代码上我大概看了下,不知道这个方案是如何处理表、字段命名一致性的问题。看起来它完全依赖于 LLM 的判断来生成表名,这可能会导致几个潜在的问题: 1 、命名不一致: - 同样的概念可能会用不同的表名( customers/clients/users ) - 不同的会话可能产生不同的命名选择 - 缺乏命名规范的强制执行 2 、结构不一致: - 字段名称可能不统一( first_name/firstname/fname ) - 数据类型可能不一致( VARCHAR/TEXT, INT/INTEGER ) - 缺乏字段定义的标准化 3 、关系混乱: - 外键引用可能使用不同的表名 - 索引命名可能不统一 - 缺乏关系模式的规范 db2llm 不同,默认是 db first 模式,现在的例子里是通过已有的 meta 信息来约束 llm 生成的请求,从而保证请求一致性的问题。但是除了 mcp 规范的欠缺外,其实对比前面这几个方案来看创建记录没问题但要新增表的话,一样也会出现一致性的毛病,我看看有没有其他的模式来处理这个问题 |
![]() | 14 Greatshu 213 天前 博客园有个 chat2db ,感觉和你差不多 |