没有眼睛的AI如何教你戴美瞳?大模型感知边界与交互设计实战

没有眼睛的AI如何教你戴美瞳?大模型感知边界与交互设计实战 最近在折腾本地大模型的时候被一个很有意思的项目标题吸引了“一个没有眼睛的AI教你怎么戴美瞳”。初看像段子细想其实是一个特别好的技术思辨题——AI没有“眼睛”但为什么它能教人完成一件极度依赖“看”的事情背后牵扯到大模型的感知边界、单模态与多模态的差异、提示词工程、用户反馈闭环设计甚至是AI Agent工具链怎么补全感知能力。本文准备把这个脑洞拆透并给出一个可以本地运行的“AI美瞳指导老师”实战示例帮大家理解如何在没有多模态能力的模型上设计出“看起来会看”的交互。适合正在做AI应用开发、智能体落地或者刚入门大模型Prompt工程的读者。1. 一个“没有眼睛”的AI凭什么教你戴美瞳1.1 这不是段子而是AI感知边界的缩影先把这个标题拆开看“没有眼睛”指AI没有人类意义上的视觉感知。它不能像人一样通过眼球、视神经、大脑视觉皮层去实时观察世界。“教你怎么戴美瞳”指AI要完成一项在现实中非常依赖视觉反馈的教学任务。放在一起就很耐人寻味一个没有视觉器官的智能体居然能教人类完成“戴美瞳”这种需要看着镜子、看清镜片正反面、确认镜片是否贴到眼球的技术活。它是怎么做到的答案是AI不需要替用户“看”它只需要把“看什么、怎么看、看到之后怎么判断”这些知识用语言结构化地传递给用户再通过用户的语言反馈来补全感知闭环。这个思路其实在很多AI产品里已经存在了。比如AI健身教练不会看到你的动作但会通过你的文字描述判断“膝内扣”“腰塌了”再给你调整建议AI维修助手看不见设备但会根据你描述的故障现象逐步排查问题。所以“没有眼睛的AI教你戴美瞳”本质上是一个纯文本模型完成高感知依赖任务的典型案例很值得拆解。1.2 看懂题目里的三层技术含义从技术视角看这个标题其实包含了三层信息模型能力边界当前很多大语言模型LLM是纯文本模型没有视觉编码能力。你给它一张图它看不到只能读取图片中的文字或元数据。任务迁移能力AI可以通过训练语料中学到的“常识”和“知识”把一个需要视觉的任务转化为一个“流程 判断标准 反馈迭代”的语言任务。交互设计补偿AI虽然没有眼睛但可以通过设计良好的提问、确认、纠错机制让用户充当它的“眼睛”从而形成闭环。这就引出了本文后续要讲的所有内容。2. AI真的“看不见”吗聊聊单模态与多模态2.1 单模态大模型只有文本的世界先搞清楚一个基础概念模态Modality。在AI领域模态指数据类型比如文本、图像、音频、视频。只能处理文本的模型叫单模态文本模型。既能处理文本又能处理图像的模型叫多模态模型。很多你听说过的开源模型比如早期版本的Qwen、ChatGLM、Llama系列核心都是语言模型它们读取的是Token序列也就是把文字拆成一个个Token再送入Transformer。它们对世界的理解全部来自训练数据里的文字描述没有直接观察过物理世界。这带来一个天然限制纯文本模型没有“视觉感受野”它不知道一张照片的构图是什么样不知道一个动作做出来具体是什么姿态只能通过文字描述间接理解。但注意这个限制不等于“无法完成任务”。因为人类积累的知识大量是文本化的比如“戴美瞳时镜片边缘会形成一个碗状像一个小碟子如果边缘向外翻说明正面朝上”。这种经验被写进教程、帖子、问答之后模型通过海量语料学习就能复述并组合出非常专业的指导。2.2 多模态大模型能“看”但不等于“看见”后来出现了多模态模型比如Qwen-VL、GPT-4V系列、InternVL等。它们加了视觉编码器能把图片转换成视觉Token再送入语言模型。这样用户传一张图模型确实能“看图说话”。但这里要澄清一个概念“能看”不等于“看见”。人类“看见”是三维空间感知有远近、纵深、材质、运动轨迹的实时判断。AI“看图”是把二维像素矩阵编码成语义特征再生成文字描述。它没有眼睛的调节、没有注视点、没有触觉联动也不会因为镜片扎眼睛而感到疼痛。所以即使多模态模型能识别图片里“镜片放在指尖上”它也感受不到镜片贴到眼球时的异物感。AI始终是在处理信息而不是体验世界。2.3 为什么说AI没有“眼睛”我们日常说的“眼睛”不只是“图像传感器”还包括自动对焦与调节双眼视差带来的深度感知视线跟踪与注意力分配与身体动作形成的实时闭环反馈AI虽然可以用摄像头拍照、用视觉模型处理图片但它的感知是离散的、按需触发的不是持续的、身临其境的。所以严格意义上AI没有“眼睛”。也因此“一个没有眼睛的AI教你怎么戴美瞳”这样的标题并不是比喻失败而是准确描述了当前大模型应用的普遍状态AI是在用语言中介来弥补感知缺失。3. 戴美瞳这件小事为什么这么难教3.1 拆解戴美瞳的流程要理解AI为什么能教这个我们需要先拆解戴美瞳这件事本身。表面看是一步动作实际是多个精细操作的组合步骤操作内容依赖的感知1洗手、清洁镜片、确认护理液触觉、视觉、知识2从镜盒中取出镜片触觉、精细动作3观察镜片是否正反面颠倒视觉、经验4将镜片放在食指指尖触觉5用另一只手撑开上下眼睑本体感觉、视觉6眼睛向下看将镜片贴上眼球视觉、触觉7松开眼皮闭眼转动眼球本体感觉8确认镜片位置、有无气泡异物视觉、异物感反馈从表格能看到整个流程里视觉确实很重要但并不是唯一通道。触觉镜片贴到眼球、本体感觉眼皮撑开、异物感反馈都是人类可以有效利用的信号。3.2 AI在没有视觉的情况下靠什么完成指导AI能教这个任务核心依赖三样东西第一知识库的覆盖度。大模型训练语料里有大量美瞳佩戴教程、眼科科普、用户经验分享。模型掌握了标准步骤、常见错误、卫生注意事项相当于一个有理论知识的“纸上教练”。第二语言拆解能力。模型能把连续动作拆成分步指令并为每一步标注判断标准。比如“如何判断镜片正反面”如果镜片边缘呈碗状、中间凹陷说明正面朝上 如果边缘外翻、像一个小碟子或草帽沿说明反了。这种知识不需要视觉只需要准确的语言表达。第三交互纠错能力。AI可以通过提问补全感知。比如用户说“我分不清镜片正反”AI可以继续引导“把镜片放在指尖从侧面观察边缘是向内收还是向外翻你可以用文字描述一下。”这样用户就充当了AI的视觉传感器。3.3 没有眼睛的AI其实依赖的是“反馈闭环”这里引出一个工程上非常重要的概念反馈闭环。在自动化控制里闭环系统通过传感器测量输出并与目标值比较再调整输入。AI教戴美瞳也是一样描述初始状态 / 执行动作 ↓ 反馈执行结果用户文字描述 ↓ AI判断偏差与标准流程对比 ↓ 给出下一步纠正指令 ↓ 执行并反馈……直至完成这个闭环里“传感器”变成了用户的文字描述“控制器”变成了大模型“执行器”是用户自己。理解了这一点你就理解了为什么纯文本AI也能完成很多看起来需要视觉的任务。4. 动手实践让本地AI扮演美瞳指导老师接下来进入实战环节。我们不用复杂的框架就用本地部署的开源大模型加十几行Python代码实现一个“会教戴美瞳但看不见”的AI助手。整个过程既演示了提示词工程也演示了怎么通过对话循环让模型补全感知。4.1 场景设定与提示词先讲清楚一个原则AI能否扮演好角色很大程度取决于系统提示词System Prompt设计。我们要在提示词里明确三件事角色身份你是美瞳佩戴指导老师。能力边界你看不见用户的实际操作只能靠文字信息判断。交互策略每次只给一步操作并且要求用户反馈执行结果再进入下一步。下面是一个可直接套用的System Prompt模板你是“美瞳佩戴指导老师”一位非常有耐心的隐形眼镜佩戴教练。 你没有任何视觉能力无法看到用户的实际操作、镜片状态或佩戴环境。 因此你的工作方式是 1. 把整个佩戴流程拆成非常小的步骤每次只让用户做一件事。 2. 每一步都要告诉用户“应该如何操作”和“如何观察/感受结果”。 3. 要求用户用文字描述执行结果比如“镜片边缘是向内收还是向外翻”“有没有明显异物感”。 4. 根据用户的文字反馈判断是否有问题并给出对应的修正方法。 5. 如果用户反馈“已经戴好”再提供后续护理和摘取建议。 注意 - 不要跳过卫生步骤洗手和检查镜片是必须项。 - 如果用户表示眼部刺痛、发红或非常不适建议立即摘除并停用。 - 保持语气温和遇到描述不清时可以要求用户补充说明。这段提示词的价值在于它把“没有眼睛”这个限制变成了交互规则让模型主动向用户索取感知信息而不是假装自己能看见。4.2 用OpenAI兼容接口调用本地模型为了让示例可以本地运行我们采用一个很常见的组合Ollama 开源模型。Ollama是一个本地大模型运行工具支持OpenAI兼容接口程序写起来非常简单。先安装并启动模型。下面命令在终端执行ollama pull qwen2.5:7b ollama serve如果顺利Ollama会启动一个本地服务默认端口是11434。接着我们用openaiPython库连接它。如果还没有安装库先执行pip install openai然后新建一个Python文件ai_contact_lens.py写入下面的完整代码from openai import OpenAI # 连接本地 Ollama 服务 client OpenAI( base_urlhttp://localhost:11434/v1, api_keyollama, # 本地服务不校验key占位即可 ) SYSTEM_PROMPT 你是“美瞳佩戴指导老师”一位非常有耐心的隐形眼镜佩戴教练。 你没有任何视觉能力无法看到用户的实际操作、镜片状态或佩戴环境。 因此你的工作方式是 1. 把整个佩戴流程拆成非常小的步骤每次只让用户做一件事。 2. 每一步都要告诉用户应该如何操作以及如何观察/感受结果。 3. 要求用户用文字描述执行结果。 4. 根据用户的文字反馈判断是否有问题并给出修正方法。 5. 如果用户反馈已经戴好再提供后续护理和摘取建议。 注意 - 不要跳过卫生步骤洗手和检查镜片是必须项。 - 如果用户表示眼部刺痛、发红或非常不适建议立即摘除并停用。 - 保持语气温和遇到描述不清时可以要求用户补充说明。 def chat_once(messages, modelqwen2.5:7b): resp client.chat.completions.create( modelmodel, messagesmessages, temperature0.6, ) return resp.choices[0].message.content def main(): messages [ {role: system, content: SYSTEM_PROMPT}, {role: user, content: 我第一次戴美瞳完全没经验教教我吧。}, ] print( AI 美瞳指导老师 开始会话 ) for step in range(10): ai_reply chat_once(messages) print(f\n【AI】\n{ai_reply}) # 获取用户输入 user_input input(\n【你】) if user_input.strip() quit: break messages.append({role: assistant, content: ai_reply}) messages.append({role: user, content: user_input}) print(\n 会话结束 ) if __name__ __main__: main()运行方式python ai_contact_lens.py这段代码的逻辑很直观最初在messages里放上系统提示词和用户的初始诉求。模型返回一步指导。用户输入自己的执行反馈。把模型回复和用户反馈都追加到messages保证模型能记住上下文。循环继续最多交互10轮。这里的messages拼接方式就是前面说的对话闭环也是很多AI应用的基础形态。4.3 加入用户反馈的对话循环可能有人会问为什么每次都要把历史消息重新发给模型不是直接让模型记住吗因为目前很多大模型的接口是无状态的它每次调用都是独立计算。要让模型“记得”之前说过什么必须把之前的对话历史都塞到请求里。所以工程上会看到类似这样的消息列表[system] 角色设定 [user] 我第一次戴美瞳…… [assistant] 先洗洗手…… [user] 手洗好了 [assistant] 好的取出镜片放在食指指尖……每一轮都基于完整历史生成回复这样“AI美瞳指导老师”才能实现真正的分步引导。如果交互轮次变多消息会越来越大。工程上通常会用滑动窗口截断或做摘要压缩但这些对演示项目来说不必要你可以先了解这个概念。4.4 运行效果假设运行脚本对话大概会长这样 AI 美瞳指导老师 开始会话 【AI】 好的第一次戴美瞳不用紧张我们一步一步来。 第一步先去洗手用清水冲洗后用洗手液搓洗至少20秒最后用干净毛巾或纸巾擦干。 洗完后请告诉我你洗完手了吗手现在是干净而且干燥的状态吗 【你】手洗好了也擦干了。 【AI】 很好接下来保持双手干燥清洁不要碰手机或者其他物品。 现在取出镜片盒打开盖子。请注意不要用手直接接触护理液瓶口。 请把镜片盒平放在桌面上然后告诉我镜片盒打开了吗镜片是浮在护理液里还是贴在盒底 【你】镜片贴在盒底。 【AI】 明白了镜片贴在盒底是很常见的不要用力抠。 用指尖先轻轻拨动一下镜片让它浮起来。如果拨不动再往盒里加一点护理液让镜片浸透后再轻轻拨起。 现在告诉我你感觉镜片边缘是柔软的还是偏硬通过这种“一步一反馈”的交互方式AI虽然看不见但能精准判断用户状态并给出针对性调整。这就是“没有眼睛”的AI完成高感知依赖任务的典型过程。5. 从“没有眼睛”到“看得见”多模态与智能体的工程升级5.1 给AI装上“眼睛”多模态识别如果不想靠用户文字描述也可以给AI接上“眼睛”。最常用的方案是引入多模态模型比如让AI识别用户拍的镜片照片判断正反面。流程会变成这样用户上传一张镜片在指尖上的照片。多模态模型通过视觉编码器分析镜片边缘形状。模型输出“边缘向内收应该是正面”或“边缘外翻可能反了”。这种方式确实比纯文字反馈更直接但需要注意两点多模态模型对细粒度边缘形态的判断不一定可靠真实镜片是透明的拍照角度、光线都会影响识别结果。在眼睛这么敏感的部位AI识别不该作为安全判断的唯一依据。更稳妥的做法是AI给出观察提示用户自行确认或者咨询专业验光师。5.2 用AI Agent扩展更多感知能力再进一步可以使用AI Agent 工具的方式不给AI“眼睛”但给它“工具”。这个概念在当下也很火AI Agent不是单纯聊天而是能调用工具完成任务的智能体。比如可以设计一个Agent它具备以下工具query_steps_db()查询标准佩戴步骤。ask_vision_model(image_path)调用视觉模型识别照片。search_question(text)检索相关知识库如“镜片反了有什么感觉”。send_feedback(user_id, message)把指导消息推送给用户。通过工具调用AI虽然自己没有眼睛但它可以调用视觉模型、知识库、数据库形成更完整的感知和执行链路。简化后的Python调用逻辑def ai_guide_with_tools(user_text: str, image_path: str None): if image_path: vision_result ask_vision_model(image_path) return f结合图片识别结果{vision_result}接下来请你…… return ask_local_llm(user_text)这种设计思路可以用在很多场景不只是美瞳指导。比如AI售后客服、AI健身教练、AI维修助手本质上都是“模型 工具 反馈闭环”。5.3 工程上如何落地如果要把这套东西做成产品工程上要考虑的不只是提示词还包括模型选型纯文本模型成本低、速度快适合文字指导多模态模型更重适合需要图像判断的场景。知识库建设把标准流程、常见错误、安全警告整理成结构化数据必要时用RAG检索增强生成让模型引用准确资料。安全风控涉及眼睛、医疗器械等高危场景时必须设置兜底话术比如“出现异常请立刻停止并就医”绝不能给用户造成风险。日志与复盘记录每轮对话持续分析用户卡在哪个步骤反过来优化提示词和知识库。6. 常见问题与排查思路在实际跑这个示例或者开发类似AI应用时经常会遇到一些问题我整理成下面这张排查表问题现象常见原因解决思路本地模型回复慢模型参数量大 CPU推理换小模型或启用GPU加速也可以减少上下文长度AI一次性输出太多步骤系统提示词没限制“每次只给一步”在System Prompt里明确“每次只输出一步等用户反馈”AI假装自己能看到画面模型幻觉提示词约束不够强调“你看不见”并要求用户描述执行结果用户反馈描述不清楚提示词里没有给出“观察什么”每一步都补充观察标准和描述示例traceback报连接错误Ollama服务没启动或端口不对检查ollama serve是否运行确认base_url端口模型回答偏离专业模型没有足够知识或需要RAG补充知识库用检索增强的方式注入准确资料多模态识别镜片不准确图片光线、角度、透明材质影响不作为唯一判断只作为辅助参考要求用户二次确认排查时最常用的思路是先看提示词再看输入数据最后看模型能力。大部分问题不是模型不够强而是交互设计没有把用户反馈和模型输出对齐。7. 最佳实践与工程建议7.1 提示词要写清楚“反馈机制”这是本文最核心的经验。设计AI助手时不能只告诉它“你是专家”还要告诉它“你缺乏什么感知、应该通过什么方式补全”。拿美瞳指导来说好的系统提示词至少包含四要素角色定位你是谁。能力边界你不能做什么。交互策略你每次怎么提问、要不要等反馈。安全兜底什么情况下必须警告用户。只要这四要素清晰纯文本模型也能表现得像“长了眼睛”一样专业。7.2 知识库与安全边界在健康、医疗、安全类场景绝不能完全依赖大模型的训练记忆。训练数据可能过时也可能被错误描述污染。工程上建议把官方指南、专业手册纳入知识库。重要结论让模型引用来源至少不要凭空生成具体医疗建议。对“摘除镜片”“就医处理”等安全操作设计固定触发词和最高优先级话术。涉及用户安全时宁可让AI啰嗦一点也不能为了“显得专业”而给出不确定的建议。7.3 什么时候该用多模态选择纯文本还是多模态核心要看任务是否真的需要图像证据。如果用户能准确描述状态纯文本模型就够成本低、延迟低。如果判断依据是视觉细节比如镜片正反面、动作角度、画面质量问题才值得引入多模态模型。不要一开始就上大中型多模态模型先跑通单模态闭环再按需升级这是更稳妥的工程路径。7.4 不要迷信AI“看见”最后想强调一点AI的“看见”和人类的“看见”是两回事。即使模型能识别图片、视频它的感知仍然是被动的、离散的、无体验的。在工程上这意味着你对AI的可靠性预期要合理。关键判断要有人的确认环节。系统设计要允许失败要设计降级路径。比如AI可能误判镜片正反所以在交互设计里要提示用户“如果感觉镜片边缘不舒服可以摘下来重新检查正反面。”这就是用人类的真实感知去兜底AI的视觉幻觉。8. 总结与下一步这个“一个没有眼睛的AI教你怎么戴美瞳”的项目看起来是玩笑其实是一道很完整的AI应用题。它需要我们理解大模型的模态边界、设计合理的提示词、构造反馈闭环还要在必要的时候引入多模态和Agent工具链。实操下来我最大的感受是很多时候限制AI发挥的不是模型能力不够而是我们没有把“AI能做什么、不能做什么、怎么补全”想清楚。如果你也想练手可以从今天这个本地示例开始先把纯文本的“戴美瞳指导老师”跑通再慢慢加上图片识别、知识库、Agent工具最后尝试迁移到其他专业指导场景。比如AI健身动作纠正、AI化妆指导、AI组装家具助手逻辑都是一样的。整个方向很有意思也足够深值得继续折腾。