Skip to content

[Bug] Rerank 提供商不支持代理配置 #9383

Description

@GuJi08233

问题描述

所有 5 个 Rerank 提供商(vLLM、Xinference、百炼、NVIDIA、TEI)均不支持 HTTP 代理配置。配置了代理后,Rerank 请求完全绕过代理,导致超时失败或仅能直连访问。

对比之下,Chat/LLM、Embedding、TTS、STT 提供商都通过 proxy 配置字段和 create_proxy_client() 工具函数正确支持了代理。


复现步骤

  1. 在 AstrBot 全局设置中配置 HTTP 代理(http_proxy
  2. 添加一个 Rerank 提供商(如百炼 Rerank),指向外部 API 端点
  3. 启用知识库并使用重排序功能
  4. Rerank 请求超时或连接失败
  5. 代理软件无任何请求记录(流量绕过了代理)

预期结果

Rerank 提供商应和 Chat/Embedding/TTS/STT 提供商一样,支持代理配置。


根因分析

4 个基于 aiohttp 的 Rerank 提供商(vllm_rerankbailian_reranknvidia_reranktei_rerank)在创建 aiohttp.ClientSession 时未传入任何代理参数:

# 当前代码(以 vllm_rerank_source.py 为例)
self.client = aiohttp.ClientSession(
    headers=h,
    timeout=aiohttp.ClientTimeout(total=self.timeout),
)
# 无 proxy 参数,无 trust_env=True

问题链:

  • default.py 中 Rerank 提供商配置模板缺少 proxy 字段
  • aiohttp.ClientSession 默认 trust_env=False,忽略 core_lifecycle.py 设置的 http_proxy/https_proxy 环境变量
  • 请求调用中也未传递 proxy 参数

环境信息

  • AstrBot 版本:latest (master)
  • 部署方式:任意
  • 受影响提供商:vLLM Rerank、Xinference Rerank、百炼 Rerank、NVIDIA Rerank、TEI Rerank

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:providerThe bug / feature is about AI Provider, Models, LLM Agent, LLM Agent Runner.feature:knowledge-baseThe bug / feature is about knowledge base

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions