| name | vision |
| description | 识别图片内容。当用户发送图片、截图、报错图,或要求分析某张本地图片时使用。先定位图片文件路径,再运行 vision.py 脚本获取文字描述。 |
识图技能
当主模型不支持直接读取图片时,图片不会进入对话上下文,但用户消息中通常会附带图片的本地路径(形如 C:/Users/.../codex-clipboard-*.png 或附件路径)。
配置(首次使用)
- 复制
templates/.env.example 为技能目录下的 .env(脚本启动时自动加载,无需额外依赖),填入:
VISION_API_URL:视觉模型 OpenAI 兼容完整接口地址(含路径,如 https://api.example.com/v1/chat/completions)
VISION_MODEL:模型名
VISION_API_KEY:API Key
也可以直接导出同名环境变量;环境变量优先级高于 .env 文件(便于 CI/容器注入)。
- 在技能目录下运行
python scripts/vision.py --check 自检,确认配置生效。
本技能不硬编码任何模型地址、模型名或密钥,全部通过环境变量注入。
使用步骤
-
从用户消息中找到图片路径;如果路径不明确,先查找最近的剪贴板截图:
Get-ChildItem $env:TEMP\codex-clipboard-*.png | Sort-Object LastWriteTime -Descending | Select-Object -First 3 FullName,Length
-
运行脚本识别图片:
cd <技能目录>; python scripts/vision.py "<图片绝对路径>" "(可选)具体识图要求"
-
脚本输出图片的文字描述(可能较长),基于描述回答用户的问题;描述中的重要文字、报错信息要原样转述。
Windows PowerShell 乱码处理
脚本已自动区分“交互终端”和“管道/重定向”:
- 交互终端(Windows Terminal / 新版 PowerShell 7):脚本保持 Python 默认控制台编码,中文正常显示,无需额外设置。
- 管道 / 重定向(含 Codex 等工具调用):脚本自动把 stdout 和 stderr 强制为 UTF-8,输出应保持中文正常。
如果仍出现乱码(例如旧版控制台代码页为 936),先执行下面一行再运行脚本:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $OutputEncoding = [System.Text.Encoding]::UTF8; $env:PYTHONIOENCODING = 'utf-8'
重定向到文件时,输出文件为 UTF-8 编码,请用 读取。