Ollama 数据库助手
一个交互式聊天界面,结合了Ollama的大型语言模型能力并通过模型上下文协议(MCP)访问PostgreSQL数据库。用自然语言提问关于你的数据的问题,并获得由真实SQL查询支持的人工智能驱动的回答。
服务介绍
Ollama MCP 数据库助手
一个结合了 Ollama 的 LLM 能力和通过 Model Context Protocol (MCP) 访问 PostgreSQL 数据库的交互式聊天界面。用自然语言询问您的数据,并获得基于真实 SQL 查询的人工智能响应。
功能
- 以自然语言访问您的 PostgreSQL 数据库
- 自动生成 SQL 查询
- 基于模式的响应
- 交互式聊天界面
- 安全、只读的数据库访问
先决条件
- Node.js 16 或更高版本
- 正在运行的 PostgreSQL 数据库
- Ollama 已安装并在本地运行
- 在 Ollama 中拉取 qwen2.5-coder:7b-instruct 模型
设置
- 克隆仓库:
git clone [your-repo-url]
cd [your-repo-name]
- 安装依赖项:
npm install
- 拉取所需的 Ollama 模型:
ollama pull qwen2.5-coder:7b-instruct
- 在项目根目录中创建
.env文件:
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
OLLAMA_MODEL=qwen2.5-coder:7b-instruct # Optional - this is the default
使用方法
- 启动聊天界面:
npm start
- 用自然语言询问您的数据:
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]
- 输入 'exit' 退出应用程序。
工作原理
- 应用程序通过 PostgreSQL MCP 服务器 连接到您的 PostgreSQL 数据库。
- 加载并缓存您的数据库模式。
- 当您提出问题时:
- 将模式和问题发送给 Ollama
- Ollama 生成适当的 SQL 查询
- 通过 MCP 执行查询
- 结果返回到 Ollama 进行解释
- 您收到自然语言响应
环境变量
| 变量名 | 描述 | 默认值 |
|---|---|---|
| DATABASE_URL | PostgreSQL 连接字符串 | 必填 |
| OLLAMA_MODEL | 要使用的 Ollama 模型 | qwen2.5-coder:7b-instruct |
安全性
- 所有数据库访问均为只读
- SQL 查询仅限于 SELECT 语句
- 数据库凭据安全地保存在 .env 文件中
开发
使用以下技术构建:
- TypeScript
- Model Context Protocol (MCP)
- Ollama
- PostgreSQL
故障排除
常见问题
-
"无法连接到数据库"
- 检查 .env 中的 DATABASE_URL
- 确认 PostgreSQL 正在运行
- 检查网络连接
-
"无法连接到 Ollama"
- 确保 Ollama 正在运行 (
ollama serve) - 验证模型已安装 (
ollama list)
- 确保 Ollama 正在运行 (
-
"执行查询时出错"
- 检查数据库权限
- 核实模式中的表/列名称
许可证
MIT
贡献指南
- 分叉仓库
- 创建功能分支
- 提交更改
- 推送到分支
- 发起 Pull Request