refactor: unify llm provider runtime access

This commit is contained in:
jxxghp
2026-08-24 07:15:02 +08:00
parent ff2102fb74
commit 7c9d53c6f6
6 changed files with 146 additions and 14 deletions
+5 -10
View File
@@ -7,17 +7,11 @@ from app.schemas.common import ManageRequest as _SchemaManageRequest
from app.schemas.response import Response as _SchemaResponse
from app.api.response import ResponseAPIRouter
from app.api.dependencies.auth import get_current_active_superuser_async
from app.agent.llm.gateway import resolve_llm_provider_runtime
router = ResponseAPIRouter()
def _get_llm_provider_manager_type() -> type:
"""在真实管理请求边界解析 provider 运行时。"""
from app.agent.llm.provider import LLMProviderManager
return LLMProviderManager
@router.post(
"/manage",
summary="LLM提供商统一管理",
@@ -43,7 +37,7 @@ async def manage_provider(
"callback_url",
str(request.url_for("llm_provider_auth_callback", provider_id=payload.target)),
)
result = await _get_llm_provider_manager_type()().provider_manage(
result = await resolve_llm_provider_runtime().provider_manage(
payload.target, payload.action, **params
)
return _SchemaResponse(
@@ -76,13 +70,14 @@ async def llm_provider_auth_callback(
"""
处理需要浏览器回跳的 OAuth provider。
"""
success, message = await _get_llm_provider_manager_type()().handle_chatgpt_callback(
success, message = await resolve_llm_provider_runtime().handle_chatgpt_callback(
provider_id,
code,
state,
error,
error_description,
)
from app.agent.llm.provider import render_auth_result_html
# 该符号由 app.agent.llm.__getattr__ 惰性公开,Pylint 无法静态发现。
from app.agent.llm import render_auth_result_html # pylint: disable=no-name-in-module
return HTMLResponse(content=render_auth_result_html(success, message))