GLM-4.6V-Flash-WEB 开源视觉模型部署与 API 调用实践
智谱最新开源的 GLM-4.6V-Flash-WEB 模型功能强大且部署简单。它支持通过网页界面直接对话,并提供 API 接口供开发者集成。
1. 环境准备与镜像部署
部署 GLM-4.6V-Flash-WEB 需要运行 Docker 的环境。以下以 Linux 环境为例。
1.1 获取部署镜像
从镜像仓库拉取包含所有依赖的镜像。
# 拉取镜像 # 请将 `your_image_repo/glm-4.6v-flash-web:latest` 替换为实际地址
docker pull your_image_repo/glm-4.6v-flash-web:latest
注意:your_image_repo 需替换为真实镜像地址,例如 registry.cn-hangzhou.aliyuncs.com/namespace/glm-4.6v-flash-web。
1.2 启动容器实例
映射端口:7860(Web 界面)和 8000(API 服务)。
docker run -d \
--name glm-4v-web \
-p 7860:7860 \
-p 8000:8000 \
your_image_repo/glm-4.6v-flash-web:latest
执行成功后,使用 docker ps 查看状态。
2. 一键启动推理服务
容器运行后,需进入内部执行启动脚本。
2.1 进入 Jupyter 环境
- 浏览器访问服务器 IP:8888。
- 输入登录 token。
- 导航至
/root目录。
2.2 执行一键启动脚本
在 /root 目录下找到 1 键推理.sh 脚本。
cd /root
chmod +x 1 键推理.sh
./1 键推理.sh
等待日志输出 "Running on local URL: http://0.0.0.0:7860" 表示 Web 服务启动成功。
3. 访问 Web 界面与初步体验
3.1 打开 Web 推理界面
访问 http://你的服务器 IP 地址:7860。
3.2 图文对话测试
- 上传图片。
- 针对图片提问。
- 发送并等待回复。
可尝试上传表格截图总结数据或商品图生成描述。
4. 使用 API 接口进行调用
API 服务运行在 8000 端口。
4.1 API 调用基础
使用 curl 命令示例:
curl -X POST http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{ "model": "glm-4v-flash", "messages": [ { "role": "user", "content": [ {"type": "text", "text": "描述一下这张图片"}, { "type": "image_url", "image_url": { "url": "data:image/jpeg;base64,你的图片 base64 编码" } } ] } ] }'
4.2 使用 Python 调用 API
安装 openai 库。
import base64
import requests
import json
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
image_path = "你的图片路径.jpg"
base64_image = encode_image(image_path)
headers = { "Content-Type": "application/json" }
payload = {
"model": "glm-4v-flash",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "请详细描述这张图片的内容。"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}
]
}
],
"max_tokens": 300
}
response = requests.post("http://localhost:8000/v1/chat/completions", headers=headers, data=json.dumps(payload))
if response.status_code == 200:
print(response.json()['choices'][0]['message']['content'])
else:
print(f"请求失败,状态码:{response.status_code}")
5. 总结与后续探索
完成流程包括:部署镜像、启动服务、网页体验、API 调用。
后续可探索多轮对话、复杂图片识别、API 集成及参数调整。

