最终成果:列清主体、用途、比例和禁用项,发现缺项后先确认再创作。
这是一门可离线完成的Python实践课,使用标准库,不需要模型密钥。例子均为教学虚构,不是现实业务数据或真实效果证据。
1. 先看成果
输入示例:
{
"subject": "纸杯",
"purpose": "课程封面",
"ratio": "16:9",
"avoid": []
}
预期输出:
{
"subject": "纸杯",
"purpose": "课程封面",
"ratio": "16:9",
"avoid": [],
"missing": []
}
2. 准备与首次运行
准备Python 3.10或更高版本。完整解压项目包,在包含verify.py的文件夹打开终端。Windows可用py -3代替python,macOS/Linux可用python3。
python --version
python verify.py
起始代码尚未实现,首次看到7项FAIL和NotImplementedError属于正常起点;语法或导入错误会给中文说明且不生成报告。先提交这份失败报告也可以。
3. 输入输出契约
输入subject、purpose可为null或最多500字符字符串,缺省null;字符串去首尾空白,空字符串转null。ratio可为null、1:1、16:9、9:16,缺省null,其他值抛ValueError。avoid为最多20个非空字符串,每项最多100字符,去首尾空白后按首次出现顺序去重。输出subject、purpose、ratio、avoid、missing;missing按subject、purpose、ratio顺序列缺项。本工具整理需求,不生成图片、不验证某生成器支持指定参数。
solve(payload)接收一个JSON对象并返回上述JSON结果。任何契约规定的结构或类型错误都应抛ValueError,不返回貌似成功的部分结果。
4. 三段实现与分层提示
1. 写清需求
保留主体与用途,未知字段明确列出。
关注用例:complete、missing、blank
-
第1层:没有说用途时能直接当作海报吗?
-
第2层:缺失信息用null并进入missing。
-
第3层:按固定字段顺序检查,不自动补造用途。
2. 比例与约束
验证比例并保留禁用项。
关注用例:ratio、avoid
-
第1层:需求比例与实际工具参数是同一回事吗?
-
第2层:这里只接受三种教学比例,实际工具支持范围另行核对。
-
第3层:校验比例,avoid先去空白再去重。
3. 形成核对清单
处理重复禁用项与空输入。
关注用例:duplicate、empty
-
第1层:同一个禁用项重复三次能提高质量吗?
-
第2层:保持首次顺序,重复项只保留一次。
-
第3层:用集合判断是否出现过,用列表保留首次顺序。
先写下自己的预期,再展开一层提示并修改。verify.py默认展示字段差异,仍卡住可加--explain查看诊断。
5. 用本地网页检查自己的输入
python run.py
打开终端显示的本地地址(默认http://127.0.0.1:8870),修改输入并运行,保存输出。端口已占用可运行python run.py --port 8871;不需要停止其他程序。
参考演示可运行python run.py --reference,参考输出不表示你自己的实现通过。
6. 组合挑战与评分
python verify.py --suite challenge --report challenge-report.json
4项挑战各25分,输入、错误类型及所有输出字段符合约定才得该项分数。完整用例与评分依据在project.json的learning.cases中。只表示这组输出符合约定,不证明独立能力。
-
文字字段去空白:只清除两端空白。
-
显式未知:null不变成字符串。
-
禁用项按原文区分:不擅自改变禁用项大小写。
-
拒绝未约定比例:未知比例不能静默改为默认值,抛ValueError。
7. 自主扩展与提交
增加一条可观察的构图或文字可读性要求,用站内已有案例核对,不生成新图片;记录一项满足与一项待修改。
至少自建一个测试,先写预期,再运行并保存实际结果。在项目页上传报告,填写两道解释题,展开自主扩展记录,填写需求、JSON输入/预期/实际及修订说明。扩展内容不自动算分,申请人工评价后由人核对。
-
解释题:为什么简报字段完整仍不能证明图片合格?
-
解释题:自建创作需求和核对标准,说明你怎样用已有作品检查它。
报告默认私有;申请后管理员才可看该次报告、项目链接、复盘与扩展证据,可撤回共享。服务器复核报告输出,不执行上传代码、不访问作品链接。修订时保留失败与新报告,不覆盖旧记录。
8. 局限与后续
本项目训练上述确定性规则,不调用模型,不代表完整业务系统。如需以后接入模型,先保留基线,单独明确成本与调用授权、构造错误输出并人工核对,不把本站参考结果当作模型效果。