MLC面包店
基于Python的服务,用于管理ML模型的来源和沿袭,使用FastAPI和SQLAlchemy构建。支持Croissant元数据验证。
特性
- 支持收集的数据集管理
- 实体跟踪
- 活动日志
- 来源关系跟踪
- RESTful API端点
使用Docker运行
- 设置环境变量:
创建一个 .env 通过复制示例在项目根目录中创建文件:
cp env.example .env- 启动docker容器:
面包店依靠postgres数据库和Typesense进行搜索。MCP服务器对API服务器进行REST调用,然后后者调用持久层。
docker compose up -d- 运行数据库迁移:
使用Alembic应用最新的数据库模式。 uv run 在项目的托管环境中执行命令。
docker compose exec db psql -U postgres -c "create DATABASE mlcbakery;"
docker compose exec api alembic upgrade head进入面包店
默认情况下,API将在本地主机上可用。
- Swagger用户界面:
http://bakery.localhost/docs - 重新记录:
http://bakery.localhost/redoc - 可流式MCP HTTP:
http://mcp.localhost/mcp(您可能需要将此添加到您的/etc/hosts地方发展)
运行服务器(本地)
先决条件
- Python 3.12+
- 紫外线 (Python包管理器)
开发步骤
- 克隆存储库:
git clone git@github.com:jettyio/mlcbakery.git
cd mlcbakery- 安装依赖关系:
uv 用途 pyproject.toml 管理依赖关系。如果虚拟环境不存在,它将自动创建一个虚拟环境。
curl -LsSf https://astral.sh/uv/install.sh | sh pip install poetry uvicorn
uv run poetry install --no-interaction --no-ansi --no-root --with mcp使用uvicorn启动FastAPI应用程序:
# Make sure your .env file is present for the DATABASE_URL
uv run uvicorn mlcbakery.main:app --reload --host 0.0.0.0 --port 8000认证
Bakery设置为使用两种方法对请求进行身份验证:JWT令牌和“主管理令牌”。两者都在ENV变量(.ENV文件)中配置。JWT令牌和主管理令牌都应作为“承载”授权标头值提供。
- ADMIN_AUTH_TOKEN:一个固定值,是用户需要提供的令牌,以获得管理员权限(对所有资源的无限制访问)。
- JWT_VERIFICATION_STRATEGY:受信任的JWT令牌发行者的URL,如Clerk。我们有一个Clerk的开发实例正在运行,您可以使用它。您可以通过flows.jetty.io(alpha)注册帐户,或联系dev@jetty.io访问Jetty的云。
运行测试
这些测试被配置为在PostgreSQL数据库上运行,该数据库由 DATABASE_URL 环境变量。您可以使用与开发环境相同的数据库,也可以在您的 .env 如果愿意,请使用文件(根据需要调整连接字符串)。
# Ensure DATABASE_URL is set in your environment or .env file
uv run pytest