Generate captions for images, videos, and documents using the ZhiPu GLM-V multimodal model.
TypeFormatsMax SizeMax CountBase64Imagejpg, png, jpeg5MB / 6000×6000px50✅Videomp4, mkv, mov200MB—❌Filepdf, docx, txt, xlsx, pptx, jsonl—50❌
⚠️ file_url cannot mix with image_url or video_url in the same request. ⚠️ Videos and files only support URLs — local paths and base64 are NOT supported (images only).
ResourceLinkGet API Keyhttps://bigmodel.cn/usercenter/proj-mgmt/apikeysAPI DocsChat Completions / 对话补全
This script reads the key from the ZHIPU_API_KEY environment variable and shares it with other Zhipu skills.
脚本通过 ZHIPU_API_KEY 环境变量获取密钥,与其他智谱技能共用同一个 key。
Get Key / 获取 Key: Visit Zhipu Open Platform API Keys / 智谱开放平台 API Keys to create or copy your key.
Setup options / 配置方式(任选一种):
OpenClaw config (recommended) / OpenClaw 配置(推荐): Set in openclaw.json under skills.entries.glmv-caption.env:
json
"glmv-caption": { "enabled": true, "env": { "ZHIPU_API_KEY": "你的密钥" } }
Shell environment variable / Shell 环境变量: Add to ~/.zshrc:
bash
export ZHIPU_API_KEY="你的密钥"
.env file / .env 文件: Create .env in this skill directory:
text
ZHIPU_API_KEY=你的密钥
⛔ MANDATORY RESTRICTIONS - DO NOT VIOLATE ⛔
python scripts/glmv_caption.pyAfter running the script, you must show the full raw output to the user exactly as returned. Do not summarize, truncate, or only say "generated". Users need the original model output to evaluate quality.
bash
python scripts/glmv_caption.py --images "https://example.com/photo.jpg"
python scripts/glmv_caption.py --images /path/to/photo.png
bash
python scripts/glmv_caption.py --images img1.jpg img2.png "https://example.com/img3.jpg"
bash
python scripts/glmv_caption.py --videos "https://example.com/clip.mp4"
bash
python scripts/glmv_caption.py --files "https://example.com/report.pdf"
python scripts/glmv_caption.py --files "https://example.com/doc1.docx" "https://example.com/doc2.txt"
bash
python scripts/glmv_caption.py --images photo.jpg --prompt "Describe the architecture style in detail"
bash
python scripts/glmv_caption.py --images photo.jpg --output result.json
bash
python scripts/glmv_caption.py --images photo.jpg --thinking
text
python {baseDir}/scripts/glmv_caption.py (--images IMG [IMG...] | --videos VID [VID...] | --files FILE [FILE...]) [OPTIONS]
ParameterRequiredDescription--images, -iOne ofImage paths or URLs (supports multiple, base64 OK)--videos, -vOne ofVideo paths or URLs (supports multiple, mp4/mkv/mov)--files, -fOne ofDocument paths or URLs (supports multiple, pdf/docx/txt/xlsx/pptx/jsonl)--prompt, -pNoCustom prompt (default: "请详细描述这张图片的内容" / "Please describe this image in detail")--model, -mNoModel name (default: glm-4.6v)--temperature, -tNoSampling temperature 0-1 (default: 0.8)--top-pNoNucleus sampling 0.01-1.0 (default: 0.6)--max-tokensNoMax output tokens (default: 1024, max 32768)--thinkingNoEnable thinking/reasoning mode--output, -oNoSave result JSON to file--prettyNoPretty-print JSON output--streamNoEnable streaming output
Note: --images, --videos, and --files are mutually exclusive per API limits.
json
{
"success": true,
"caption": "A landscape photo showing a mountain range at sunset...",
"usage": {
"prompt_tokens": 128,
"completion_tokens": 256,
"total_tokens": 384
}
}
Key fields:
success — whether the request succeededcaption — the generated caption textusage — token usage statisticswarning — present when content was blocked by safety reviewerror — error details on failureAPI key not configured:
text
ZHIPU_API_KEY not configured. Get your API key at: https://bigmodel.cn/usercenter/proj-mgmt/apikeys
→ Show exact error to user, guide them to configure
Authentication failed (401/403): API key invalid/expired → reconfigure
Rate limit (429): Quota exhausted → inform user to wait
File not found: Local file missing → check path
Content filtered: warning field present → content blocked by safety review