仅仅是个原型,用于验证传统系统的数据库与 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 2 天前 via Android
db , 这个形状...
|
![]() |
3
twig 2 天前 via iPhone
,,,,
db |
![]() |
4
EastLord 2 天前 via iPhone
貌似有不少同类型的产品
|
![]() |
6
elffkdx 2 天前
楼主有微信吗?
|
![]() |
7
Alexf4 2 天前
昨晚简单撸了个 MySQL MCP Server, 感觉就是类似这种场景的。但是现在还要依赖一些支持 MCP 的组件。
|
![]() |
8
aminobody 2 天前
text2sql
|
![]() |
11
Loocor OP @aminobody 😂 还是交流好,这个 text2sql 还有 Chat2DB 之前都没留意。从 text2sql 官网看它的实现基础估计也是基于数据库的 meta 信息做文章
|
![]() |
12
Wxh16144 1 天前
@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 1 天前
博客园有个 chat2db ,感觉和你差不多
|