数据库自然语言查询工具

一款结合Ollama大语言模型能力和PostgreSQL数据库访问的交互式聊天界面,可通过自然语言提问获取基于真实SQL查询的AI响应。

  • by robdodson
  • TypeScript
  • 本地部署
  • 62 星标
  • 更新于
在 GitHub 查看 robdodson/ollama-mcp-db

使用说明

Ollama MCP数据库助理

一个交互式聊天界面,通过模型上下文协议(MCP)将Ollama的LLM功能与PostgreSQL数据库访问相结合。用自然语言询问有关数据的问题,并获得由真实SQL查询支持的人工智能响应。

特性

  • PostgreSQL数据库的自然语言接口
  • 自动生成SQL查询
  • 模式感知响应
  • 交互式聊天界面
  • 安全的只读数据库访问

先决条件

  • Node.js 16或更高版本
  • 正在运行的PostgreSQL数据库
  • 没有 在本地安装并运行
  • Ollama中的qwen2.5编码器:7b指令模型

设置

  1. 克隆存储库:
git clone [your-repo-url]
cd [your-repo-name]
  1. 安装依赖项:
npm install
  1. 拉取所需的Olama模型:
ollama pull qwen2.5-coder:7b-instruct
  1. 创建一个 .env 项目根目录中的文件:
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
OLLAMA_MODEL=qwen2.5-coder:7b-instruct  # Optional - this is the default

用法

  1. 启动聊天界面:
npm start
  1. 用自然语言询问有关数据的问题:
Connected to database. You can now ask questions about your data.
Type "exit" to quit.

What would you like to know about your data? Which products generated the most revenue last month?
Analyzing...

[AI will generate and execute a SQL query, then explain the results]
  1. 键入“exit”退出应用程序。

运作原理

  1. 应用程序通过以下方式连接到PostgreSQL数据库 PostgreSQL MCP服务器
  2. 它加载并缓存您的数据库模式
  3. 当你问一个问题时:
    • 将方案和问题发送给Ollama
    • Ollama生成适当的SQL查询
    • 查询通过MCP执行
    • 结果将发送回Ollama进行解释
    • 您将收到自然语言响应

环境变量

变量 描述 默认值
DATABASE_URL PostgreSQL连接字符串 必填
OLLAMA_MODEL OLLAMA模型使用 qwen2.5编码器:7b指令

安全

  • 所有数据库访问都是只读的
  • SQL查询仅限于SELECT语句
  • 数据库凭据在.env文件中保持安全

发展

内置:

  • TypeScript
  • 模型上下文协议(MCP)
  • 没有
  • PostgreSQL

故障排除

常见问题

  1. “无法连接到数据库”

    • 检查.env中的DATABASE_URL
    • 验证PostgreSQL是否正在运行
    • 检查网络连接
  2. “无法连接到Ollama”

    • 确保Ollama正在运行(ollama serve)
    • 验证模型是否已安装(ollama list)
  3. “执行查询时出错”

    • 检查数据库权限
    • 验证架构中的表/列名

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 打开拉取请求