Python 调用智谱 GLM-4V 实现图片视觉识别(本地/网页图片通用)
智谱 GLM-4V 是高性能多模态大模型,支持图片 + 文本的混合输入,能精准识别图片内容(如验证码、图文分析、物体识别等)。本文将手把手教你实现本地图片、网页截图、Base64 编码图片三种方式调用 GLM-4V,结合实际场景(hCaptcha 验证码识别)完成落地。
一、核心知识点
- GLM-4V 调用规则:图片需转为 Base64 编码传入 API
- 适配场景:本地图片识别、网页截图识别、验证码解析
- 核心库:
requests(接口调用)、pillow(图片处理)、DrissionPage(网页截图)
二、环境准备
1. 安装依赖
# 基础依赖
pip install requests pillow
# 网页自动化/截图(可选,用于网页图片场景)
pip install DrissionPage
# 数据解析(可选)
pip install json re
2. 智谱 AI 配置
- 注册智谱 AI 开发者账号:https://open.bigmodel.cn/
- 获取 API Key(控制台-API 密钥管理)
- 确保账号余额充足(GLM-4V 单次调用成本≈0.006 元,极低)
三、通用封装:GLM-4V 调用核心函数
先封装通用调用函数,适配所有图片输入方式:
import requests
import base64
import json
# 智谱 AI 配置(替换为你的密钥)
AI_CONFIG = {
"api_key": "你的 GLM-4V API Key",
"base_url": "https://open.bigmodel.cn/api/paas/v4/chat/completions",
"model": "glm-4v-plus"
}
def encode_image_to_base64(image_path):
""" 本地图片转 Base64 编码(核心步骤)
:param image_path: 本地图片路径
:return: Base64 编码字符串
"""
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
def ():
is_base64:
base64_img = encode_image_to_base64(image_content)
:
base64_img = image_content
headers = {
: ,
:
}
payload = {
: AI_CONFIG[],
: [{
: ,
: [
{: , : prompt},
{: , : {: base64_img}}
]
}],
: ,
:
}
:
response = requests.post(
AI_CONFIG[],
headers=headers,
json=payload,
timeout=
)
response.raise_for_status()
result = response.json()
result[][][][]
Exception e:
Exception()

