Metadata-Version: 2.4
Name: danwen-eval
Version: 0.1.0
Summary: Danwen branded installation and CLI wrapper for MLflow
Author: 但问智能
Project-URL: Homepage, https://www.huicewang.com
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE_POLICY.md
Requires-Dist: mlflow==3.17.2
Provides-Extra: test
Requires-Dist: pytest<10,>=8; extra == "test"
Dynamic: license-file

# 但问智测 · danwen-eval

北京慧测 · 但问智能 | www.huicewang.com | 官方微信 huice666

## 本次交付的定位

这是安装与启动封装，不是MLflow源码改名或独立评测引擎。产品名但问智测，Python分发名danwen-eval，模块名danwen_eval，命令名danwen。底层依赖固定为mlflow==3.17.2。不会改变上游网页Logo、标题、路由、SDK/API、认证、存储格式或模型配置。

当前为本地构建的0.1.0交付包，**未发布PyPI、没有注册包名，也没有创建线上服务**。在公司正式发布之前，不能宣称直接执行`pip install danwen-eval`就能安装本次包。

## 1. 安装交付的wheel（当前即可使用）

建议Python3.10及以上，优先使用独立虚拟环境。请先检查交付校验文件，再安装。

```bash
python -m venv .venv
# Linux / macOS
source .venv/bin/activate
# Windows PowerShell改用：.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install ./packages/danwen_eval-0.1.0-py3-none-any.whl
danwen --version
danwen server --help
```

wheel不包含底层MLflow及其传递依赖；安装时需能够从配置的可信包源下载依赖。仅有本wheel不构成离线安装包。

## 2. 本地启动

```bash
danwen server --host 127.0.0.1 --port 5000
```

浏览器访问http://127.0.0.1:5000。服务器运行在前台，使用Ctrl+C停止。默认数据库与Artifact行为继承上游；请在固定工作目录运行，先验证再迁移实际资产。

也可以显式设置数据库与文件Artifact根（示例路径需确保可写）：

```bash
danwen server --host 127.0.0.1 --port 5000 \
  --backend-store-uri sqlite:///danwen.db \
  --default-artifact-root ./artifacts
```

模块入口等价：`python -m danwen_eval server --help`。除`danwen --help/-h`和`danwen --version`外，参数原样传递给上游CLI，包含未知参数和上游返回码。客户端仍使用真实`mlflow` SDK及`MLFLOW_TRACKING_URI`。

## 3. 远程访问与安全边界

若要让客户远程连接，需另行配置监听地址、上游allowed-hosts、反向代理TLS、认证与网络访问控制。不要在公网直接暴露未经认证的服务，也不要将allowed-hosts设置为通配符作为生产配置。公司包名不会自动提供登录、RBAC、数据隔离或企业许可校验。

## 4. 源码开发与测试

在project目录下执行：

```bash
python -m pip install -e '.[test]'
python -m pytest -q
```

## 5. 构建与发布

详见docs/发布与维护指南.md。公开PyPI、私有仓库和离线分发是不同的交付方式。发布账户、包名所有权、软件许可和生产安全需由公司确认。

## 第三方来源

底层MLflow：https://github.com/mlflow/mlflow ，Apache License 2.0。上游原名、版权与许可保留；本包不声明上游引擎为自主原创。许可证及说明随wheel中的danwen_eval/third_party交付。公司自有封装代码许可在正式对外发布前另行确认，见LICENSE_POLICY.md。

## 本次服务验证与资源提示

在Linux/Python3.13独立虚拟环境，wheel安装和14项测试通过。真实服务HTTP验证采用单worker，显式设置`MLFLOW_SERVER_ENABLE_JOB_EXECUTION=false`：首页、/version、/health均200，服务正常关闭。这只验证基础服务，不验证后台评测任务。

首次保留默认后台任务的尝试到达启动日志后进程被终止，未完成HTTP验收，终止根因未确定。低资源环境可临时用以下命令排查基础启动；这不是完整功能或生产建议：

```bash
# Linux / macOS，仅基础服务排查；禁用后台任务会影响相关异步功能
MLFLOW_SERVER_ENABLE_JOB_EXECUTION=false danwen server --host 127.0.0.1 --port 5000 --workers 1
```

Windows PowerShell需先设置`$env:MLFLOW_SERVER_ENABLE_JOB_EXECUTION="false"`，排查后移除该环境变量；Windows本次未实测。正式使用后台任务前需单独验证资源、依赖、任务执行与停止行为。封装包自身不会默认关闭后台任务，也不会自动降低上游worker数量。
