二次元绘画创作
56.21M · 2026-02-04
2026年1月30日
设计并开发一个基于 OpenAI API 的产品瑕疵检测系统,该系统应允许用户上传产品图片,通过调用 OpenAI API 分析图片内容,识别并以文字输出图片上存在的瑕疵。具体功能需求包括:实现图片上传界面,支持常见图片格式(JPG、PNG等);集成 OpenAI API 进行图像分析,要求能够准确识别至少5种常见产品瑕疵类型(如划痕、凹陷、色差、污渍、变形等);提供清晰的检测结果展示,包括瑕疵位置标记、瑕疵类型分类及置信度评分;系统需具备错误处理机制,能够处理图片上传失败、API调用超时等异常情况;界面设计应简洁直观,响应式布局适配不同设备. 有什么需要我做抉择的可以随时问我
这个任务唯一的难点在于如何调用 OpenAI API, 以及生成的 prompt, 别的都是非常常规的业务逻辑, 所以我们重点会关注 AI 生成的 prompt 的质量. 由于是调用 OpenAI API 来检测瑕疵, 最终的效果由 OpenAI 决定, 所以评分时不会关心瑕疵检测的准确性. 所以总的来说会关注以下几部分:
你是一个专业的产品质量检测AI助手。你的任务是分析产品图片,识别其中可能存在的瑕疵和质量问题。
你需要检测以下类型的瑕疵:
划痕 (Scratch) - 表面的线性损伤或刮痕
凹陷 (Dent) - 表面的凹陷或压痕
色差 (Color Deviation) - 颜色不均匀、斑点或与预期颜色不符
污渍 (Stain) - 表面的污点、水渍或其他污染
变形 (Deformation) - 形状扭曲、弯曲或不规则
裂纹 (Crack) - 表面或结构的裂缝
气泡 (Bubble) - 材料内部或表面的气泡
毛刺 (Burr) - 边缘粗糙或毛边
请以JSON格式返回分析结果,格式如下:
{
"overallQuality": "优秀/良好/一般/较差",
"qualityScore": 0-100的数字,
"defects": [
{
"type": "瑕疵类型(中文)",
"typeEn": "瑕疵类型(英文)",
"location": "瑕疵在图片中的位置描述",
"severity": "严重程度:轻微/中等/严重",
"confidence": 0-100的置信度数字,
"description": "详细描述"
}
],
"summary": "整体检测总结,简洁描述产品状况",
"recommendations": ["改进建议1", "改进建议2"]
}
注意事项:
如果图片不是产品图片或无法识别,请在summary中说明
如果没有检测到瑕疵,defects数组为空,qualityScore应该较高
置信度表示你对该瑕疵判断的确定程度
位置描述要具体,如"左上角"、"中心偏右"、"底部边缘"等
请只返回JSON,不要包含其他文字
总体来说 prompt 质量还不错, 唯一的缺点在于, 我们的需求 prompt 里明确说了 UI 上需要展示瑕疵的位置, 但是 Claude 生成的 prompt 里没有包含这个要求, 所以在生成代码的时候, Claude 生成的 UI 上没有展示瑕疵的位置, 这是一个扣分项.
Prompt 得分: 7.
UI 现代且简洁, 配色舒适, 用了环形图展示评分, 列出了检测摘要, 还有改进建议, 唯一的缺点还是上面提到的没有展示瑕疵的位置.
UI 得分: 7.
Claude 的开发体验很少让人失望过, 对于这种简单的任务一次过是基本操作, 直接满分.
开发体验得分: 10.
Claude Opus 4.5 (In Cursor): 7.3
你是一个专业的产品质量检测专家。请仔细分析这张产品图片,识别以下类型的瑕疵:
划痕 (Scratch) - 表面线性损伤
凹陷 (Dent) - 表面凹陷变形
色差 (Color Deviation) - 颜色不均匀或异常
污渍 (Stain) - 表面污染物
变形 (Deformation) - 形状异常
裂纹 (Crack) - 表面裂缝
气泡 (Bubble) - 表面气泡缺陷
请严格按照以下JSON格式返回检测结果,不要包含任何其他文字:
{
"hasDefects": boolean,
"defects": [
{
"type": "瑕疵类型中文名",
"typeEn": "DefectTypeInEnglish",
"location": "瑕疵在图片中的位置描述,如:左上角、中部偏右、底部边缘等",
"severity": "low或medium或high",
"confidence": 0.0到1.0之间的数字,
"description": "详细描述该瑕疵的特征"
}
],
"overallQuality": "good或acceptable或poor",
"summary": "对产品整体质量的总结评估"
}
注意:
如果没有发现瑕疵,hasDefects设为false,defects为空数组
confidence表示你对该瑕疵判断的置信度
severity根据瑕疵对产品质量的影响程度判断
请仔细观察图片的每个区域
和 Cursor 里的结果差不多, 所以评分也保持一致.
Prompt 得分: 7.
这次 Claude 生成的 UI 就明显不如 Cursor 版的. 在点击分析后不仅没有展示上传的图片, 而且整体设计也比较花里胡哨, 背景色太杂, 还有 AI 特有的喜欢用 emoji.
UI 得分: 5.
Claude Code 不用多说, 一次过.
开发体验得分: 10.
Claude Opus 4.5 (In Claude Code): 6.5
"你是产品瑕疵检测助手,请只输出严格 JSON。",
"需要识别至少以下5种瑕疵类型:划痕、凹陷、色差、污渍、变形。",
"输出结构如下:",
"{",
' "summary": "一句话总结",',
' "defects": [',
" {",
' "type": "划痕|凹陷|色差|污渍|变形",',
' "confidence": 0.0-1.0,',
' "bbox": { "x": 0-1, "y": 0-1, "width": 0-1, "height": 0-1 }',
" }",
" ]",
"}",
"如果没有瑕疵,defects 为空数组,并说明 summary。",
"bbox 为归一化坐标,基于图像宽高比例,粗略框出瑕疵位置。"
这个 prompt 相比 Claude 来说明显拉了一大截. 虽说 context 不宜过长, 但是这也太简洁了.
Prompt 得分: 4
Prompt 简陋, UI 也简陋, 检测结果就只简单写出了两个字. 不过在结果图片里标注了瑕疵位置(开头提到过, 不关心结果准确度, 因为这不 Coding Agent 主要决定的).
UI 得分: 5
说实话 GPT 这块真的挺让我震惊, 因为它是唯一一个调用 OpenAI API 报错的 AI, 自己调用自己的 API 都能因为传了不存在的参数而报错也是挺离谱的, 还报错了 3 轮.
开发体验得分: 5
GPT-5.2-codex: 4.5
You are an expert Quality Assurance Inspector for product manufacturing.
Your task is to analyze product images and identify potential defects.
Focus on these specific defect types:
Scratches (划痕)
Dents (凹陷)
Discoloration (色差)
Stains (污渍)
Deformation (变形)
For each defect found, provide:
type: One of the 5 types listed above.
confidence: A score between 0 and 1 indicating your certainty.
description: A brief description of the defect.
location: Approximate center coordinates of the defect as [x, y] percentages (0-100) relative to the image width and height. Top-left is [0, 0].
Return the result as a JSON object with a "defects" array.
Example format:
{
"defects": [
{
"type": "Scratches",
"confidence": 0.95,
"description": "Visible scratch on the top surface",
"location": [50, 25]
}
]
}
If no defects are found, return {"defects": []}.
Prompt 和 Claude 比较类似, 并且说明了 location 需要是一个坐标, 加分.
Prompt 得分: 8
号称"前端严父"的 Gemini 做的 UI 也不怎么样, 过于简陋, 不过好在标注了瑕疵的位置, 并且位置是最准的一个(尽管这更多是 Openai 的功劳).
UI 得分: 6
一次过.
开发体验得分: 10
Gemini 3 Pro: 7.4
You are a quality control expert analyzing product images for defects.
Analyze the image and identify any defects from these categories:
- scratch: Surface scratches or marks
- dent: Dents or depressions
- color_difference: Color inconsistencies or variations
- stain: Stains, spots, or discolorations
- deformation: Shape deformations or warping
- crack: Cracks or fractures
- discoloration: Unusual color changes
- surface_imperfection: Other surface imperfections
For each defect found, provide:
1. Type (from the categories above)
2. Location description (e.g., "top-left corner", "center area", "edge")
3. Confidence score (0-100)
4. Description of the defect
Return your response as a JSON object with this structure:
{
"defects": [
{
"type": "scratch",
"location": "top-left corner",
"confidence": 85,
"description": "Visible scratch approximately 2cm long"
}
],
"summary": "Overall quality assessment",
"overallQuality": "good|fair|poor"
}
If no defects are found, return an empty defects array with overallQuality "good".
和 Claude 非常像, 同样很详细清楚, 同样缺少了对具体位置的要求, 只要求了模糊位置.
Prompt 得分: 7
UI 相比 Claude 就差了很多.
Analyze Another Image 按钮颜色有点突兀90% confidence 和 Stain 感觉应该互换颜色UI 得分: 5
一次过.
开发体验得分: 10
Composer-1: 6.5
你是一个专业的产品质量检测专家。请仔细分析产品图片,识别以下5种常见瑕疵类型:
划痕 (scratch) - 产品表面的线性损伤
凹陷 (dent) - 产品表面的局部下陷
色差 (color_difference) - 颜色不均匀或与标准不符
污渍 (stain) - 表面的污染或斑点
变形 (deformation) - 产品形状异常或扭曲
请以 JSON 格式返回分析结果,格式如下:
{
"defects": [
{
"type": "瑕疵类型英文",
"name": "瑕疵中文名称",
"location": "瑕疵位置描述",
"confidence": 0.0-1.0,
"description": "详细描述",
"severity": "轻微/中等/严重"
}
],
"summary": "总体评估摘要",
"totalDefects": 0
}
注意:
只返回 JSON 数据,不要其他文字说明
如果没有发现瑕疵,defects 为空数组
confidence 为 0-1 之间的浮点数
severity 只能是 "轻微"、"中等" 或 "严重"`
同样的, 没有写明 location 需要具体坐标.
Prompt 得分: 7
Kimi 生成的 UI 是 AI 味最浓的: 经典蓝紫色渐变, 经典 emoji, 经典黄色背景文字框.
UI 得分: 6
Kimi 在写代码的时候没有出什么乱子, 但是在运行的时候报了依赖找不到的错误, 应该是执行安装依赖的命令时出了什么错.
开发体验得分: 6
Kimi-K2.5: 6.5
本次挑战最大的小丑登场.
请分析这张产品图片,识别以下5种类型的瑕疵:划痕、凹陷、色差、污渍、变形。对于每个发现的瑕疵,请提供:1)瑕疵类型 2)在图片中的位置描述 3)置信度评分(0-100%)。如果未发现明显瑕疵,请回复'未发现明显瑕疵'。以JSON格式返回结果,包含字段:defects(数组,每个元素包含type、location、confidence)。
Prompt 得分: 2
没啥好说的, 根本用不了.
UI 得分: 1
结果都这样了, 开发体验也不重要了.
开发体验得分: 1
Qwen-3-coder: 1.5
| 模型 | Prompt (50%) | UI (40%) | 开发体验 (10%) | 综合评分 |
|---|---|---|---|---|
| Gemini 3 Pro | 8 | 6 | 10 | 7.4 |
| Claude Opus 4.5 (In Cursor) | 7 | 7 | 10 | 7.3 |
| Claude Opus 4.5 (In Claude Code) | 7 | 5 | 10 | 6.5 |
| Composer-1 | 7 | 5 | 10 | 6.5 |
| Kimi-K2.5 | 7 | 6 | 6 | 6.5 |
| GPT-5.2-codex | 4 | 5 | 5 | 4.5 |
| Qwen-3-coder | 2 | 1 | 1 | 1.5 |