一个基于Python的服务,用于管理机器学习模型的来源和谱系,使用FastAPI和SQLAlchemy构建。支持Croissant元数据验证。
设置环境变量:
在项目根目录中创建一个.env文件,复制示例文件:
cp env.example .env
启动docker容器: 面包房依赖于Postgres数据库和Typesense进行搜索。MCP服务器通过REST调用API服务器,然后API服务器调用持久层。
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将在本地主机上可用。
http://bakery.localhost/docshttp://bakery.localhost/redochttp://mcp.localhost/mcp (您可能需要将其添加到您的/etc/hosts文件中以进行本地开发)克隆仓库:
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应用程序:
# 确保您的.env文件存在,并包含DATABASE_URL
uv run uvicorn mlcbakery.main:app --reload --host 0.0.0.0 --port 8000
面包房设置为使用两种方法认证请求:JWT令牌和“主管理员令牌”。两者都在ENV变量(.env文件)中配置。JWT令牌和主管理员令牌都应作为“Bearer”授权头值提供。
测试配置为针对由DATABASE_URL环境变量定义的PostgreSQL数据库运行。您可以使用与开发环境相同的数据库,或者根据需要在.env文件中配置单独的测试数据库(调整连接字符串)。
# 确保DATABASE_URL已在您的环境或.env文件中设置
uv run pytest