基于 FastAPI + PostgreSQL 构建的多模型聚合平台,支持统一调用多家大模型API,具有用户管理、模型配置、对话管理等功能。
/workspace/ ├── main.py # FastAPI主应用 ├── database.py # 数据库模型和连接 ├── schemas.py # Pydantic数据模型 ├── auth.py # 认证和授权模块 ├── model_services.py # 模型服务封装 ├── requirements.txt # Python依赖 ├── Dockerfile # Docker镜像配置 ├── docker-compose.yml # Docker Compose配置 ├── init_db.py # 数据库初始化脚本 ├── .env.example # 环境变量示例 ├── templates/ # HTML模板 │ ├── index.html # 用户前端 │ └── admin.html # 管理后台 ├── static/ # 静态文件 │ └── js/ │ ├── app.js # 用户前端JS │ └── admin.js # 管理后台JS └── README.md # 项目说明
确保已安装:
pip install -r requirements.txt
# 启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f app
# 启动PostgreSQL
docker run -d --name postgres -p 5432:5432 \
-e POSTGRES_DB=model_platform \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=password \
postgres:15
# 初始化数据库
python init_db.py
# 开发模式(自动重载)
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# 生产模式
uvicorn main:app --host 0.0.0.0 --port 8000
POST /api/auth/register - 用户注册POST /api/auth/login - 用户登录POST /api/admin/models - 添加模型配置GET /api/admin/models - 获取模型列表GET /api/models - 获取可用模型POST /api/conversations - 创建对话GET /api/conversations - 获取对话列表GET /api/conversations/{id} - 获取对话详情POST /api/chat - 发送消息在管理后台添加模型配置时,需要提供以下信息:
zhipuhttps://open.bigmodel.cn/api/paas/v4/chat/completionsqwenhttps://dashscope.aliyuncs.com/compatible-mode/v1/chat/completionsopenaihttps://api.openai.com/v1/chat/completionsdocker compose build
docker compose up -d
创建 .env 文件:
cp .env.example .env
# 编辑 .env 文件,设置实际的API密钥等配置
在CNB环境中,服务会自动通过外网地址访问:
https://*******-8000.cnb.run/https://*******-8000.cnb.run/adminmodel_services.py 中继承 BaseModelServicechat 方法ModelServiceFactory 中注册新的提供商项目使用SQLAlchemy的自动建表功能。对于生产环境,建议使用Alembic进行数据库迁移。
数据库连接失败
模型API调用失败
端口冲突
docker-compose.yml 中的端口映射MIT License