Open WebUI设置界面

api地址:https://open.bigmodel.cn/api/paas/v4
免费文生图模型:CogView-3-Flash
需要修改的文件
进入容器目录

需要修改的核心是get_image_data函数。你需要让它对智谱AI(Zhipu AI)返回的图片链接进行特殊处理,移除会导致403错误的认证头。
📍 需要修改的位置
在你的代码文件(/app/backend/open_webui/routers/images.py)中,找到 get_image_data 函数(大约在第476行)。该函数的原始结构如下:
def get_image_data(data: str, headers=None):
try:
if data.startswith("http://") or data.startswith("https://"):
# --- 核心修改点就在这里!下面这行会下载图片 ---
if headers:
r = requests.get(data, headers=headers) # <-- 需要修改此行逻辑
else:
r = requests.get(data)
# --- 核心修改点结束 ---
r.raise_for_status()
...
🔧 如何修改
你需要替换上面注释中标出的那几行代码。请将整个 if data.startswith("http://")... 代码块,替换为以下内容:
def get_image_data(data: str, headers=None):
try:
if data.startswith("http://") or data.startswith("https://"):
# --- 新增:针对智谱AI(UCloud对象存储)链接的特殊处理 ---
if headers and ('maas-watermark-prod' in data or 'ufileos.com' in data):
# 复制一份headers,避免修改原始字典
filtered_headers = headers.copy()
# 移除导致智谱AI图片403错误的认证头
filtered_headers.pop('Authorization', None)
filtered_headers.pop('Content-Type', None)
# 使用清理后的headers下载
r = requests.get(data, headers=filtered_headers)
elif headers:
# 非智谱AI的链接,使用原始headers
r = requests.get(data, headers=headers)
else:
# 没有headers的情况
r = requests.get(data)
# --- 特殊处理结束 ---
r.raise_for_status()
...
💡 修改说明
- 判断逻辑:代码首先检查链接是否来自智谱AI(特征:包含
maas-watermark-prod或ufileos.com)。 - 移除认证头:如果是,则创建一个headers副本,并安全地移除
Authorization和Content-Type字段。 - 保持兼容:对于其他来源的图片链接,仍使用原有的逻辑,不影响其他功能。
✅ 修改后验证
- 保存文件。
- 重启Open WebUI服务(例如执行
docker-compose restart)。 - 在WebUI中重新尝试生成图像,此时应该能成功加载图片。
这个修改是解决你当前问题(智谱API水印链接403错误)最直接有效的方案。如果修改后仍遇到问题,请提供新的错误日志。
Open WebUI使用智谱免费接口文生图修改方案 - 来源:道谕轩
作者:道 谕轩
转载请注明:https://xinzt.ren/archives/4836
微信扫一扫