README
🚀 MLC Bakery
MLC Bakery 是一个基于 Python 的服务,用于管理机器学习(ML)模型的血统和谱系。它借助 FastAPI 和 SQLAlchemy 构建,为用户提供了便捷的 RESTful API 和 Web 界面,方便查看和管理 ML 模型的血统信息。
🚀 快速开始
MLC Bakery 是一个基于 Python 的服务,用于管理机器学习模型的血统和谱系。它使用 FastAPI 和 SQLAlchemy 构建,提供了 RESTful API 和 Web 界面来查看和管理 ML 模型的血统信息。
安装与运行
快速开始
-
克隆仓库:
git clone https://github.com/yourusername/mlc-bakery.git cd mlt-bakery -
创建虚拟环境并安装依赖项:
python -m venv env source env/bin/activate # 对于 Windows 使用 `env\Scripts\activate` pip install -r requirements.txt -
配置环境变量: 创建一个
.env文件,并添加以下内容:DB_URL=postgresql://postgres:password@localhost/mlc_bakery ADMIN_AUTH_TOKEN=your_secure_token_here -
启动服务:
uvicorn app.main:app --reload -
访问 Web 界面: 打开浏览器,访问
http://localhost:8000。
数据库迁移
使用 Alembic 进行数据库迁移:
-
初始化 Alembic:
alembic init migrations -
添加模型到迁移文件: 修改
migrations/versions/[timestamp]_[name].py文件,将您的 ML 模型添加到ml_models表中。 -
提交迁移:
alembic revision --autogenerate -m "add ml models" alembic upgrade head
认证与授权
-
创建一个 JWT 加密密钥: 在
.env文件中添加:SECRET_KEY=your_jwt_secret_key_here -
在 API 中使用 JWT 进行身份验证: 修改
app/security.py文件,实现 JWT 解析和用户认证。 -
保护敏感端点: 使用
Depends和security.get_current_user装饰器来保护需要认证的端点。
配置
环境变量
以下是项目所需的环境变量:
| 属性 | 详情 |
|------|------|
| DB_URL | 数据库连接 URL,格式为 postgresql://username:password@host/database_name。 |
| SECRET_KEY | JWT 加密密钥。 |
| ADMIN_AUTH_TOKEN | 管理员使用的认证令牌。 |
日志与监控
- 使用日志记录库(如 SQLAlchemy 或 FastAPI 的默认日志记录)进行日志记录。
- 配置日志文件,将日志输出到文件或控制台。
部署 (Docker Compose)
快速开始
-
创建 Docker 网络:
docker network create caddy-network -
配置环境变量: 在
.env文件中添加ADMIN_AUTH_TOKEN和其他必要配置。 -
启动服务:
docker-compose up --build -d -
访问服务:
- API:
http://localhost/docs - Streamlit 界面:
http://streamlit.localhost - MCP 服务器:
http://mcp.localhost
- API:
数据库管理
-
添加或删除数据库:
docker compose exec db psql -U postgres -c "drop DATABASE mlcbakery;" docker compose exec db psql -U postgres -c "create DATABASE mlcbakery;" -
执行数据库迁移:
docker compose exec api alembic -c alembic.ini upgrade heads
✨ 主要特性
- RESTful API:提供创建、读取、更新和删除 (CRUD) 操作来管理 ML 模型。
- Web 界面:通过 Streamlit 提供直观的 Web 界面来查看和管理模型的血统信息。
- Docker 支持:提供 Docker Compose 文件,方便部署到生产环境。
- 认证与授权:使用 JWT 进行身份验证,确保 API 安全。
📄 许可证
MIT License
重要提示
⚠️ 重要提示
ADMIN_AUTH_TOKEN必须配置管理员令牌,用于保护敏感端点。- Docker 网络部署时需要创建
caddy-network网络以确保服务之间通信正常。
通过以上步骤,您可以轻松地安装、配置和部署 MLC Bakery 服务。
微信扫一扫