完成请求推送,但组装mes还有问题
This commit is contained in:
95
test_token_usage_indexes.py
Normal file
95
test_token_usage_indexes.py
Normal file
@@ -0,0 +1,95 @@
|
||||
"""
|
||||
测试 Token 使用统计的索引功能
|
||||
"""
|
||||
import asyncio
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# 添加 backend 到路径
|
||||
sys.path.insert(0, str(Path(__file__).parent / "backend"))
|
||||
|
||||
from backend.services.token_usage_service import token_usage_service
|
||||
from backend.models.internal import TokenUsageStatus
|
||||
|
||||
|
||||
async def test_token_usage_indexes():
|
||||
"""测试 Token 使用统计的索引功能"""
|
||||
|
||||
print("=" * 80)
|
||||
print("Token 使用统计 - 索引功能测试")
|
||||
print("=" * 80)
|
||||
|
||||
# 1. 记录一些测试数据
|
||||
print("\n📝 记录测试数据...")
|
||||
|
||||
test_records = [
|
||||
{
|
||||
"chat_id": "测试角色/测试聊天1",
|
||||
"role_name": "测试角色",
|
||||
"chat_name": "测试聊天1",
|
||||
"prompt_tokens": 100,
|
||||
"completion_tokens": 200,
|
||||
"total_tokens": 300,
|
||||
"api_url": "https://api.openai.com/v1"
|
||||
},
|
||||
{
|
||||
"chat_id": "测试角色/测试聊天2",
|
||||
"role_name": "测试角色",
|
||||
"chat_name": "测试聊天2",
|
||||
"prompt_tokens": 150,
|
||||
"completion_tokens": 250,
|
||||
"total_tokens": 400,
|
||||
"api_url": "https://api.deepseek.com/v1"
|
||||
},
|
||||
{
|
||||
"chat_id": "测试角色/测试聊天1",
|
||||
"role_name": "测试角色",
|
||||
"chat_name": "测试聊天1",
|
||||
"prompt_tokens": 120,
|
||||
"completion_tokens": 180,
|
||||
"total_tokens": 300,
|
||||
"api_url": "https://api.openai.com/v1"
|
||||
}
|
||||
]
|
||||
|
||||
for record_data in test_records:
|
||||
await token_usage_service.record_usage(**record_data)
|
||||
print(f" ✅ 记录: {record_data['api_url']} - {record_data['total_tokens']} tokens")
|
||||
|
||||
# 2. 测试 API URL 索引查询
|
||||
print("\n🔍 测试 API URL 索引查询...")
|
||||
api_url_stats = await token_usage_service.get_api_url_stats()
|
||||
|
||||
if api_url_stats:
|
||||
print(f"\n 找到 {len(api_url_stats)} 个 API URL:")
|
||||
for url, stats in api_url_stats.items():
|
||||
print(f"\n 📊 {url}:")
|
||||
print(f" - 总调用次数: {stats['count']}")
|
||||
print(f" - 总 Token 数: {stats['totalTokens']}")
|
||||
print(f" - Prompt Tokens: {stats['totalPromptTokens']}")
|
||||
print(f" - Completion Tokens: {stats['totalCompletionTokens']}")
|
||||
else:
|
||||
print(" ⚠️ 没有找到 API URL 统计数据")
|
||||
|
||||
# 3. 测试每日索引查询
|
||||
print("\n🔍 测试每日索引查询...")
|
||||
from datetime import datetime
|
||||
now = datetime.now()
|
||||
daily_stats = await token_usage_service.get_daily_stats(now.year, now.month)
|
||||
|
||||
if daily_stats:
|
||||
print(f"\n 找到 {len(daily_stats)} 天的数据:")
|
||||
for day, stats in list(daily_stats.items())[:5]: # 只显示前5天
|
||||
print(f" 📅 {day}:")
|
||||
print(f" - 调用次数: {stats['count']}")
|
||||
print(f" - 总 Token 数: {stats['totalTokens']}")
|
||||
else:
|
||||
print(" ⚠️ 没有找到每日统计数据")
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
print("✅ 测试完成!")
|
||||
print("=" * 80)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_token_usage_indexes())
|
||||
Reference in New Issue
Block a user