AI-Cloud-Go 是一个基于 Go 语言实现的LLM应用于开发系统,提供文件存储、用户管理、知识库管理、模型管理、Agent等功能,采用现代化的技术栈和架构设计。系统支持多种存储后端,并集成了向量数据库以支持智能检索功能。
前端界面展示: AI-Cloud-Frontend
Agent配置
已经实现:
- 用户模块:支持用户注册、登录、认证
- 多存储后端:支持本地存储、MinIO、阿里云OSS等多种存储方式
- 文件模块:支持文件上传、下载、管理
- 知识库模块:支持创建和管理知识库,支持导入云盘文件或上传新文件
- 模型模块:支持创建和管理自定义LLM模型和Embedding模型
- Agent模块:支持创建和管理Agent
- 支持自定义LLM、知识库、MCP
- 对话界面、历史对话
未来优化
- 知识库模块:多文件上传/优化解析状态处理/支持Rerank
- Agent模块:自定义Tool(HTTP工具)/优化LLM的参数配置/跨知识库检索的Rerank实现
- 模型管理:添加常用模型预设:OpenAI,DeepSeek,火山引擎等/支持Rerank模型
- 后端框架:Gin
- 数据库:MySQL
- 向量数据库:Milvus
- 对象存储:MinIO/阿里云OSS
- 认证:JWT
- LLM框架:Eino
- 其他:跨域中间件、自定义中间件等
.
├── cmd/ # 主程序入口
├── config/ # 配置文件
├── docs/ # 文档目录
│ ├── CONFIG_README.md # 配置指南
│ └── QUICKSTART.md # 快速启动指南
├── internal/ # 内部包
│ ├── component/ # 大模型相关服务
│ ├── controller/ # 控制器层
│ ├── service/ # 业务逻辑层
│ ├── dao/ # 数据访问层
│ ├── middleware/ # 中间件
│ ├── router/ # 路由配置
│ ├── database/ # 数据库(MySQL/Milvus...)
│ ├── model/ # 数据模型
│ ├── storage/ # 后端存储实现(Minio/OSS...)
│ └── utils/ # 工具函数
├── pkgs/ # 公共包
├── docker-compose.yml # Docker配置文件
├── go.mod # Go 模块文件
└── go.sum # 依赖版本锁定文件
- 克隆项目
git clone https://github.com/RaspberryCola/AI-Cloud-Go.git
cd AI-Cloud-Go
- 安装依赖
go mod download
- 配置环境
- 确保已安装并启动 MySQL
- 确保已安装并启动 Milvus(如需使用向量检索功能)
- 配置存储后端(本地存储/MinIO/阿里云OSS)
可以通过Docker快速配置:
docker-compose up -d
- 修改配置信息
- 修改
config/config.yaml
中的相关配置
- 运行项目
go run cmd/main.go
更多详情请看 docs 文件夹
- 已安装 Docker 和 Docker Compose
- 基本了解 Docker 的使用
本配置包含以下服务:
- MySQL: 数据库服务器,配置
ai_cloud
数据库 - MinIO: 对象存储服务,兼容 S3 协议,配置
ai-cloud
存储桶 - Milvus: 向量数据库,用于存储和检索文档向量
-
环境配置
- 修改
config/config.yaml
文件,配置各服务连接信息和LLM的API密钥信息
llm: api_key: "your-llm-api-key" model: "deepseek-chat" base_url: "https://api.deepseek.com/v1"
⚠️ 语言模型配置后续将会移动到统一的模型服务管理中 - 修改
-
启动 Docker 容器
docker-compose up -d
-
检查服务状态
docker ps
-
运行项目
go run cmd/main.go
-
停止容器
docker-compose down
- 主机: localhost
- 端口: 3306
- 用户名: root
- 密码: 123456
- 数据库: ai_cloud
- 端点: localhost:9000
- 管理控制台: http://localhost:9001
- 访问密钥: minioadmin
- 密钥: minioadmin
- 存储桶: ai-cloud
- 配置路径:
milvus.address
在config.yaml
中 - 默认地址: localhost:19530
- 管理界面: 需要额外安装Attu (Milvus官方GUI工具)
- 在端口9091只提供监控信息: http://localhost:9091/webui (Milvus 2.5.0+版本)
- 完整管理界面需安装Attu:
docker run -p 8000:3000 -e MILVUS_URL=localhost:19530 zilliz/attu:latest
- 访问Attu: http://localhost:8000
项目使用 config/config.yaml
文件配置服务连接和第三方 AI 模型的访问,主要包括:
1.语言模型配置
- 用于知识库问答和智能处理
- 默认使用 DeepSeek 的 deepseek-chat 模型
2.Milvus配置
- 用于向量存储和检索
- 配置项:
milvus.address
-
程序启动卡住
- 检查 Milvus 是否正常启动,查看日志
docker logs milvus-standalone
- 检查
config/config.yaml
文件中的 Milvus 地址配置是否正确 - 检查
config/config.yaml
文件是否配置了正确的 API 密钥 - 确保 MySQL 中已创建 ai_cloud 数据库
- 检查 Milvus 是否正常启动,查看日志
-
MinIO 连接问题
- 检查 MinIO 服务是否正常运行
- 验证 config.yaml 中的 MinIO 配置是否与实际运行环境一致
-
向量数据库操作失败
- 检查 Milvus 服务状态
- 确认向量维度设置是否与模型输出一致
- 确认 config.yaml 中的 milvus.address 配置是否正确
-
Milvus 管理界面访问失败
- Milvus 2.5以上版本在端口9091提供简易WebUI: http://localhost:9091/webui
- 完整的管理界面需要安装Attu工具:
docker run -p 8000:3000 -e MILVUS_URL=localhost:19530 zilliz/attu:latest
项目启动后,可通过以下端点进行测试:
- 用户注册: POST http://localhost:8080/api/users/register
- 用户登录: POST http://localhost:8080/api/users/login
- 文件上传: POST http://localhost:8080/api/files/upload
- 更多 API 详见代码中的路由配置
- 应用后端: http://localhost:8080
- MinIO 控制台: http://localhost:9001
- Milvus 管理界面: http://localhost:9091
- Ollama 服务: http://localhost:11434 (如果启用)
- 如果您已经在本地运行了 MySQL,可以直接使用
mysql -u root -p < init.sql
创建 ai_cloud 数据库 - 首次启动时,Milvus 会自动创建必要的集合和索引,可能需要一些时间
- 使用生产环境时,请替换配置文件中的示例 API 密钥为您自己的有效密钥
- 配置 config.yaml 时确保数据库和存储服务的连接信息与 Docker 环境一致
- Go主程序使用端口8080,Ollama服务使用端口11434,避免端口冲突