# btm-ai **Repository Path**: BigTailMonkey/btm-ai ## Basic Information - **Project Name**: btm-ai - **Description**: 试试使用spring-ai开发个应用 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # btm-ai [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![JDK](https://img.shields.io/badge/JDK-17%2B-green.svg)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) [![Maven](https://img.shields.io/badge/Maven-3.8%2B-orange.svg)](https://maven.apache.org/) [![MySQL](https://img.shields.io/badge/MySQL-5.6%2B-blue.svg)](https://www.mysql.com/) ## 📖 项目简介 btm-ai是一个集成多种AI能力的综合服务平台,为开发者提供便捷的AI功能接入方案。本项目采用模块化设计,支持大模型对话、智能数据库查询、数据提取等多种AI能力。 ### ✨ 核心特性 - 🤖 集成DeepSeek API,提供高质量的AI对话能力 - 📊 智能数据库查询,支持自然语言转SQL - 🔍 Doris数据结构提取与检索 - 🔌 模块化设计,支持灵活扩展 - 🌐 统一的REST API接口 - 🛠 完整的开发工具链支持 ## 🚀 快速开始 ### 环境准备 确保您的开发环境满足以下要求: - JDK 17或更高版本 - Maven 3.8或更高版本 - MySQL 5.6或更高版本 - 可用的DeepSeek API密钥 ### 一键部署 1. 克隆项目 ```bash git clone https://github.com/yourusername/btm-ai.git cd btm-ai ``` 2. 配置环境变量 ```bash export DEEPSEEK_API_KEY=your_api_key ``` 3. 修改配置文件 在各模块的`application.yml`中配置数据库连接信息。 4. 编译部署 ```bash # 编译所有模块 mvn clean package # 启动服务(按顺序) java -jar mcp-server-mysql/target/mcp-server-mysql.jar java -jar mcp-server-organization/target/mcp-server-organization.jar java -jar mcp-server-business/target/mcp-server-business.jar java -jar btm-chat/target/btm-chat.jar ``` ## docker打包镜像 docker build --platform linux/amd64 -t btm-ai-linux:版本号 . ## docker部署 1. 从本机的docker镜像里导出btm-ai-linux.tar,然后导入到目标服务器的docker镜像库 2. 复制配置文件.env.template为.env,并完善配置项 3. 使用命令docker run --env-file .env -p 8889:8889 --name btm-ai-service btm-ai启动容器 4. 通过http://ip:8889访问服务 ## 📦 项目结构 ``` btm-ai/ ├── btm-chat/ # AI对话服务模块 │ ├── src/ # 源代码 │ └── pom.xml # 模块配置 ├── mcp-server-mysql/ # 数据库查询服务 │ ├── src/ │ └── pom.xml ├── mcp-server-organization/ # 组织管理服务 │ ├── src/ │ └── pom.xml ├── extract-doris-info/ # Doris数据提取模块 │ ├── src/ │ └── pom.xml ├── flux_web/ # Web前端界面 │ ├── src/ # 前端源代码 │ ├── public/ # 静态资源 │ └── package.json # 依赖配置 └── pom.xml # 项目总配置 ``` ## 🔧 模块说明 ### btm-chat AI对话服务模块,基于Spring-AI框架开发: - 集成DeepSeek API,支持多种对话模式 - 提供简单对话和系统预设提示功能 - 支持多轮对话,自动管理会话历史 - 集成MCP客户端,可调用数据库查询和组织信息服务 - 提供流式响应能力 - 支持自定义系统提示词 ### mcp-server-mysql 数据库查询服务模块: - 提供SQL查询执行能力 - 支持SELECT语句查询(executeQuerySql) - 支持所有类型SQL执行(executeAllSql) - 返回JSON格式的查询结果 - 内置错误处理和日志记录 ### mcp-server-organization 组织架构管理服务模块: - 提供组织机构信息查询 - 支持按机构名称模糊搜索 - 维护组织机构层级关系 - 存储机构基本信息(代码、名称、类型等) - 支持多维度组织信息(区域、街道等) ### extract-doris-info Doris数据库表结构管理模块: - 提取数据库表结构信息 - 支持表结构信息存储到MeiliSearch - 提供表结构搜索功能 - 支持表注释和字段注释的更新 - 实现数据库与搜索引擎的结构同步 - 提供REST API接口管理表结构 ### flux_web Web前端界面模块: - 提供统一的Web操作界面 - 集成各后端服务功能 - 支持用户交互操作 ## 📚 API文档 ### 对话接口 #### 简单对话 ```http POST /api/chat Content-Type: application/json Request: { "message": "你好" } Response: { "code": 0, "message": "success", "data": { "reply": "AI回复内容" } } ``` #### 系统预设对话 ```http POST /api/chat/system Content-Type: application/json Request: { "systemMessage": "你是一个助手", "userMessage": "你好" } ``` ## 🤝 参与贡献 1. Fork本仓库 2. 创建特性分支:`git checkout -b feature/xxx` 3. 提交更改:`git commit -am 'Add xxx feature'` 4. 推送分支:`git push origin feature/xxx` 5. 提交Pull Request ## 📄 开源协议 本项目采用[Apache License 2.0](./LICENSE)开源协议。 该协议允许: - ✅ 商业使用 - ✅ 修改 - ✅ 分发 - ✅ 专利授权 - ✅ 私人使用 要求: - 📝 包含版权声明 - 📝 包含许可证声明 - 📝 声明修改 - 📝 保留NOTICE文件 ## 📚 参考资源 - [Spring AI文档](https://docs.spring.io/spring-ai/reference/) - [DeepSeek API文档](https://platform.deepseek.com/) - [MCP示例项目](https://github.com/Fj-ivy/claude-mcp-examples) ## 📞 联系我们 - 项目Issues: [GitHub Issues](https://github.com/yourusername/btm-ai/issues) - 邮件联系: your.email@example.com ## IP 限制配置 系统支持配置数据库 IP 限制列表,用于控制数据库操作权限。当数据库连接的 IP 地址在限制列表中时,将禁止进行数据库操作。配置项在mcp-server-mysql模块中。 ### 配置方式 1. 应用程序配置文件方式(application.yml): ```yaml system: safe: reject: db_ip: ${UNSAFE_DB_IPS} # 使用环境变量占位符 ``` 2. 环境变量方式: ```bash export UNSAFE_DB_IPS=192.168.1.100,10.0.0.0/8 ``` 3. Docker 环境变量方式: 在 `.env` 文件中配置: ``` unsafe_db_ip=192.168.1.100,10.0.0.0/8 ``` ### 配置说明 - 支持配置多个 IP 地址,使用逗号分隔 - 支持两种格式: - 单个 IP 地址:如 "192.168.1.100" - CIDR 格式的 IP 地址段:如 "10.0.0.0/8" - 配置优先级:环境变量 > 配置文件 - 检查逻辑:系统会检查数据库连接 URL 中的 IP 地址是否在限制列表中 - 注意:此配置仅对 mcp-server-mysql 服务有效 --- © 2024-2025 btm-ai Team. All rights reserved.