使用说明
项目概述
该项目使用Docker建立了一个本地开发环境 编写,包括:-带初始化脚本的PostgreSQL数据库- Ollama AI模型服务器-基于FastAPI的自定义MCP服务器,可生成 通过Ollama执行SQL并安全执行
📦 服务
1.PostgreSQL(db)
- 官方运行
postgres:16图像 - 暴露端口 5432
- 使用来自的SQL脚本初始化数据库
db-init/ - 包括健康检查,以确保在依赖服务之前做好准备 开始
2.奥拉马(奥拉马)
- 跑
ollama/ollama:latest - 暴露端口 11434
- 将下载的模型存储在Docker卷中
3.MCP服务器(FastAPI)
- 由……建立
mcp/Dockerfile - 取决于数据库服务是否正常
- 暴露端口 3001
- 自动启动时:
- 等待Ollama
- 确保模型
qwen2.5-coder被拉动
🚀 安装说明
运行安装脚本:
./setup.sh
这将:1。构建2。 在后台启动服务3。短暂等待并显示服务状态
🔗 服务URL
- MCP API根: http://localhost:3001
- 健康检查: http://localhost:3001/health
- API Ollama: http://localhost:11434
- PostgreSQL: 本地主机:5432
🧪 示例测试请求
curl -X POST http://localhost:3001/ask -H "Content-Type: application/json" -d '{"question": "Show me all users"}'
📁 重要文件
docker-compose.yaml
定义所有服务、卷、网络和依赖关系。
setup.sh
自动重建+启动+健康信息。
db-init/init.sql
创建一个 users 表并插入示例用户(Alice、Bob、Charlie)。
mcp/Dockerfile
安装了依赖项的最小Python映像。
mcp/server.py
FastAPI服务器:-等待Ollama并确保所需型号
已下载-显示 /ask 终结点:-转换用户
向SQL提问-仅确保 SELECT 允许查询-执行
PostgreSQL上的SQL并返回JSON结果
✅ 特性
- 安全SQL执行(仅限SELECT)
- 自动模型拉取
- 自动数据库初始化
- 健康端点验证DB+Ollama
🛠️ 未来的增强功能
- 添加日志中间件
- 支持其他表或模式
- 允许Ollama的流式响应