ML模型溯源管理服务

一个基于Python的ML模型溯源和谱系管理服务,支持数据集管理、实体跟踪、活动日志记录和溯源关系跟踪,提供RESTful API端点。

  • by jettyio
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 jettyio/mlcbakery

使用说明

MLC面包店

基于Python的服务,用于管理ML模型的来源和沿袭,使用FastAPI和SQLAlchemy构建。支持Croissant元数据验证。

特性

  • 支持收集的数据集管理
  • 实体跟踪
  • 活动日志
  • 来源关系跟踪
  • RESTful API端点

使用Docker运行

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

    cp env.example .env
    
  2. 启动docker容器: 面包店依靠postgres数据库和Typesense进行搜索。MCP服务器对API服务器进行REST调用,然后后者调用持久层。

    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用户界面: http://bakery.localhost/docs
  • 重新记录: http://bakery.localhost/redoc
  • 可流式MCP HTTP: http://mcp.localhost/mcp (您可能需要将此添加到您的 /etc/hosts 地方发展)

运行服务器(本地)

先决条件

  • Python 3.12+
  • 紫外线 (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应用程序:

# 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