基于LLMxMapReduce框架开发的解决方案,具备完善的前后端系统架构,支持Redis扩展,提供强大的数据处理和分析能力。
- 🚀 现代化前端: 基于 Next.js 构建的现代化、响应式前端界面。
- 🔧 强大后端: 采用 Flask 提供稳定、高效的 API 服务。
- 🗄️ 多数据库支持: 结合 PostgreSQL 和 MongoDB,灵活处理关系型和文档型数据。
- 🔐 安全认证: 内置 JWT 身份认证系统,保障数据安全。
- 🤖 AI 集成: 集成 OpenAI API,赋予应用强大的智能分析能力。
- ⚡ 高性能缓存: 通过 Redis 扩展支持,提升系统性能和响应速度。
- 🐳 容器化部署: 提供 Docker 支持,简化开发和生产环境部署。
| 类别 | 技术 |
|---|---|
| 后端 | Python 3.12, Flask, PostgreSQL, MongoDB, Redis, OpenAI API, JWT |
| 前端 | Next.js 15, React 19, TypeScript, Tailwind CSS, Radix UI |
| DevOps | Docker, Nginx, Supervisor, uWSGI, Systemd |
LLMxMapReduce/
├── backend/ # Flask后端应用
│ ├── src/ # 源代码目录
│ ├── config/ # 配置文件
│ ├── logs/ # 日志文件
│ ├── app.py # 主应用程序文件
│ ├── requirements.txt # Python依赖
│ └── env.template # 环境变量模板
├── frontend/ # Next.js前端应用
│ ├── app/ # Next.js路由目录
│ ├── components/ # React组件
│ ├── lib/ # 工具库
│ ├── styles/ # 样式文件
│ └── package.json # Node.js依赖
├── assets/ # 静态资源
├── docker-compose.yml # Docker配置
└── README.md # 项目文档
- Python 3.12+
- Node.js 18+ & pnpm
- Docker & Docker Compose
- Conda
git clone https://github.com/criscuolosubidu/LLMxMapReduce.git
cd LLMxMapReduce本项目推荐使用 Docker 快速启动所需的数据库和 Redis 服务。
# 复制配置文件模板
cp docker-compose.yml.template docker-compose.yml
# 根据需要修改 docker-compose.yml (例如:密码、端口等)
# nano docker-compose.yml
# 启动服务 (后台模式)
docker-compose up -d
# 检查服务是否正常运行
docker-compose psconda create -n llm_mr_v2 python=3.12
conda activate llm_mr_v2cd backend
pip install -r requirements.txtcd ../frontend
pnpm install后端服务需要配置环境变量才能正确连接数据库和第三方服务。
# 进入后端目录
cd backend
# 复制环境变量模板
cp env.template .env编辑 .env 文件,填入必要的配置信息。对于本地开发,大部分默认值即可,但请务必填入你的 API 密钥。
# PostgreSQL数据库配置 (应与 docker-compose.yml 中保持一致)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=pguser
POSTGRES_PASSWORD=123456
POSTGRES_DB=llm_mapreduce
# MongoDB配置
MONGO_URI=mongodb://localhost:27017/
MONGO_DATABASE=llm_mapreduce
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
# API密钥配置 (请替换为你的密钥)
OPENAI_API_KEY=your-openai-api-key-here
SERPER_API_KEY=your-serper-api-key-here
# JWT密钥 (建议修改为一个随机字符串)
JWT_SECRET_KEY=your-super-secret-jwt-key-herecd backend
python app.py👉 后端服务将在
http://localhost:5000运行。
cd frontend
pnpm run dev👉 前端服务将在
http://localhost:3000运行。
这是一个参考的生产环境部署流程,假设项目克隆在服务器的 /home/ubuntu 目录下。
点击展开查看安装脚本
# 更新包管理器
sudo apt update && sudo apt upgrade -y
# 安装必要的系统包
sudo apt install -y build-essential pkg-config
sudo apt install -y nginx supervisor
sudo apt install -y curl wget git
# 安装 Docker 和 Docker Compose
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 安装 Miniconda(如果尚未安装)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
# 安装 Node.js 和 pnpm(前端依赖)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
npm install -g pnpm
# 安装编译相关依赖
sudo apt install -y libpq-dev libssl-dev libffi-dev点击展开查看配置脚本
# 确保 ubuntu 用户有 Docker 权限
sudo usermod -aG docker ubuntu
# 确保 ubuntu 用户可以访问所需目录
sudo chown -R ubuntu:ubuntu /home/ubuntu/LLMxMapReducecd /home/ubuntu/LLMxMapReduce
# 启动 Docker Compose 数据库服务
docker-compose up -d
# 检查服务状态
docker-compose ps# 复制 Docker 环境配置模板
cp env.docker.template .env
# 编辑配置文件,填入实际的值
nano .env项目在 backend 目录下提供了一个 uwsgi.ini 配置文件。由于使用了 gevent,需要确保 uWSGI 以 gevent 模式启动,以避免线程冲突。
cd backend
# 启动服务
uwsgi --ini uwsgi.ini
# 关闭服务
uwsgi --stop uwsgi.pid使用 systemd 管理前端服务,可以实现开机自启和故障自动重启。
点击展开查看部署脚本
cd frontend
# 安装依赖包,构建生产程序
pnpm install
pnpm build
# 复制 systemd 服务文件
# 注意:请确保 systemd_frontend.service 文件存在且配置正确
sudo cp systemd_frontend.service /etc/systemd/system/mapreduce-frontend.service
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启用开机自启
sudo systemctl enable mapreduce-frontend
# 启动服务
sudo systemctl start mapreduce-frontend
# 检查服务状态
sudo systemctl status mapreduce-frontend我们欢迎所有形式的贡献!无论是报告 Bug、提交新功能、改进文档还是其他任何形式的帮助,都对我们非常有价值。
如果您有兴趣为项目做贡献,请:
- Fork 本仓库。
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature)。 - 提交您的更改 (
git commit -m 'Add some AmazingFeature')。 - 将分支推送到远程 (
git push origin feature/AmazingFeature)。 - 发起一个 Pull Request。
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。