paygent-sdk 3.0.0__py3-none-any.whl → 4.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
paygent_sdk/models.py CHANGED
@@ -3,21 +3,7 @@ Data models for the Paygent SDK.
3
3
  """
4
4
 
5
5
  from dataclasses import dataclass
6
- from typing import Dict
7
-
8
- # Import constants
9
- from .constants import (
10
- OpenAIModels,
11
- AnthropicModels,
12
- GoogleDeepMindModels,
13
- MetaModels,
14
- AWSModels,
15
- MistralAIModels,
16
- CohereModels,
17
- DeepSeekModels,
18
- MoonshotAIModels,
19
- )
20
-
6
+ from typing import Dict, Optional, Any
21
7
 
22
8
  @dataclass
23
9
  class UsageData:
@@ -48,14 +34,6 @@ class APIRequest:
48
34
  amount: float
49
35
 
50
36
 
51
- @dataclass
52
- class ModelPricing:
53
- """Represents pricing information for different models."""
54
- prompt_tokens_cost: float
55
- completion_tokens_cost: float
56
- cached_tokens_cost: Optional[float] = None # Optional cached token cost (if None, model doesn't support caching)
57
-
58
-
59
37
  @dataclass
60
38
  class SttUsageData:
61
39
  """Represents the STT usage data structure."""
@@ -72,470 +50,70 @@ class TtsUsageData:
72
50
  character_count: int # Number of characters
73
51
 
74
52
 
75
- @dataclass
76
- class SttModelPricing:
77
- """Represents pricing information for STT models (cost per hour in USD)."""
78
- cost_per_hour: float # Cost per hour in USD
79
-
53
+ # New data models for V2 API and customer management
80
54
 
81
55
  @dataclass
82
- class TtsModelPricing:
83
- """Represents pricing information for TTS models (cost per 1 million characters in USD)."""
84
- cost_per_million_characters: float # Cost per 1 million characters in USD
85
-
56
+ class RawUsageData:
57
+ """Raw usage data for V2 API (server-side cost calculation)."""
58
+ provider: str
59
+ model: str
60
+ input_tokens: Optional[int] = None
61
+ output_tokens: Optional[int] = None
62
+ cached_tokens: Optional[int] = None
63
+ audio_duration: Optional[int] = None # for STT (in seconds)
64
+ character_count: Optional[int] = None # for TTS
86
65
 
87
- # Default model pricing (cost per 1000 tokens in USD)
88
- MODEL_PRICING: Dict[str, ModelPricing] = {
89
- # OpenAI Models (pricing per 1000 tokens)
90
- OpenAIModels.GPT_5: ModelPricing(
91
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
92
- cached_tokens_cost=0.000125, # 90% discount for cached tokens
93
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
94
- ),
95
- OpenAIModels.GPT_5_MINI: ModelPricing(
96
- prompt_tokens_cost=0.00025, # $0.00025 per 1000 tokens
97
- cached_tokens_cost=0.000025, # 90% discount for cached tokens
98
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
99
- ),
100
- OpenAIModels.GPT_5_NANO: ModelPricing(
101
- prompt_tokens_cost=0.00005, # $0.00005 per 1000 tokens
102
- cached_tokens_cost=0.000005, # 90% discount for cached tokens
103
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
104
- ),
105
- OpenAIModels.GPT_5_CHAT_LATEST: ModelPricing(
106
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
107
- cached_tokens_cost=0.000125, # 90% discount for cached tokens
108
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
109
- ),
110
- OpenAIModels.GPT_5_CODEX: ModelPricing(
111
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
112
- cached_tokens_cost=0.000125, # 90% discount for cached tokens
113
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
114
- ),
115
- OpenAIModels.GPT_5_PRO: ModelPricing(
116
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
117
- completion_tokens_cost=0.12 # $0.12 per 1000 tokens
118
- ),
119
- OpenAIModels.GPT_5_SEARCH_API: ModelPricing(
120
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
121
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
122
- ),
123
- OpenAIModels.GPT_4_1: ModelPricing(
124
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
125
- cached_tokens_cost=0.0005, # 50% discount for cached tokens
126
- completion_tokens_cost=0.008 # $0.008 per 1000 tokens
127
- ),
128
- OpenAIModels.GPT_4_1_MINI: ModelPricing(
129
- prompt_tokens_cost=0.0004, # $0.0004 per 1000 tokens
130
- cached_tokens_cost=0.0001, # 50% discount for cached tokens
131
- completion_tokens_cost=0.0016 # $0.0016 per 1000 tokens
132
- ),
133
- OpenAIModels.GPT_4_1_NANO: ModelPricing(
134
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
135
- cached_tokens_cost=0.000025, # 50% discount for cached tokens
136
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
137
- ),
138
- OpenAIModels.GPT_4O: ModelPricing(
139
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
140
- cached_tokens_cost=0.00125, # 50% discount for cached tok
141
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
142
- ),
143
- OpenAIModels.GPT_4O_2024_05_13: ModelPricing(
144
- prompt_tokens_cost=0.005, # $0.005 per 1000 tokens
145
- cached_tokens_cost=0.0025, # 50% discount for cached tokens
146
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
147
- ),
148
- OpenAIModels.GPT_4O_MINI: ModelPricing(
149
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
150
- cached_tokens_cost=0.000075, # 50% discount for cached tokens
151
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
152
- ),
153
- OpenAIModels.GPT_REALTIME: ModelPricing(
154
- prompt_tokens_cost=0.004, # $0.004 per 1000 tokens
155
- completion_tokens_cost=0.016 # $0.016 per 1000 tokens
156
- ),
157
- OpenAIModels.GPT_REALTIME_MINI: ModelPricing(
158
- prompt_tokens_cost=0.0006, # $0.0006 per 1000 tokens
159
- completion_tokens_cost=0.0024 # $0.0024 per 1000 tokens
160
- ),
161
- OpenAIModels.GPT_4O_REALTIME_PREVIEW: ModelPricing(
162
- prompt_tokens_cost=0.005, # $0.005 per 1000 tokens
163
- cached_tokens_cost=0.0025, # 50% discount for cached tokens
164
- completion_tokens_cost=0.02 # $0.02 per 1000 tokens
165
- ),
166
- OpenAIModels.GPT_4O_MINI_REALTIME_PREVIEW: ModelPricing(
167
- prompt_tokens_cost=0.0006, # $0.0006 per 1000 tokens
168
- cached_tokens_cost=0.0003, # 50% discount for cached tokens
169
- completion_tokens_cost=0.0024 # $0.0024 per 1000 tokens
170
- ),
171
- OpenAIModels.GPT_AUDIO: ModelPricing(
172
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
173
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
174
- ),
175
- OpenAIModels.GPT_AUDIO_MINI: ModelPricing(
176
- prompt_tokens_cost=0.0006, # $0.0006 per 1000 tokens
177
- completion_tokens_cost=0.0024 # $0.0024 per 1000 tokens
178
- ),
179
- OpenAIModels.GPT_4O_AUDIO_PREVIEW: ModelPricing(
180
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
181
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
182
- ),
183
- OpenAIModels.GPT_4O_MINI_AUDIO_PREVIEW: ModelPricing(
184
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
185
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
186
- ),
187
- OpenAIModels.O1: ModelPricing(
188
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
189
- completion_tokens_cost=0.06 # $0.06 per 1000 tokens
190
- ),
191
- OpenAIModels.O1_PRO: ModelPricing(
192
- prompt_tokens_cost=0.15, # $0.15 per 1000 tokens
193
- completion_tokens_cost=0.6 # $0.6 per 1000 tokens
194
- ),
195
- OpenAIModels.O3_PRO: ModelPricing(
196
- prompt_tokens_cost=0.02, # $0.02 per 1000 tokens
197
- completion_tokens_cost=0.08 # $0.08 per 1000 tokens
198
- ),
199
- OpenAIModels.O3: ModelPricing(
200
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
201
- completion_tokens_cost=0.008 # $0.008 per 1000 tokens
202
- ),
203
- OpenAIModels.O3_DEEP_RESEARCH: ModelPricing(
204
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
205
- completion_tokens_cost=0.04 # $0.04 per 1000 tokens
206
- ),
207
- OpenAIModels.O4_MINI: ModelPricing(
208
- prompt_tokens_cost=0.0011, # $0.0011 per 1000 tokens
209
- completion_tokens_cost=0.0044 # $0.0044 per 1000 tokens
210
- ),
211
- OpenAIModels.O4_MINI_DEEP_RESEARCH: ModelPricing(
212
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
213
- completion_tokens_cost=0.008 # $0.008 per 1000 tokens
214
- ),
215
- OpenAIModels.O3_MINI: ModelPricing(
216
- prompt_tokens_cost=0.0011, # $0.0011 per 1000 tokens
217
- completion_tokens_cost=0.0044 # $0.0044 per 1000 tokens
218
- ),
219
- OpenAIModels.O1_MINI: ModelPricing(
220
- prompt_tokens_cost=0.0011, # $0.0011 per 1000 tokens
221
- completion_tokens_cost=0.0044 # $0.0044 per 1000 tokens
222
- ),
223
- OpenAIModels.CODEX_MINI_LATEST: ModelPricing(
224
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
225
- completion_tokens_cost=0.006 # $0.006 per 1000 tokens
226
- ),
227
- OpenAIModels.GPT_4O_MINI_SEARCH_PREVIEW: ModelPricing(
228
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
229
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
230
- ),
231
- OpenAIModels.GPT_4O_SEARCH_PREVIEW: ModelPricing(
232
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
233
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
234
- ),
235
- OpenAIModels.COMPUTER_USE_PREVIEW: ModelPricing(
236
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
237
- completion_tokens_cost=0.012 # $0.012 per 1000 tokens
238
- ),
239
- OpenAIModels.CHATGPT_4O_LATEST: ModelPricing(
240
- prompt_tokens_cost=0.005, # $0.005 per 1000 tokens
241
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
242
- ),
243
- OpenAIModels.GPT_4_TURBO_2024_04_09: ModelPricing(
244
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
245
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
246
- ),
247
- OpenAIModels.GPT_4_0125_PREVIEW: ModelPricing(
248
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
249
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
250
- ),
251
- OpenAIModels.GPT_4_1106_PREVIEW: ModelPricing(
252
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
253
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
254
- ),
255
- OpenAIModels.GPT_4_1106_VISION_PREVIEW: ModelPricing(
256
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
257
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
258
- ),
259
- OpenAIModels.GPT_4_0613: ModelPricing(
260
- prompt_tokens_cost=0.03, # $0.03 per 1000 tokens
261
- completion_tokens_cost=0.06 # $0.06 per 1000 tokens
262
- ),
263
- OpenAIModels.GPT_4_0314: ModelPricing(
264
- prompt_tokens_cost=0.03, # $0.03 per 1000 tokens
265
- completion_tokens_cost=0.06 # $0.06 per 1000 tokens
266
- ),
267
- OpenAIModels.GPT_4_32K: ModelPricing(
268
- prompt_tokens_cost=0.06, # $0.06 per 1000 tokens
269
- completion_tokens_cost=0.12 # $0.12 per 1000 tokens
270
- ),
271
- OpenAIModels.GPT_3_5_TURBO: ModelPricing(
272
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
273
- completion_tokens_cost=0.0015 # $0.0015 per 1000 tokens
274
- ),
275
- OpenAIModels.GPT_3_5_TURBO_0125: ModelPricing(
276
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
277
- completion_tokens_cost=0.0015 # $0.0015 per 1000 tokens
278
- ),
279
- OpenAIModels.GPT_3_5_TURBO_1106: ModelPricing(
280
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
281
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
282
- ),
283
- OpenAIModels.GPT_3_5_TURBO_0613: ModelPricing(
284
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
285
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
286
- ),
287
- OpenAIModels.GPT_3_5_0301: ModelPricing(
288
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
289
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
290
- ),
291
- OpenAIModels.GPT_3_5_TURBO_INSTRUCT: ModelPricing(
292
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
293
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
294
- ),
295
- OpenAIModels.GPT_3_5_TURBO_16K_0613: ModelPricing(
296
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
297
- completion_tokens_cost=0.004 # $0.004 per 1000 tokens
298
- ),
299
- OpenAIModels.DAVINCI_002: ModelPricing(
300
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
301
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
302
- ),
303
- OpenAIModels.BABBAGE_002: ModelPricing(
304
- prompt_tokens_cost=0.0004, # $0.0004 per 1000 tokens
305
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
306
- ),
307
66
 
308
- # Anthropic Models (pricing per 1000 tokens)
309
- AnthropicModels.SONNET_4_5: ModelPricing(
310
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
311
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
312
- ),
313
- AnthropicModels.HAIKU_4_5: ModelPricing(
314
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
315
- completion_tokens_cost=0.005 # $0.005 per 1000 tokens
316
- ),
317
- AnthropicModels.OPUS_4_1: ModelPricing(
318
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
319
- completion_tokens_cost=0.075 # $0.075 per 1000 tokens
320
- ),
321
- AnthropicModels.SONNET_4: ModelPricing(
322
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
323
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
324
- ),
325
- AnthropicModels.OPUS_4: ModelPricing(
326
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
327
- completion_tokens_cost=0.075 # $0.075 per 1000 tokens
328
- ),
329
- AnthropicModels.SONNET_3_7: ModelPricing(
330
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
331
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
332
- ),
333
- AnthropicModels.HAIKU_3_5: ModelPricing(
334
- prompt_tokens_cost=0.0008, # $0.0008 per 1000 tokens
335
- completion_tokens_cost=0.004 # $0.004 per 1000 tokens
336
- ),
337
- AnthropicModels.OPUS_3: ModelPricing(
338
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
339
- completion_tokens_cost=0.075 # $0.075 per 1000 tokens
340
- ),
341
- AnthropicModels.HAIKU_3: ModelPricing(
342
- prompt_tokens_cost=0.00025, # $0.00025 per 1000 tokens
343
- completion_tokens_cost=0.00125 # $0.00125 per 1000 tokens
344
- ),
67
+ @dataclass
68
+ class CostBreakdown:
69
+ """Cost breakdown details."""
70
+ input_cost: float
71
+ output_cost: float
72
+ cached_cost: float
73
+ audio_cost: float
74
+ total_cost: float
345
75
 
346
- # Google DeepMind Models (pricing per 1000 tokens)
347
- GoogleDeepMindModels.GEMINI_2_5_PRO: ModelPricing(
348
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
349
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
350
- ),
351
- GoogleDeepMindModels.GEMINI_2_5_FLASH: ModelPricing(
352
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
353
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
354
- ),
355
- GoogleDeepMindModels.GEMINI_2_5_FLASH_PREVIEW: ModelPricing(
356
- prompt_tokens_cost=0.3, # $0.30 per 1000 tokens
357
- completion_tokens_cost=2.5 # $2.50 per 1000 tokens
358
- ),
359
- GoogleDeepMindModels.GEMINI_2_5_FLASH_LITE: ModelPricing(
360
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
361
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
362
- ),
363
- GoogleDeepMindModels.GEMINI_2_5_FLASH_LITE_PREVIEW: ModelPricing(
364
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
365
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
366
- ),
367
- GoogleDeepMindModels.GEMINI_2_5_FLASH_NATIVE_AUDIO: ModelPricing(
368
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
369
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
370
- ),
371
- GoogleDeepMindModels.GEMINI_2_5_FLASH_IMAGE: ModelPricing(
372
- prompt_tokens_cost=0.0003, # $0.0003 per 1000 tokens
373
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
374
- ),
375
- GoogleDeepMindModels.GEMINI_2_5_FLASH_PREVIEW_TTS: ModelPricing(
376
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
377
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
378
- ),
379
- GoogleDeepMindModels.GEMINI_2_5_PRO_PREVIEW_TTS: ModelPricing(
380
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
381
- completion_tokens_cost=0.02 # $0.02 per 1000 tokens
382
- ),
383
- GoogleDeepMindModels.GEMINI_2_5_COMPUTER_USE_PREVIEW: ModelPricing(
384
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
385
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
386
- ),
387
76
 
388
- # Meta Models (pricing per 1000 tokens)
389
- MetaModels.LLAMA_4_MAVERICK: ModelPricing(
390
- prompt_tokens_cost=0.00027, # $0.00027 per 1000 tokens
391
- completion_tokens_cost=0.00085 # $0.00085 per 1000 tokens
392
- ),
393
- MetaModels.LLAMA_4_SCOUT: ModelPricing(
394
- prompt_tokens_cost=0.00018, # $0.00018 per 1000 tokens
395
- completion_tokens_cost=0.00059 # $0.00059 per 1000 tokens
396
- ),
397
- MetaModels.LLAMA_3_3_70B_INSTRUCT_TURBO: ModelPricing(
398
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
399
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
400
- ),
401
- MetaModels.LLAMA_3_2_3B_INSTRUCT_TURBO: ModelPricing(
402
- prompt_tokens_cost=0.00006, # $0.00006 per 1000 tokens
403
- completion_tokens_cost=0.00006 # $0.00006 per 1000 tokens
404
- ),
405
- MetaModels.LLAMA_3_1_405B_INSTRUCT_TURBO: ModelPricing(
406
- prompt_tokens_cost=0.0035, # $0.0035 per 1000 tokens
407
- completion_tokens_cost=0.0035 # $0.0035 per 1000 tokens
408
- ),
409
- MetaModels.LLAMA_3_1_70B_INSTRUCT_TURBO: ModelPricing(
410
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
411
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
412
- ),
413
- MetaModels.LLAMA_3_1_8B_INSTRUCT_TURBO: ModelPricing(
414
- prompt_tokens_cost=0.00018, # $0.00018 per 1000 tokens
415
- completion_tokens_cost=0.00018 # $0.00018 per 1000 tokens
416
- ),
417
- MetaModels.LLAMA_3_70B_INSTRUCT_TURBO: ModelPricing(
418
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
419
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
420
- ),
421
- MetaModels.LLAMA_3_70B_INSTRUCT_REFERENCE: ModelPricing(
422
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
423
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
424
- ),
425
- MetaModels.LLAMA_3_8B_INSTRUCT_LITE: ModelPricing(
426
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
427
- completion_tokens_cost=0.0001 # $0.0001 per 1000 tokens
428
- ),
429
- MetaModels.LLAMA_2: ModelPricing(
430
- prompt_tokens_cost=0.0009, # $0.0009 per 1000 tokens
431
- completion_tokens_cost=0.0009 # $0.0009 per 1000 tokens
432
- ),
433
- MetaModels.LLAMA_GUARD_4_12B: ModelPricing(
434
- prompt_tokens_cost=0.0002, # $0.0002 per 1000 tokens
435
- completion_tokens_cost=0.0002 # $0.0002 per 1000 tokens
436
- ),
437
- MetaModels.LLAMA_GUARD_3_11B_VISION_TURBO: ModelPricing(
438
- prompt_tokens_cost=0.00018, # $0.00018 per 1000 tokens
439
- completion_tokens_cost=0.00018 # $0.00018 per 1000 tokens
440
- ),
441
- MetaModels.LLAMA_GUARD_3_8B: ModelPricing(
442
- prompt_tokens_cost=0.0002, # $0.0002 per 1000 tokens
443
- completion_tokens_cost=0.0002 # $0.0002 per 1000 tokens
444
- ),
445
- MetaModels.LLAMA_GUARD_2_8B: ModelPricing(
446
- prompt_tokens_cost=0.0002, # $0.0002 per 1000 tokens
447
- completion_tokens_cost=0.0002 # $0.0002 per 1000 tokens
448
- ),
449
- MetaModels.SALESFORCE_LLAMA_RANK_V1_8B: ModelPricing(
450
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
451
- completion_tokens_cost=0.0001 # $0.0001 per 1000 tokens
452
- ),
77
+ @dataclass
78
+ class SendUsageV2Response:
79
+ """Response from V2 usage API."""
80
+ cp_data_id: str
81
+ calculated_cost: float
82
+ breakdown: CostBreakdown
83
+ model_metadata: Dict[str, Any]
453
84
 
454
- # AWS Models (pricing per 1000 tokens)
455
- AWSModels.AMAZON_NOVA_MICRO: ModelPricing(
456
- prompt_tokens_cost=0.035, # $0.035 per 1000 tokens
457
- completion_tokens_cost=0.14 # $0.14 per 1000 tokens
458
- ),
459
- AWSModels.AMAZON_NOVA_LITE: ModelPricing(
460
- prompt_tokens_cost=0.06, # $0.06 per 1000 tokens
461
- completion_tokens_cost=0.24 # $0.24 per 1000 tokens
462
- ),
463
- AWSModels.AMAZON_NOVA_PRO: ModelPricing(
464
- prompt_tokens_cost=0.8, # $0.8 per 1000 tokens
465
- completion_tokens_cost=3.2 # $3.2 per 1000 tokens
466
- ),
467
85
 
468
- # Mistral AI Models (pricing per 1000 tokens)
469
- MistralAIModels.MISTRAL_7B_INSTRUCT: ModelPricing(
470
- prompt_tokens_cost=0.028, # $0.028 per 1000 tokens
471
- completion_tokens_cost=0.054 # $0.054 per 1000 tokens
472
- ),
473
- MistralAIModels.MISTRAL_LARGE: ModelPricing(
474
- prompt_tokens_cost=2.0, # $2.00 per 1000 tokens
475
- completion_tokens_cost=6.0 # $6.00 per 1000 tokens
476
- ),
477
- MistralAIModels.MISTRAL_SMALL: ModelPricing(
478
- prompt_tokens_cost=0.2, # $0.20 per 1000 tokens
479
- completion_tokens_cost=0.6 # $0.60 per 1000 tokens
480
- ),
481
- MistralAIModels.MISTRAL_MEDIUM: ModelPricing(
482
- prompt_tokens_cost=0.4, # $0.40 per 1000 tokens
483
- completion_tokens_cost=2.0 # $2.00 per 1000 tokens
484
- ),
86
+ @dataclass
87
+ class Customer:
88
+ """Customer data model."""
89
+ id: str
90
+ external_id: str
91
+ name: str
92
+ email: Optional[str] = None
93
+ website: Optional[str] = None
94
+ phone: Optional[str] = None
95
+ address_line1: Optional[str] = None
96
+ address_line2: Optional[str] = None
97
+ city: Optional[str] = None
98
+ state: Optional[str] = None
99
+ zip_code: Optional[str] = None
100
+ country: Optional[str] = None
101
+ created_at: Optional[str] = None
102
+ updated_at: Optional[str] = None
485
103
 
486
- # Cohere Models (pricing per 1000 tokens)
487
- CohereModels.COMMAND_R7B: ModelPricing(
488
- prompt_tokens_cost=0.0000375, # $0.0000375 per 1000 tokens
489
- completion_tokens_cost=0.00015 # $0.00015 per 1000 tokens
490
- ),
491
- CohereModels.COMMAND_R: ModelPricing(
492
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
493
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
494
- ),
495
- CohereModels.COMMAND_R_PLUS: ModelPricing(
496
- prompt_tokens_cost=0.00250, # $0.00250 per 1000 tokens
497
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
498
- ),
499
- CohereModels.COMMAND_A: ModelPricing(
500
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
501
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
502
- ),
503
- CohereModels.AYA_EXPANSE_8B_32B: ModelPricing(
504
- prompt_tokens_cost=0.00050, # $0.00050 per 1000 tokens
505
- completion_tokens_cost=0.00150 # $0.00150 per 1000 tokens
506
- ),
507
104
 
508
- # DeepSeek Models (pricing per 1000 tokens)
509
- DeepSeekModels.DEEPSEEK_CHAT: ModelPricing(
510
- prompt_tokens_cost=0.00007, # $0.00007 per 1000 tokens
511
- completion_tokens_cost=0.00027 # $0.00027 per 1000 tokens
512
- ),
513
- DeepSeekModels.DEEPSEEK_REASONER: ModelPricing(
514
- prompt_tokens_cost=0.00014, # $0.00014 per 1000 tokens
515
- completion_tokens_cost=0.00219 # $0.00219 per 1000 tokens
516
- ),
517
- DeepSeekModels.DEEPSEEK_R1_GLOBAL: ModelPricing(
518
- prompt_tokens_cost=0.00135, # $0.00135 per 1000 tokens
519
- completion_tokens_cost=0.0054 # $0.0054 per 1000 tokens
520
- ),
521
- DeepSeekModels.DEEPSEEK_R1_DATAZONE: ModelPricing(
522
- prompt_tokens_cost=0.001485, # $0.001485 per 1000 tokens
523
- completion_tokens_cost=0.00594 # $0.00594 per 1000 tokens
524
- ),
525
- DeepSeekModels.DEEPSEEK_V3_2_EXP: ModelPricing(
526
- prompt_tokens_cost=0.000028, # $0.000028 per 1000 tokens
527
- completion_tokens_cost=0.00042 # $0.00042 per 1000 tokens
528
- ),
105
+ @dataclass
106
+ class CustomerCreateOrGetRequest:
107
+ """Request model for creating or getting a customer."""
108
+ name: str
109
+ external_id: str
110
+ email: Optional[str] = None
111
+ website: Optional[str] = None
112
+ phone: Optional[str] = None
113
+ address_line1: Optional[str] = None
114
+ address_line2: Optional[str] = None
115
+ city: Optional[str] = None
116
+ state: Optional[str] = None
117
+ zip_code: Optional[str] = None
118
+ country: Optional[str] = None
529
119
 
530
- # Moonshot AI / Kimi Models (pricing per 1000 tokens)
531
- MoonshotAIModels.KIMI_K2_INSTRUCT_0905: ModelPricing(
532
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
533
- cached_tokens_cost=0.0005, # $0.0005 per 1000 tokens (as specified)
534
- completion_tokens_cost=0.003 # $0.003 per 1000 tokens
535
- ),
536
- MoonshotAIModels.KIMI_K2_0905_1T_256K: ModelPricing(
537
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
538
- # cached_tokens_cost not specified - model doesn't support cached tokens
539
- completion_tokens_cost=0.003 # $0.003 per 1000 tokens
540
- ),
541
- }