feat(system):优化后端
1.新增后端测试 2.增加了后端的加密 3.增加了i18n(国际化)
This commit is contained in:
@@ -14,11 +14,10 @@
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from pydantic import BaseModel
|
||||
from typing import Literal
|
||||
from typing import Any, Dict, Literal
|
||||
from kilostar.utils.access import TokenData, Accessor
|
||||
from kilostar.utils.check_user.role_check import RoleChecker
|
||||
from kilostar.core.postgres_database.model import UserAuthority
|
||||
from typing import Dict
|
||||
from kilostar.core.global_state_machine.model_provider.base_provider import Provider
|
||||
from kilostar.utils.ray_hook import ray_actor_hook
|
||||
|
||||
@@ -50,16 +49,27 @@ async def create_provider(
|
||||
)
|
||||
|
||||
|
||||
def _mask_apikey(key: str) -> str:
|
||||
if not key or len(key) <= 8:
|
||||
return "***"
|
||||
return key[:4] + "***" + key[-4:]
|
||||
|
||||
|
||||
@provider_router.get("/list")
|
||||
async def get_provider_list(
|
||||
_: TokenData = Depends(Accessor.get_current_user),
|
||||
) -> Dict[str, Dict[str, Provider]]:
|
||||
"""返回当前所有已注册的 Provider,前端用以展示模型清单。"""
|
||||
) -> Dict[str, Any]:
|
||||
"""返回当前所有已注册的 Provider,前端用以展示模型清单。apikey 脱敏。"""
|
||||
global_state_machine = ray_actor_hook("global_state_machine").global_state_machine
|
||||
provider_list: Dict[
|
||||
str, Provider
|
||||
] = await global_state_machine.get_provider_list.remote()
|
||||
return {"provider_list": provider_list}
|
||||
masked = {}
|
||||
for title, p in provider_list.items():
|
||||
d = p.model_dump() if hasattr(p, "model_dump") else dict(p)
|
||||
d["provider_apikey"] = _mask_apikey(d.get("provider_apikey", ""))
|
||||
masked[title] = d
|
||||
return {"provider_list": masked}
|
||||
|
||||
|
||||
@provider_router.delete("/{provider_title}")
|
||||
|
||||
Reference in New Issue
Block a user