返回市场
机器学习烘焙坊

机器学习烘焙坊

作者:jettyio6 星标更新:2025-10-28

项目介绍

MLC Bakery

一个基于Python的服务,用于管理机器学习模型的来源和谱系,使用FastAPI和SQLAlchemy构建。支持Croissant元数据验证。

功能

  • 数据集管理,支持集合
  • 实体追踪
  • 活动日志
  • 来源关系追踪
  • RESTful API端点

使用Docker运行

  1. 设置环境变量: 在项目根目录中创建一个.env文件,复制示例文件:

    cp env.example .env
    
  2. 启动docker容器: 面包房依赖于Postgres数据库和Typesense进行搜索。MCP服务器通过REST调用API服务器,然后API服务器调用持久层。

    docker compose up -d
    
  3. 运行数据库迁移: 使用Alembic应用最新的数据库模式。uv run在项目的管理环境中执行命令。

    docker compose exec db psql -U postgres -c "create DATABASE mlcbakery;"
    docker compose exec api alembic upgrade head
    

访问面包房

默认情况下,API将在本地主机上可用。

  • Swagger UI: http://bakery.localhost/docs
  • ReDoc: http://bakery.localhost/redoc
  • 可流式传输的MCP HTTP: http://mcp.localhost/mcp (您可能需要将其添加到您的/etc/hosts文件中以进行本地开发)

本地运行服务器

前提条件

  • Python 3.12+
  • uv(Python包管理器)

开发步骤

  1. 克隆仓库:

    git clone git@github.com:jettyio/mlcbakery.git
    cd mlcbakery
    
  2. 安装依赖项: 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应用程序:

    # 确保您的.env文件存在,并包含DATABASE_URL
    uv run uvicorn mlcbakery.main:app --reload --host 0.0.0.0 --port  8000
    

认证

面包房设置为使用两种方法认证请求:JWT令牌和“主管理员令牌”。两者都在ENV变量(.env文件)中配置。JWT令牌和主管理员令牌都应作为“Bearer”授权头值提供。

  • ADMIN_AUTH_TOKEN:固定值,用户需要提供的令牌以获得管理员权限(对所有资源的无限制访问)。
  • JWT_VERIFICATION_STRATEGY:可信JWT令牌发行者的URL,例如Clerk。我们有一个可以使用的开发实例的Clerk。您可以通过flows.jetty.io(alpha)注册账户,或联系dev@jetty.io获取Jetty云的访问权限。

运行测试

测试配置为针对由DATABASE_URL环境变量定义的PostgreSQL数据库运行。您可以使用与开发环境相同的数据库,或者根据需要在.env文件中配置单独的测试数据库(调整连接字符串)。

# 确保DATABASE_URL已在您的环境或.env文件中设置
uv run pytest