[Bug]: Models + Endpoints list blank for SSO internal_user when access is via team/org model access groups

该报错通常发生在 LiteLLM UI 通过 SSO 登录的内部用户(internal_user)仅通过团队/组织的模型访问组(model access groups)获取模型权限时,Models + Endpoints 列表和 AI Hub 为空。优先排查 LiteLLM 版本是否已包含修复提交

快速结论:该报错通常发生在 LiteLLM UI 通过 SSO 登录的内部用户(internal_user)仅通过团队/组织的模型访问组(model access groups)获取模型权限时,Models + Endpoints 列表和 AI Hub 为空。优先排查 LiteLLM 版本是否已包含修复提交 2d12a3e。

适用环境:LiteLLM(版本标记为 latest),UI Dashboard 场景,通过 SSO 登录的内部用户,团队未直接设置 models 字段而是通过 access_group_ids 授予模型访问组权限。

最快修复方案:升级 LiteLLM 至包含提交 2d12a3ea41cd17b55aeb87052868d086bf8d22c0 的版本。该提交已在 Issue 中被确认为修复。

注意事项:该修复在 Issue 评论中被确认,但未提供具体版本号。如果无法立即升级,可参考下方原因分析中的可能原因进行代码层面排查(可优先尝试在会话令牌中解析团队 ID)。

问题场景

用户在 LiteLLM UI 中通过 SSO 登录一个 internal_user 账号。该用户属于某个团队(Team),团队本身没有直接设置 models 字段,而是通过 access_group_ids 关联了模型访问组(model access groups)。用户登录后,进入 UI 的 Models + Endpoints 页面,发现列表为空;AI Hub 同样为空。端点并未报错,只是静默返回空列表。

报错原文

[Bug]: Models + Endpoints list blank for SSO internal_user when access is via team/org model access groups
No error logs — the endpoint returns an empty list silently.

原因分析

根本原因位于 get_available_models_for_userlitellm/proxy/utils.py)中的两处逻辑缺口:

1. UI 会话令牌携带空的 team_models当 SSO 内部用户登录时,铸造的 UserAPIKeyAuth 会话令牌中 models = []team_models = [],因为会话未绑定到特定的团队 API Key。因此令牌未附带任何团队上下文(也就没有团队模型访问组)。

2. get_available_models_for_user 从不查询用户实际所属的团队。该函数直接读取 user_api_key_dict.team_models(UI 会话令牌中始终为空),仅在调用方显式传入 team_id 时才获取真实团队数据——而模型列表端点对 UI 会话并未传入该参数。

由于 key_modelsteam_models 均为空,get_complete_model_list 回退到完整代理模型列表。随后模型列表端点基于 key/team 授予的权限过滤该列表。由于两者均未授予任何模型,且模型访问组仅在组名已存在于 key_modelsteam_models 时才会展开,团队上的访问组永远不会被检查,列表因此为空。

Issue 中指出,MCP 路径中已存在 resolve_ui_session_team_ids 辅助函数(litellm/proxy/_experimental/mcp_server/ui_session_utils.py),但未接入模型列表端点。

环境排查

  • 确认 LiteLLM 版本是否已包含修复提交 2d12a3ea41cd17b55aeb87052868d086bf8d22c0
  • 确认团队是否通过 access_group_ids 而非直接设置 models 字段授权(此为前提条件)。
  • 确认用户是 internal_user 且通过 SSO 登录,而非使用团队 API Key 调用。

解决步骤

  1. 升级 LiteLLM:将 LiteLLM 更新至包含提交 2d12a3ea41cd17b55aeb87052868d086bf8d22c0 的版本。此提交已被确认修复该问题(见参考来源中评论)。
  2. 如果无法立即升级,可优先尝试在模型列表端点中复用 resolve_ui_session_team_ids 辅助函数,在获取 team_models 前先解析 UI 会话令牌中的团队 ID,再基于团队 ID 查询用户实际所属团队及其模型访问组。
  3. 检查是否可以直接为团队设置 models 字段(作为临时绕过方案,但需注意这可能改变权限模型)。

验证方法

升级后,使用 SSO 登录内部用户,进入 Models + Endpoints 页面,确认团队通过 access_group_ids 授予的模型出现在列表中;同时检查 AI Hub 是否不再为空。也可调用模型列表端点确认返回结果不再为空数组。

参考来源

BerriAI/litellm #34998

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20405

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注