feat(provider): 新增 OpenRouter 平台适配器 - GET /api/v1/credits,Bearer 认证 - 余额 = data.total_credits - data.total_usage(剩余可用) - 重启后自动同步为平台记录

This commit is contained in:
2026-08-05 07:46:19 +08:00
parent 4cf31c76bb
commit 794332aff6
3 changed files with 58 additions and 3 deletions
+2
View File
@@ -4,9 +4,11 @@ from __future__ import annotations
from app.providers.base import BalanceProvider
from app.providers.deepseek import DeepSeekProvider
from app.providers.openrouter import OpenRouterProvider
PROVIDERS: dict[str, type[BalanceProvider]] = {
"deepseek": DeepSeekProvider,
"openrouter": OpenRouterProvider,
}
+29
View File
@@ -0,0 +1,29 @@
"""OpenRouter 余额。
接口:GET https://openrouter.ai/api/v1/credits
响应:{"data": {"total_credits": 100.5, "total_usage": 25.75}}
余额取剩余可用:total_credits - total_usage
"""
from __future__ import annotations
from app.expr import evaluate_balance
from app.providers.base import BalanceProvider
class OpenRouterProvider(BalanceProvider):
id = "openrouter"
name = "OpenRouter"
currency = "USD"
icon = "OpenRouter"
description = "OpenRouter 余额(GET /api/v1/creditsBearer 认证,剩余 = total_credits - total_usage"
def build_request(self, api_key: str) -> tuple[str, dict, str | None]:
return (
"https://openrouter.ai/api/v1/credits",
{"Authorization": f"Bearer {api_key}"},
None,
)
def extract_balance(self, data: object) -> float:
return evaluate_balance(data, "data.total_credits - data.total_usage")