173、多模态大模型工具调用
昨天半夜被线上告警拽起来,一看日志,多模态模型把一张产品截图里的“价格”识别成了“促销截止日期”,然后工具调用直接传了个错误参数给订单系统。这不是模型蠢,是我在工具调用那层没做模态对齐校验。这类问题在纯文本时代根本不会遇到,一旦输入变成图像、音频、视频,工具调用的坑就全冒出来了。
先交代一下背景。我们团队在做一个智能客服质检系统,用户上传聊天截图,模型需要调用OCR工具、情感分析工具、工单查询工具。最初实现很简单:把图片base64塞给多模态模型,提示词里写“根据图片内容调用工具”,模型直接返回一个JSON,里面是工具名和参数。跑通demo的时候一切正常,一上灰度就翻车。翻车点集中在三类:一是模型把图片里的视觉元素当成结构化数据直接传给工具;二是工具返回值是纯文本,模型在下一次调用时丢失了视觉上下文,导致参数张冠李戴;三是多模态模型对“图片里的按钮”和“真实API的字段”概念混淆,明明图片里有个“确认”按钮,它愣是调用了一个叫“confirmOrder”的工具。
先说第一个坑,视觉元素直接当参数。你看这个调用:
# 这里踩过坑,别直接把OCR结果当参数传tools=[{