| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env python3
- """
- 测试 price_parser.py 的解析逻辑
- """
- import json
- from app.utils.price_parser import parse_prices
- # ── 测试数据1:qwen3-max 阶梯计费 ──
- prices_qwen3_max = {
- "input<=32k": {
- "输入": {"raw": "2.5", "unit": "元/每百万tokens", "price": 2.5, "currency": "CNY"},
- "输出": {"raw": "10", "unit": "元/每百万tokens", "price": 10.0, "currency": "CNY"},
- },
- "32k<input<=128k": {
- "输入": {"raw": "4", "unit": "元/每百万tokens", "price": 4.0, "currency": "CNY"},
- "输出": {"raw": "16", "unit": "元/每百万tokens", "price": 16.0, "currency": "CNY"},
- },
- "128k<input<=256k": {
- "输入": {"raw": "7", "unit": "元/每百万tokens", "price": 7.0, "currency": "CNY"},
- "输出": {"raw": "28", "unit": "元/每百万tokens", "price": 28.0, "currency": "CNY"},
- },
- }
- # ── 测试数据2:wan2.6-i2v 按单位计费 ──
- prices_wan26_i2v = {
- "视频生成(720P)": {"raw": "0.6", "unit": "元/每秒", "price": 0.6, "currency": "CNY"},
- "视频生成(1080P)": {"raw": "1", "unit": "元/每秒", "price": 1.0, "currency": "CNY"},
- }
- # ── 测试数据3:非阶梯(假设某个简单模型) ──
- prices_simple = {
- "输入": {"raw": "0.5", "unit": "元/每百万tokens", "price": 0.5, "currency": "CNY"},
- "输出": {"raw": "2.0", "unit": "元/每百万tokens", "price": 2.0, "currency": "CNY"},
- }
- def test_case(name: str, prices: dict):
- print(f"\n{'='*60}")
- print(f"测试:{name}")
- print(f"{'='*60}")
- print("输入 prices:")
- print(json.dumps(prices, ensure_ascii=False, indent=2))
- print("\n解析结果:")
- result = parse_prices(prices)
- print(json.dumps(result, ensure_ascii=False, indent=2))
- if __name__ == "__main__":
- test_case("qwen3-max 阶梯计费", prices_qwen3_max)
- test_case("wan2.6-i2v 按单位计费", prices_wan26_i2v)
- test_case("简单非阶梯", prices_simple)
- # ── 测试数据4:qwen-flash 含无上限阶梯 ──
- prices_qwen_flash = {
- "input<=32k": {
- "输入": {"raw": "0.15", "unit": "元/每百万tokens", "price": 0.15, "currency": "CNY"},
- "输出": {"raw": "0.6", "unit": "元/每百万tokens", "price": 0.6, "currency": "CNY"},
- },
- "32k<input<=256k": {
- "输入": {"raw": "0.6", "unit": "元/每百万tokens", "price": 0.6, "currency": "CNY"},
- "输出": {"raw": "2.4", "unit": "元/每百万tokens", "price": 2.4, "currency": "CNY"},
- },
- "256k<input": {
- "输入": {"raw": "1.2", "unit": "元/每百万tokens", "price": 1.2, "currency": "CNY"},
- "输出": {"raw": "4.8", "unit": "元/每百万tokens", "price": 4.8, "currency": "CNY"},
- },
- }
- test_case("qwen-flash 含无上限阶梯", prices_qwen_flash)
|