Skip to content

[错误报告]: OpenAI兼容模式使用部分中转站时被拦截,需支持自定义 User-Agent/default_headers #5839

@CraftNobody0505

Description

@CraftNobody0505

确认

  • 我的版本是最新版本,我的版本号与 version 相同。
  • 我已经 issue 中搜索过,确认我的问题没有被提出过。
  • 我已经 Telegram频道 中搜索过,确认我的问题没有被提出过。
  • 我已经修改标题,将标题中的 描述 替换为我遇到的问题。

当前程序版本

v2.13.1

运行环境

Docker

问题类型

主程序运行问题

问题描述

这不是某个中转站的配置咨询,而是 MoviePilot 当前 OpenAI-compatible LLM provider 不支持配置 default_headers/User-Agent,在部分带 WAF 的 OpenAI-compatible 端点上会导致 LangChain/OpenAI SDK 请求被拦截;同样请求在补充 User-Agent 后可正常工作。

现象

NAS Docker 环境中使用 MoviePilot 智能助手,LLM 提供商选择「OpenAI 兼容」,配置第三方 OpenAI-compatible Base URL 后,测试/使用智能助手时前端弹出:

Your request was blocked.

排查结果

使用同一个 API Key、同一个 Base URL、同一个模型测试:

  • 直接 HTTP/curl 请求 /v1/chat/completions 可以正常返回
  • OpenAI Python SDK 默认请求失败,报错:PermissionDeniedError: Your request was blocked.
  • OpenAI Python SDK 设置 default_headers={"User-Agent": "curl/8.5.0"} 后可以正常返回

复现代码如下,API Key 已打码:

from openai import OpenAI

base = "https://windhub.cc/v1"
key = "sk-***"

# 失败:PermissionDeniedError: Your request was blocked.
client = OpenAI(base_url=base, api_key=key)
client.chat.completions.create(
    model="deepseek-v3-2-251201",
    messages=[{"role": "user", "content": "请只回复 OK"}],
)

# 成功
client = OpenAI(
    base_url=base,
    api_key=key,
    default_headers={"User-Agent": "curl/8.5.0"},
)
resp = client.chat.completions.create(
    model="deepseek-v3-2-251201",
    messages=[{"role": "user", "content": "请只回复 OK"}],
)
print(resp.choices[0].message.content)

### 发生问题时系统日志和配置文件

```bashERROR2026-05-26 07:10:47,520 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:10:47,520 - helper.py - 获取 openai 模型列表...
【ERROR2026-05-26 07:10:44,519 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:10:41,519 - helper.py - 获取 openai 模型列表...
【INFO2026-05-26 07:09:53,735 - transfer.py - 没有已完成下载但未整理的任务INFO2026-05-26 07:09:53,661 - transfer.py - 开始整理下载器中已经完成下载的文件 ...
【ERROR2026-05-26 07:07:02,509 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:07:02,327 - helper.py - 获取 openai 模型列表...
【ERROR2026-05-26 07:04:59,321 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:04:59,321 - helper.py - 获取 openai 模型列表...
【INFO2026-05-26 07:04:56,321 - plugin.py - 获取到 218 个线上插件INFO2026-05-26 07:04:53,723 - transfer.py - 没有已完成下载但未整理的任务INFO2026-05-26 07:04:53,683 - scheduler.py - 主动内存回收完成回收对象数: 0释放内存: 0.00 MBINFO2026-05-26 07:04:53,661 - transfer.py - 开始整理下载器中已经完成下载的文件 ...
【ERROR2026-05-26 07:04:32,320 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:04:32,320 - helper.py - 获取 openai 模型列表...
【ERROR2026-05-26 07:04:11,319 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:04:08,318 - helper.py - 获取 openai 模型列表...
【ERROR2026-05-26 07:03:59,318 - helper.py - 获取 openai 模型列表失败Your request was blocked.
【INFO2026-05-26 07:03:59,318 - helper.py - 获取 openai 模型列表...
【ERROR2026-05-26 07:03:38,317 - helper.py - 获取 openai 模型列表失败Your request was blocked.

# LLM 配置,敏感信息已脱敏

AI_AGENT_ENABLE=true
LLM_PROVIDER=openai
LLM_BASE_URL=https://windhub.cc/v1
LLM_MODEL=deepseek-v3-2-251201
LLM_API_KEY=sk-***

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions