图片分析 Skill
使用硅基流动的免费模型 DeepSeek-OCR 分析图片内容、OCR 识别文字。
触发条件
- 用户发送图片并询问内容
- 用户提供图片路径要求分析
- 用户要求 OCR 识别图片中的文字
- 用户要求描述图片
使用步骤
- 检查环境变量
SILICONFLOW_API_KEY,未设置则提示用户配置 - 获取图片文件,检查是否存在、格式是否支持
- 将图片转换为 base64 并调用 API
- 用自然语言将结果转述给用户
执行要求(必须遵守)
- 禁止输出 API Key:用
[ -z "$SILICONFLOW_API_KEY" ]判断,不要echo - 禁止输出 base64:转换结果直接传入命令,不要打印
- 禁止打印命令:curl 等命令静默执行,不显示命令内容
- 禁止输出原始响应:不显示 API 返回的 JSON,只转述结果
- 一步完成:
BASE64=$(base64 file) && curl -d "...$BASE64...",避免中间文件
API 信息
- Endpoint:
https://api.siliconflow.cn/v1/chat/completions - Model:
deepseek-ai/DeepSeek-OCR - Authorization:
Bearer {SILICONFLOW_API_KEY}
调用示例(macOS/Linux)
[ -z "$SILICONFLOW_API_KEY" ] && { echo "未设置 API Key"; exit 1; }
BASE64=$(base64 -i "$IMAGE_PATH" | tr -d '\n') && \
curl -s "https://api.siliconflow.cn/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SILICONFLOW_API_KEY" \
-d '{"model":"deepseek-ai/DeepSeek-OCR","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"data:image/png;base64,'"$BASE64"'","detail":"high"}},{"type":"text","text":"<image>\n详细描述这张图片的内容。如果有文字,请进行 OCR 识别。"}]}],"max_tokens":4000}'
动态提示词
根据用户需求选择对应的提示词:
| 用户需求 | 提示词 |
|---|---|
| 仅识别文字 | <image>\n仅提取图片中的所有文字,无需描述场景 |
| 仅描述图片 | <image>\n详细描述图片的场景、物体、颜色、布局,无需提取文字 |
| 全量分析(默认) | <image>\n详细描述这张图片的内容。如果有文字,请进行 OCR 识别。 |
错误码处理
| 错误码 | 含义 | 处理建议 |
|---|---|---|
| 401 | API Key 无效 | 提示用户前往 https://cloud.siliconflow.cn/account/ak 核对密钥 |
| 429 | 请求限流 | 提示"请求过于频繁,请稍后重试" |
| 500 | 服务端错误 | 提示"服务临时异常,请稍后重试" |
| 400 | 请求格式错误 | 检查 base64 编码是否正确、格式是否支持 |
注意事项
- 支持格式:JPG、JPEG、PNG、GIF、WebP、BMP、TIFF、PDF
- 多页 PDF 仅处理第一页
- 建议请求超时设置为 60 秒
- DeepSeek-OCR 主要用于文字识别,图片描述能力有限,复杂场景描述建议换用其他视觉模型
- 获取 API Key: https://cloud.siliconflow.cn/account/ak
- 官方文档: https://docs.siliconflow.cn/cn/userguide/capabilities/multimodal-vision