ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI钱币鉴定落地实践:大模型+Agent工作流如何辅助识别与信息结构化

AI钱币鉴定落地实践:大模型+Agent工作流如何辅助识别与信息结构化 最近把 Claude 的 Agent 能力跟智谱 GLM-5.1 大模型接到一起做了一个 AI 钱币鉴定的体验 Demo。先说结论这个方向能跑通但它不等于专业鉴定。它真正擅长的是把“这张钱币图片里有什么”转成结构化信息再结合资料库给出参考结果帮你把查目录、对版别、估行情的重复劳动省掉。这篇文章适合两类人。一类是钱币收藏新手想知道 AI 能不能帮自己快速认识手里的币另一类是正在做图像识别、Agent 工作流的开发者想找一个比较完整的落地样例。最值得关注的点不是某个模型“强不强”而是完整链路怎么设计图片输入、视觉理解、知识库检索、结构化输出、失败兜底。先说清楚一件事我用它跑通的是“辅助鉴定”不是“权威鉴定”。真伪、品相评分、精确估价这些事静态图片本身就给不了足够证据。下面按实际落地顺序拆一遍。1. AI 钱币鉴定系统到底在解决什么1.1 传统流程里最花时间的不是“看”而是“查”一枚普通古钱币或者老银元拿到手里新手通常要判断几件事品种是什么例如“光绪元宝”“袁大头”“乾隆通宝”。年号、面值、材质、直径、重量。属于哪个版别例如“大字版”“小字版”“甘肃版”。品相如何有没有明显磕碰、划痕、包浆。当前市场参考价大概在什么区间。这里面最耗时的不是第一眼“看”而是后面反复“查”。新手不认识版别就要去翻目录、问人、搜图对比。老手虽然认得多但遇到冷门品种也要翻资料。AI 鉴定的价值就在这里先用多模态大模型读出币面可观察的信息再让 Agent 去资料库里找候选品种最后把结果整理成一张可以快速阅读的卡片。它替代的是“初步资料检索”不是“最终拍板”。1.2 这套 Demo 的协作方式这个 Demo 里我用了两个角色智谱 GLM-5.1 大模型负责视觉理解。它看钱币图片描述币面文字、年号、图案、面值和材质特征。Claude 的 Agent 能力负责调度和判断。它拿到文字描述后提取关键实体调用知识库工具最后汇总输出。为什么不用一个模型一步到位直接给结论因为多模态模型直接回答“这是什么币、值多少钱”时很容易把“看起来像”讲成“一定是”。幻觉来源很多图片不清晰、特征不明显、训练数据里同品种图片太多。所以更稳的做法是先让视觉模型输出“可见事实”再做实体抽取再查资料库最后才生成鉴定卡片。每一层都能检查和干预。1.3 实际能力边界这套方案能做的事情我实测下来大概是这样能力说明常见币种识别对清晰、常见品种准确率较高版别候选推荐能从知识库给出多个候选按相似度排序信息整理把散乱描述变成统一字段方便录入批量初筛对大量图片做第一轮分类适合目录整理价格参考只能给区间且需要人工确认行情来源真伪判断对高仿、改刻、修补币基本不可靠品相评分只能描述明显缺陷不能替代评级标准开头不要期待过高。真正跑起来后你会发现最有用的不是“它能准确说出这是哪一枚币”而是“它能帮你把候选范围从几千种缩小到两三种”。2. 跑通 Demo 前需要准备哪些条件2.1 模型接入方式API 优先本地可作替换智谱 GLM-5.1 大模型我直接走官方开放平台 API这样最快不用先折腾显卡和依赖。配套的 Claude Agent 也走官方 SDK或者用支持相同调用方式的模型网关。简单说你的代码只需要保存两个 API Key一个给视觉大模型一个给 Agent 编排模型。如果你不希望图片出本地环境可以改用本地部署的开源多模态模型例如用 Ollama 拉起支持视觉能力的模型。这样图片隐私性更好不用传外部接口。但代价是显存要求高部署和调优时间长而且不同小模型对币面小字的识别能力差距很大。新手不要一开始就钻进本地部署先让云端 API 把流程跑通更重要。2.2 图片素材和知识库图片是这套系统的生命线。我建议准备至少正反面两张照片放在同一个编号目录下。拍摄要求不复杂但很关键自然光或均匀灯光不要强反光。背景用纯色不要放一堆其他钱币。不要手指捏着币面会遮挡图案。不要过度修图不要锐化拉满。图片长边建议在 1024 到 1536 像素之间。知识库可以先用 CSV 维护字段至少包含名称、年份、面值、材质、直径、重量、参考价、备注。数据量小的几十条也能玩但要真正好用至少需要覆盖你常接触的品种。name,year,denomination,material,diameter,weight,price_range,note 光绪元宝户部当制钱十文,1903-1906,十文,铜,28,7.2,30-150,常见版 袁大头民国三年一元,1914,一元,银,39,26.6,900-1500,以品相为准这个 CSV 后面会被 Agent 当作查询工具的数据源。2.3 最小工程结构我建议把项目拆成下面这样而不是全部写在一个脚本里coin_agent/ ├── images/ │ ├── 001_obv.jpg │ └── 001_rev.jpg ├── knowledge/ │ └── coin_catalog.csv ├── output/ │ ├── result.jsonl │ └── report.md ├── main.py ├── config.json └── requirements.txtimages 放输入图片knowledge 放知识库output 放每次运行结果。这样做的理由是批量跑的时候更好排查哪张图失败、哪条结果有问题、哪个阶段的输出异常都能按目录定位。3. 核心流程拆解Agent 怎么把钱币图片变成鉴定卡3.1 先让视觉模型“只描述不判断”这个 Demo 最关键的步骤不是最后那句“它可能是某某币”而是最开始让视觉模型老实描述。我用的 Prompt 大概是这样的请仔细观察这张钱币图片列出你确定的可见特征 1. 币面上的文字、年号、面值 2. 主要图案例如龙、嘉禾、人像、建筑物 3. 材质观感例如银白色、铜黄色、包浆颜色 4. 正面和反面的布局 5. 任何明显缺陷例如磕碰、划痕、穿孔。 只描述你能看到的内容不要判断真伪不要估价不要推测版本。这样写的目的是把“观察”和“判断”分开。视觉模型只负责看不负责猜。观察越干净后面的 Agent 就越不容易被带偏。3.2 Agent 负责抽取实体和查资料视觉模型返回文字描述后Claude Agent 要做的第一件事是抽取结构化实体。例如从“正面写着光绪元宝背面有龙纹边缘有英文”里提取出文字关键词光绪元宝面值十文或一元图案龙纹可能材质铜或银然后是查知识库。Agent 通过工具函数读取 coin_catalog.csv做关键词匹配和筛选。比如“光绪元宝”选中一批数据“铜”再筛掉一批“龙纹”再筛一轮最后留下候选列表。整个流程用伪代码表示就是这样def identify_coin(image_path): # 第一步视觉模型生成可观察描述 observation glm_vision_chat( image_path, prompt只描述可见特征不要判断真伪 ) # 第二步Agent 抽取实体 facts claude_agent_extract_entities(observation) # 第三步查知识库 candidates search_coin_db( catalogknowledge/coin_catalog.csv, conditionsfacts ) # 第四步Agent 汇总鉴定卡 result claude_agent_generate_card( observationobservation, candidatescandidates ) return result这只是一个示意不是完整可运行代码。你落地时可以直接用智谱和 Claude 的官方 SDK把每一步封装成独立函数方便日志记录和错误处理。3.3 生成结构化的鉴定卡最后的输出我推荐用 JSON方便程序读取也方便后续导出 Excel 或生成报告。{ id: 001, observation: 正面有光绪元宝四字背面有龙纹边缘有英文铜色明显。, possible_names: [ 光绪元宝户部当制钱十文 ], year_range: 1903-1906, denomination: 十文, material: 铜, confidence: 中, price_range: 30-150, need_recheck: [边齿, 重量, 直径] }字段里最值得关注的是confidence和need_recheck。confidence表示知识库匹配和特征确认的程度need_recheck表示哪些信息必须人工再看。这样设计的目的就是不让 AI 的输出显得绝对正确。4. 关键参数和判断标准4.1 图片预处理参数图片不是越大越好。API 请求有体积限制大图传输慢还可能超出模型输入尺寸。小图又看不清年号和小字。我一般先把图片长边压缩到 1024 到 1536 像素JPEG 质量控制在 85 左右。如果一枚币上有特别小的暗记再单独裁切局部图传给模型而不是直接传整张高分辨率原图。还要注意方向问题。有些手机拍的图自带 EXIF 旋转信息直接读二进制给模型可能会出现图片被转置的情况。建议先统一转成标准方向再保存或上传。4.2 大模型推理参数鉴定任务和聊天任务不一样不需要太多创造性。参数据我实测可以这样设置参数建议值原因temperature0.1 ~ 0.3温度越低回答越稳定减少编造top_p0.9和低温度配合保留少量多样性max_tokens800 ~ 1200输出鉴定卡足够太长反而难解析timeout60 秒图片请求比纯文本慢要给够时间retry2 ~ 3 次应对网络抖动和临时限流Agent 的 system prompt 也要收窄。不要写“你是资深钱币专家”因为这会诱导模型给出超出证据的判断。更好的写法是你是一个钱币鉴定流程的调度器。你只负责从视觉模型描述中提取事实、查询知识库、生成结构化报告。没有足够证据时明确标注“待人工复核”。4.3 并发和重试不要一上来就开最大并发。先单条任务跑一遍确认输入、输出、日志都正常。然后并发 2 到 3 条观察有没有限流或超时。再根据模型服务商配额往上加。失败重试用指数退避例如第一次等 2 秒第二次等 4 秒第三次等 8 秒。连续失败就别再重试了把任务写入失败队列等人工检查。4.4 判断标准什么样的结果算成功不是模型不报错就算成功而是视觉模型描述和图片内容一致没有明显幻觉。Agent 抽取的字段能被知识库检索到。候选列表里包含正确品种或者至少没有完全离谱的选项。输出 JSON 能被正常解析。低置信度结果明确标出待复核项。如果上面五条都满足这套流程才算跑通。5. 单条任务跑通之后再批量鉴定5.1 文件命名和输入清单批量处理前先把图片命名规范好。我推荐用“编号_面别”的方式001_obv.jpg 001_rev.jpg 002_obv.jpg 002_rev.jpgobv表示正面rev表示背面。如果你有一批现代纪念币还需要记录材质和重量信息建议再建一个输入清单id,obverse,reverse,known_year,known_weight,remark 001,images/001_obv.jpg,images/001_rev.jpg,2023,,纪念币 002,images/002_obv.jpg,images/002_rev.jpg,,26.6,银元命名规范的原因很简单批量任务要把一枚币的正反面合并到同一条结果里没有规范命名程序没办法自动配对。5.2 任务队列和断点续跑批量任务不要把所有图片一次读进内存也不要一个 for 循环跑到底。更稳的做法是维护一个任务状态列表每个任务记录输入路径当前状态待处理、处理中、成功、失败模型返回结果错误信息耗时每次处理完一条就把结果追加写入output/result.jsonl。这样即使任务中断已经处理的结果也不会丢。下次启动时读取已完成的 ID只处理未完成的即可。失败任务单独写进output/failed.json不要混在成功结果里。我见过很多批量任务最后输出一堆空文件就是因为失败和数据丢失没有被分开处理。5.3 输出报告和人工复核批量跑完后可以生成两种输出JSONL给程序进一步处理。Markdown/HTML 报告给人快速阅读。报告里一定要有“置信度低”的分组。我的建议是高置信度结果直接归档中等置信度结果人工抽查低置信度结果全部人工复核。对于钱币这种有收藏价值的物品不要直接用系统结果做交易决策。5.4 批量任务常见问题批量阶段最容易出的问题不是模型判断错而是数据链错。比如图片路径写错、正反面配对错、知识库字段类型不一致、CSV 编码乱码。先跑两条验证整条链再放开全量能省很多排查时间。6. 常见报错和排查顺序6.1 典型问题对照表现象优先检查常见处理图片上传失败文件大小、格式、路径压缩到 10MB 以内转成 JPEG/PNG模型返回空图片是否过暗、过模糊提高分辨率或裁切局部实体提取不准Prompt 不够具体让模型先列观察项再抽字段知识库零命中关键词不一致检查“光绪元宝”和“光绪”等别名Agent 一直重试API Key、额度、超时单独测试工具调用看返回错误码JSON 解析失败模型输出了多余解释加 JSON Schema要求只输出 JSON本地模型 OOM显存不足降低图片尺寸换小参数模型开量化6.2 系统化排查链路遇到问题先别怀疑模型能力按下面顺序查先直接调用视觉模型输入单张图片确认能生成正确描述。再单独跑 Agent 实体抽取确认字段完整。然后查知识库关键词确认能匹配到候选。最后才整体联调看是不是流程衔接问题。多数“AI 鉴定不准”的案例最后都卡在图片质量或知识库数据上而不是模型本身。6.3 本地部署大模型替代时的特别坑如果换成本地部署的开源多模态模型还会有两个额外问题OOM。常见表现是程序启动后跑几条任务突然退出或者推理速度越来越慢。小字识别弱。币面年号往往很小本地小模型容易看错。解决思路是降低图片输入尺寸限制 batch size不要多任务并发优先用针对中文优化的小参数视觉模型。即便如此本地模型的整体效果也可能弱于云端大模型需要重新评估精度。7. 这些边界会让你更清楚 AI 鉴定能做到哪一步7.1 真伪鉴定不能只靠静态图片钱币鉴定里最难的不是认品种而是分真伪。高仿币可能图案、文字、重量都接近真品。包浆可以是人工做旧边齿可以用机器复刻这些细节在普通照片上很难体现。如果只是拿手机随手拍一张图AI 很可能把一枚高仿币识别成真品对应的品种然后给出参考价。这个风险必须在前端提示。我的做法是在输出卡片上固定加一行本结果仅为图像辅助参考不能作为真伪鉴定依据。如需交易或评级请交由专业机构实物检测。7.2 品相和估价要谨慎估价是另一个容易翻车的地方。同一枚币MS65 和 XF45 的价格可能差好几倍。AI 从图片上能看出明显划痕、磕碰、清洗痕迹但无法准确判断压力、光泽、包浆状态。所以估价字段永远用区间并且加上“行情变化快具体以成交为准”。不要让用户觉得 AI 报出来的数字就是市场价。7.3 从 Demo 到生产还需要补什么你如果想把这个 Demo 做成长期可用的工具不能只优化模型还要补这些工程项标准化拍摄环境减少图片质量波动。定期更新知识库加入新发行的币种和行情变化。增加人工复核队列低置信度结果强制走人工。记录每次模型的输入、输出、耗时、错误信息方便复盘。注意数据合规不要未经授权处理他人收藏品图片也不要采集不可信来源的数据做训练。我个人的建议是先把这个方案当辅助工具用。真正落地时最该盯住的不是模型有多强而是输入图片质量、知识库覆盖率和失败重试机制。踩过几次之后你会明显感觉到很多问题不是 AI 不行是图和资料没准备好。把这两件事做扎实AI 钱币鉴定才能变成一个稳定可用的初筛工具。
返回列表