mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
- 删除全部 Python 源码 (src/) 及 Alembic 迁移脚本,归档至 _deprecated_py_src/ - 重构 Rust gateway ai_pipeline: 拆分 planner/finalize 模块,新增 contracts/adaptation 层 - 重组 handlers 模块为 admin/public/proxy/internal/shared 子模块结构 - 新增 executor 模块,引入 Rust 原生数据库迁移 (aether-data/migrations) - 简化 CI/Docker 构建流程,移除 base image 二级构建,统一为单一 app image - 移除 Python 相关基础设施文件 (entrypoint.sh, gunicorn_conf.py, Dockerfile.base)
18 lines
554 B
Python
18 lines
554 B
Python
from __future__ import annotations
|
|
|
|
from src.models.database import ProviderAPIKey
|
|
from src.services.provider_keys.quota_reader import get_quota_reader
|
|
|
|
|
|
def is_key_quota_exhausted(
|
|
provider_type: str | None,
|
|
key: ProviderAPIKey,
|
|
*,
|
|
model_name: str,
|
|
) -> tuple[bool, str | None]:
|
|
"""Check ProviderAPIKey.upstream_metadata quota and decide whether to skip."""
|
|
|
|
reader = get_quota_reader(provider_type, getattr(key, "upstream_metadata", None))
|
|
result = reader.is_exhausted(model_name)
|
|
return result.exhausted, result.reason
|