mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 20:35:19 +00:00
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
"""检查最近的计费记录,诊断重复扣费问题"""
|
|
|
|
import sys
|
|
import os
|
|
|
|
# 添加项目路径
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "open_webui"))
|
|
|
|
from internal.db import get_db
|
|
from models.billing import BillingLog
|
|
from sqlalchemy import desc
|
|
|
|
def check_recent_logs(limit=10):
|
|
"""查询最近的计费记录"""
|
|
with get_db() as db:
|
|
logs = (
|
|
db.query(BillingLog)
|
|
.order_by(desc(BillingLog.created_at))
|
|
.limit(limit)
|
|
.all()
|
|
)
|
|
|
|
print(f"最近 {len(logs)} 条计费记录:\n")
|
|
print("=" * 150)
|
|
|
|
for i, log in enumerate(logs, 1):
|
|
# 转换时间戳(纳秒 → 秒)
|
|
import datetime
|
|
created_time = datetime.datetime.fromtimestamp(log.created_at / 1000000000)
|
|
|
|
print(f"{i}. ID: {log.id[:8]}...")
|
|
print(f" 用户: {log.user_id}")
|
|
print(f" 模型: {log.model_id}")
|
|
print(f" 类型: {log.log_type}")
|
|
print(f" 状态: {log.status}")
|
|
print(f" Tokens: {log.prompt_tokens}+{log.completion_tokens}")
|
|
print(f" 费用: {log.total_cost / 10000:.4f} 元")
|
|
print(f" 余额: {log.balance_after / 10000:.4f} 元" if log.balance_after else " 余额: None")
|
|
print(f" 预扣费ID: {log.precharge_id[:8] if log.precharge_id else 'None'}...")
|
|
print(f" 时间: {created_time}")
|
|
print("-" * 150)
|
|
|
|
if __name__ == "__main__":
|
|
check_recent_logs(15)
|