paygent-sdk 3.0.1__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,475 +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_2_CHAT_LATEST: ModelPricing(
111
- prompt_tokens_cost=0.00175, # $1.75 per 1M tokens ($0.00175 per 1k)
112
- cached_tokens_cost=0.000175, # $0.175 per 1M tokens ($0.000175 per 1k)
113
- completion_tokens_cost=0.014 # $14.00 per 1M tokens ($0.014 per 1k)
114
- ),
115
- OpenAIModels.GPT_5_CODEX: ModelPricing(
116
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
117
- cached_tokens_cost=0.000125, # 90% discount for cached tokens
118
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
119
- ),
120
- OpenAIModels.GPT_5_PRO: ModelPricing(
121
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
122
- completion_tokens_cost=0.12 # $0.12 per 1000 tokens
123
- ),
124
- OpenAIModels.GPT_5_SEARCH_API: ModelPricing(
125
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
126
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
127
- ),
128
- OpenAIModels.GPT_4_1: ModelPricing(
129
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
130
- cached_tokens_cost=0.0005, # 50% discount for cached tokens
131
- completion_tokens_cost=0.008 # $0.008 per 1000 tokens
132
- ),
133
- OpenAIModels.GPT_4_1_MINI: ModelPricing(
134
- prompt_tokens_cost=0.0004, # $0.0004 per 1000 tokens
135
- cached_tokens_cost=0.0001, # 50% discount for cached tokens
136
- completion_tokens_cost=0.0016 # $0.0016 per 1000 tokens
137
- ),
138
- OpenAIModels.GPT_4_1_NANO: ModelPricing(
139
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
140
- cached_tokens_cost=0.000025, # 50% discount for cached tokens
141
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
142
- ),
143
- OpenAIModels.GPT_4O: ModelPricing(
144
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
145
- cached_tokens_cost=0.00125, # 50% discount for cached tok
146
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
147
- ),
148
- OpenAIModels.GPT_4O_2024_05_13: ModelPricing(
149
- prompt_tokens_cost=0.005, # $0.005 per 1000 tokens
150
- cached_tokens_cost=0.0025, # 50% discount for cached tokens
151
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
152
- ),
153
- OpenAIModels.GPT_4O_MINI: ModelPricing(
154
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
155
- cached_tokens_cost=0.000075, # 50% discount for cached tokens
156
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
157
- ),
158
- OpenAIModels.GPT_REALTIME: ModelPricing(
159
- prompt_tokens_cost=0.004, # $0.004 per 1000 tokens
160
- completion_tokens_cost=0.016 # $0.016 per 1000 tokens
161
- ),
162
- OpenAIModels.GPT_REALTIME_MINI: ModelPricing(
163
- prompt_tokens_cost=0.0006, # $0.0006 per 1000 tokens
164
- completion_tokens_cost=0.0024 # $0.0024 per 1000 tokens
165
- ),
166
- OpenAIModels.GPT_4O_REALTIME_PREVIEW: ModelPricing(
167
- prompt_tokens_cost=0.005, # $0.005 per 1000 tokens
168
- cached_tokens_cost=0.0025, # 50% discount for cached tokens
169
- completion_tokens_cost=0.02 # $0.02 per 1000 tokens
170
- ),
171
- OpenAIModels.GPT_4O_MINI_REALTIME_PREVIEW: ModelPricing(
172
- prompt_tokens_cost=0.0006, # $0.0006 per 1000 tokens
173
- cached_tokens_cost=0.0003, # 50% discount for cached tokens
174
- completion_tokens_cost=0.0024 # $0.0024 per 1000 tokens
175
- ),
176
- OpenAIModels.GPT_AUDIO: ModelPricing(
177
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
178
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
179
- ),
180
- OpenAIModels.GPT_AUDIO_MINI: ModelPricing(
181
- prompt_tokens_cost=0.0006, # $0.0006 per 1000 tokens
182
- completion_tokens_cost=0.0024 # $0.0024 per 1000 tokens
183
- ),
184
- OpenAIModels.GPT_4O_AUDIO_PREVIEW: ModelPricing(
185
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
186
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
187
- ),
188
- OpenAIModels.GPT_4O_MINI_AUDIO_PREVIEW: ModelPricing(
189
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
190
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
191
- ),
192
- OpenAIModels.O1: ModelPricing(
193
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
194
- completion_tokens_cost=0.06 # $0.06 per 1000 tokens
195
- ),
196
- OpenAIModels.O1_PRO: ModelPricing(
197
- prompt_tokens_cost=0.15, # $0.15 per 1000 tokens
198
- completion_tokens_cost=0.6 # $0.6 per 1000 tokens
199
- ),
200
- OpenAIModels.O3_PRO: ModelPricing(
201
- prompt_tokens_cost=0.02, # $0.02 per 1000 tokens
202
- completion_tokens_cost=0.08 # $0.08 per 1000 tokens
203
- ),
204
- OpenAIModels.O3: ModelPricing(
205
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
206
- completion_tokens_cost=0.008 # $0.008 per 1000 tokens
207
- ),
208
- OpenAIModels.O3_DEEP_RESEARCH: ModelPricing(
209
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
210
- completion_tokens_cost=0.04 # $0.04 per 1000 tokens
211
- ),
212
- OpenAIModels.O4_MINI: ModelPricing(
213
- prompt_tokens_cost=0.0011, # $0.0011 per 1000 tokens
214
- completion_tokens_cost=0.0044 # $0.0044 per 1000 tokens
215
- ),
216
- OpenAIModels.O4_MINI_DEEP_RESEARCH: ModelPricing(
217
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
218
- completion_tokens_cost=0.008 # $0.008 per 1000 tokens
219
- ),
220
- OpenAIModels.O3_MINI: ModelPricing(
221
- prompt_tokens_cost=0.0011, # $0.0011 per 1000 tokens
222
- completion_tokens_cost=0.0044 # $0.0044 per 1000 tokens
223
- ),
224
- OpenAIModels.O1_MINI: ModelPricing(
225
- prompt_tokens_cost=0.0011, # $0.0011 per 1000 tokens
226
- completion_tokens_cost=0.0044 # $0.0044 per 1000 tokens
227
- ),
228
- OpenAIModels.CODEX_MINI_LATEST: ModelPricing(
229
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
230
- completion_tokens_cost=0.006 # $0.006 per 1000 tokens
231
- ),
232
- OpenAIModels.GPT_4O_MINI_SEARCH_PREVIEW: ModelPricing(
233
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
234
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
235
- ),
236
- OpenAIModels.GPT_4O_SEARCH_PREVIEW: ModelPricing(
237
- prompt_tokens_cost=0.0025, # $0.0025 per 1000 tokens
238
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
239
- ),
240
- OpenAIModels.COMPUTER_USE_PREVIEW: ModelPricing(
241
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
242
- completion_tokens_cost=0.012 # $0.012 per 1000 tokens
243
- ),
244
- OpenAIModels.CHATGPT_4O_LATEST: ModelPricing(
245
- prompt_tokens_cost=0.005, # $0.005 per 1000 tokens
246
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
247
- ),
248
- OpenAIModels.GPT_4_TURBO_2024_04_09: ModelPricing(
249
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
250
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
251
- ),
252
- OpenAIModels.GPT_4_0125_PREVIEW: ModelPricing(
253
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
254
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
255
- ),
256
- OpenAIModels.GPT_4_1106_PREVIEW: ModelPricing(
257
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
258
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
259
- ),
260
- OpenAIModels.GPT_4_1106_VISION_PREVIEW: ModelPricing(
261
- prompt_tokens_cost=0.01, # $0.01 per 1000 tokens
262
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
263
- ),
264
- OpenAIModels.GPT_4_0613: ModelPricing(
265
- prompt_tokens_cost=0.03, # $0.03 per 1000 tokens
266
- completion_tokens_cost=0.06 # $0.06 per 1000 tokens
267
- ),
268
- OpenAIModels.GPT_4_0314: ModelPricing(
269
- prompt_tokens_cost=0.03, # $0.03 per 1000 tokens
270
- completion_tokens_cost=0.06 # $0.06 per 1000 tokens
271
- ),
272
- OpenAIModels.GPT_4_32K: ModelPricing(
273
- prompt_tokens_cost=0.06, # $0.06 per 1000 tokens
274
- completion_tokens_cost=0.12 # $0.12 per 1000 tokens
275
- ),
276
- OpenAIModels.GPT_3_5_TURBO: ModelPricing(
277
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
278
- completion_tokens_cost=0.0015 # $0.0015 per 1000 tokens
279
- ),
280
- OpenAIModels.GPT_3_5_TURBO_0125: ModelPricing(
281
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
282
- completion_tokens_cost=0.0015 # $0.0015 per 1000 tokens
283
- ),
284
- OpenAIModels.GPT_3_5_TURBO_1106: ModelPricing(
285
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
286
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
287
- ),
288
- OpenAIModels.GPT_3_5_TURBO_0613: ModelPricing(
289
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
290
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
291
- ),
292
- OpenAIModels.GPT_3_5_0301: ModelPricing(
293
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
294
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
295
- ),
296
- OpenAIModels.GPT_3_5_TURBO_INSTRUCT: ModelPricing(
297
- prompt_tokens_cost=0.0015, # $0.0015 per 1000 tokens
298
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
299
- ),
300
- OpenAIModels.GPT_3_5_TURBO_16K_0613: ModelPricing(
301
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
302
- completion_tokens_cost=0.004 # $0.004 per 1000 tokens
303
- ),
304
- OpenAIModels.DAVINCI_002: ModelPricing(
305
- prompt_tokens_cost=0.002, # $0.002 per 1000 tokens
306
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
307
- ),
308
- OpenAIModels.BABBAGE_002: ModelPricing(
309
- prompt_tokens_cost=0.0004, # $0.0004 per 1000 tokens
310
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
311
- ),
312
66
 
313
- # Anthropic Models (pricing per 1000 tokens)
314
- AnthropicModels.SONNET_4_5: ModelPricing(
315
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
316
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
317
- ),
318
- AnthropicModels.HAIKU_4_5: ModelPricing(
319
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
320
- completion_tokens_cost=0.005 # $0.005 per 1000 tokens
321
- ),
322
- AnthropicModels.OPUS_4_1: ModelPricing(
323
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
324
- completion_tokens_cost=0.075 # $0.075 per 1000 tokens
325
- ),
326
- AnthropicModels.SONNET_4: ModelPricing(
327
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
328
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
329
- ),
330
- AnthropicModels.OPUS_4: ModelPricing(
331
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
332
- completion_tokens_cost=0.075 # $0.075 per 1000 tokens
333
- ),
334
- AnthropicModels.SONNET_3_7: ModelPricing(
335
- prompt_tokens_cost=0.003, # $0.003 per 1000 tokens
336
- completion_tokens_cost=0.015 # $0.015 per 1000 tokens
337
- ),
338
- AnthropicModels.HAIKU_3_5: ModelPricing(
339
- prompt_tokens_cost=0.0008, # $0.0008 per 1000 tokens
340
- completion_tokens_cost=0.004 # $0.004 per 1000 tokens
341
- ),
342
- AnthropicModels.OPUS_3: ModelPricing(
343
- prompt_tokens_cost=0.015, # $0.015 per 1000 tokens
344
- completion_tokens_cost=0.075 # $0.075 per 1000 tokens
345
- ),
346
- AnthropicModels.HAIKU_3: ModelPricing(
347
- prompt_tokens_cost=0.00025, # $0.00025 per 1000 tokens
348
- completion_tokens_cost=0.00125 # $0.00125 per 1000 tokens
349
- ),
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
350
75
 
351
- # Google DeepMind Models (pricing per 1000 tokens)
352
- GoogleDeepMindModels.GEMINI_2_5_PRO: ModelPricing(
353
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
354
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
355
- ),
356
- GoogleDeepMindModels.GEMINI_2_5_FLASH: ModelPricing(
357
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
358
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
359
- ),
360
- GoogleDeepMindModels.GEMINI_2_5_FLASH_PREVIEW: ModelPricing(
361
- prompt_tokens_cost=0.3, # $0.30 per 1000 tokens
362
- completion_tokens_cost=2.5 # $2.50 per 1000 tokens
363
- ),
364
- GoogleDeepMindModels.GEMINI_2_5_FLASH_LITE: ModelPricing(
365
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
366
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
367
- ),
368
- GoogleDeepMindModels.GEMINI_2_5_FLASH_LITE_PREVIEW: ModelPricing(
369
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
370
- completion_tokens_cost=0.0004 # $0.0004 per 1000 tokens
371
- ),
372
- GoogleDeepMindModels.GEMINI_2_5_FLASH_NATIVE_AUDIO: ModelPricing(
373
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
374
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
375
- ),
376
- GoogleDeepMindModels.GEMINI_2_5_FLASH_IMAGE: ModelPricing(
377
- prompt_tokens_cost=0.0003, # $0.0003 per 1000 tokens
378
- completion_tokens_cost=0.03 # $0.03 per 1000 tokens
379
- ),
380
- GoogleDeepMindModels.GEMINI_2_5_FLASH_PREVIEW_TTS: ModelPricing(
381
- prompt_tokens_cost=0.0005, # $0.0005 per 1000 tokens
382
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
383
- ),
384
- GoogleDeepMindModels.GEMINI_2_5_PRO_PREVIEW_TTS: ModelPricing(
385
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
386
- completion_tokens_cost=0.02 # $0.02 per 1000 tokens
387
- ),
388
- GoogleDeepMindModels.GEMINI_2_5_COMPUTER_USE_PREVIEW: ModelPricing(
389
- prompt_tokens_cost=0.00125, # $0.00125 per 1000 tokens
390
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
391
- ),
392
76
 
393
- # Meta Models (pricing per 1000 tokens)
394
- MetaModels.LLAMA_4_MAVERICK: ModelPricing(
395
- prompt_tokens_cost=0.00027, # $0.00027 per 1000 tokens
396
- completion_tokens_cost=0.00085 # $0.00085 per 1000 tokens
397
- ),
398
- MetaModels.LLAMA_4_SCOUT: ModelPricing(
399
- prompt_tokens_cost=0.00018, # $0.00018 per 1000 tokens
400
- completion_tokens_cost=0.00059 # $0.00059 per 1000 tokens
401
- ),
402
- MetaModels.LLAMA_3_3_70B_INSTRUCT_TURBO: ModelPricing(
403
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
404
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
405
- ),
406
- MetaModels.LLAMA_3_2_3B_INSTRUCT_TURBO: ModelPricing(
407
- prompt_tokens_cost=0.00006, # $0.00006 per 1000 tokens
408
- completion_tokens_cost=0.00006 # $0.00006 per 1000 tokens
409
- ),
410
- MetaModels.LLAMA_3_1_405B_INSTRUCT_TURBO: ModelPricing(
411
- prompt_tokens_cost=0.0035, # $0.0035 per 1000 tokens
412
- completion_tokens_cost=0.0035 # $0.0035 per 1000 tokens
413
- ),
414
- MetaModels.LLAMA_3_1_70B_INSTRUCT_TURBO: ModelPricing(
415
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
416
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
417
- ),
418
- MetaModels.LLAMA_3_1_8B_INSTRUCT_TURBO: ModelPricing(
419
- prompt_tokens_cost=0.00018, # $0.00018 per 1000 tokens
420
- completion_tokens_cost=0.00018 # $0.00018 per 1000 tokens
421
- ),
422
- MetaModels.LLAMA_3_70B_INSTRUCT_TURBO: ModelPricing(
423
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
424
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
425
- ),
426
- MetaModels.LLAMA_3_70B_INSTRUCT_REFERENCE: ModelPricing(
427
- prompt_tokens_cost=0.00088, # $0.00088 per 1000 tokens
428
- completion_tokens_cost=0.00088 # $0.00088 per 1000 tokens
429
- ),
430
- MetaModels.LLAMA_3_8B_INSTRUCT_LITE: ModelPricing(
431
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
432
- completion_tokens_cost=0.0001 # $0.0001 per 1000 tokens
433
- ),
434
- MetaModels.LLAMA_2: ModelPricing(
435
- prompt_tokens_cost=0.0009, # $0.0009 per 1000 tokens
436
- completion_tokens_cost=0.0009 # $0.0009 per 1000 tokens
437
- ),
438
- MetaModels.LLAMA_GUARD_4_12B: ModelPricing(
439
- prompt_tokens_cost=0.0002, # $0.0002 per 1000 tokens
440
- completion_tokens_cost=0.0002 # $0.0002 per 1000 tokens
441
- ),
442
- MetaModels.LLAMA_GUARD_3_11B_VISION_TURBO: ModelPricing(
443
- prompt_tokens_cost=0.00018, # $0.00018 per 1000 tokens
444
- completion_tokens_cost=0.00018 # $0.00018 per 1000 tokens
445
- ),
446
- MetaModels.LLAMA_GUARD_3_8B: ModelPricing(
447
- prompt_tokens_cost=0.0002, # $0.0002 per 1000 tokens
448
- completion_tokens_cost=0.0002 # $0.0002 per 1000 tokens
449
- ),
450
- MetaModels.LLAMA_GUARD_2_8B: ModelPricing(
451
- prompt_tokens_cost=0.0002, # $0.0002 per 1000 tokens
452
- completion_tokens_cost=0.0002 # $0.0002 per 1000 tokens
453
- ),
454
- MetaModels.SALESFORCE_LLAMA_RANK_V1_8B: ModelPricing(
455
- prompt_tokens_cost=0.0001, # $0.0001 per 1000 tokens
456
- completion_tokens_cost=0.0001 # $0.0001 per 1000 tokens
457
- ),
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]
458
84
 
459
- # AWS Models (pricing per 1000 tokens)
460
- AWSModels.AMAZON_NOVA_MICRO: ModelPricing(
461
- prompt_tokens_cost=0.035, # $0.035 per 1000 tokens
462
- completion_tokens_cost=0.14 # $0.14 per 1000 tokens
463
- ),
464
- AWSModels.AMAZON_NOVA_LITE: ModelPricing(
465
- prompt_tokens_cost=0.06, # $0.06 per 1000 tokens
466
- completion_tokens_cost=0.24 # $0.24 per 1000 tokens
467
- ),
468
- AWSModels.AMAZON_NOVA_PRO: ModelPricing(
469
- prompt_tokens_cost=0.8, # $0.8 per 1000 tokens
470
- completion_tokens_cost=3.2 # $3.2 per 1000 tokens
471
- ),
472
85
 
473
- # Mistral AI Models (pricing per 1000 tokens)
474
- MistralAIModels.MISTRAL_7B_INSTRUCT: ModelPricing(
475
- prompt_tokens_cost=0.028, # $0.028 per 1000 tokens
476
- completion_tokens_cost=0.054 # $0.054 per 1000 tokens
477
- ),
478
- MistralAIModels.MISTRAL_LARGE: ModelPricing(
479
- prompt_tokens_cost=2.0, # $2.00 per 1000 tokens
480
- completion_tokens_cost=6.0 # $6.00 per 1000 tokens
481
- ),
482
- MistralAIModels.MISTRAL_SMALL: ModelPricing(
483
- prompt_tokens_cost=0.2, # $0.20 per 1000 tokens
484
- completion_tokens_cost=0.6 # $0.60 per 1000 tokens
485
- ),
486
- MistralAIModels.MISTRAL_MEDIUM: ModelPricing(
487
- prompt_tokens_cost=0.4, # $0.40 per 1000 tokens
488
- completion_tokens_cost=2.0 # $2.00 per 1000 tokens
489
- ),
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
490
103
 
491
- # Cohere Models (pricing per 1000 tokens)
492
- CohereModels.COMMAND_R7B: ModelPricing(
493
- prompt_tokens_cost=0.0000375, # $0.0000375 per 1000 tokens
494
- completion_tokens_cost=0.00015 # $0.00015 per 1000 tokens
495
- ),
496
- CohereModels.COMMAND_R: ModelPricing(
497
- prompt_tokens_cost=0.00015, # $0.00015 per 1000 tokens
498
- completion_tokens_cost=0.0006 # $0.0006 per 1000 tokens
499
- ),
500
- CohereModels.COMMAND_R_PLUS: ModelPricing(
501
- prompt_tokens_cost=0.00250, # $0.00250 per 1000 tokens
502
- completion_tokens_cost=0.01 # $0.01 per 1000 tokens
503
- ),
504
- CohereModels.COMMAND_A: ModelPricing(
505
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
506
- completion_tokens_cost=0.002 # $0.002 per 1000 tokens
507
- ),
508
- CohereModels.AYA_EXPANSE_8B_32B: ModelPricing(
509
- prompt_tokens_cost=0.00050, # $0.00050 per 1000 tokens
510
- completion_tokens_cost=0.00150 # $0.00150 per 1000 tokens
511
- ),
512
104
 
513
- # DeepSeek Models (pricing per 1000 tokens)
514
- DeepSeekModels.DEEPSEEK_CHAT: ModelPricing(
515
- prompt_tokens_cost=0.00007, # $0.00007 per 1000 tokens
516
- completion_tokens_cost=0.00027 # $0.00027 per 1000 tokens
517
- ),
518
- DeepSeekModels.DEEPSEEK_REASONER: ModelPricing(
519
- prompt_tokens_cost=0.00014, # $0.00014 per 1000 tokens
520
- completion_tokens_cost=0.00219 # $0.00219 per 1000 tokens
521
- ),
522
- DeepSeekModels.DEEPSEEK_R1_GLOBAL: ModelPricing(
523
- prompt_tokens_cost=0.00135, # $0.00135 per 1000 tokens
524
- completion_tokens_cost=0.0054 # $0.0054 per 1000 tokens
525
- ),
526
- DeepSeekModels.DEEPSEEK_R1_DATAZONE: ModelPricing(
527
- prompt_tokens_cost=0.001485, # $0.001485 per 1000 tokens
528
- completion_tokens_cost=0.00594 # $0.00594 per 1000 tokens
529
- ),
530
- DeepSeekModels.DEEPSEEK_V3_2_EXP: ModelPricing(
531
- prompt_tokens_cost=0.000028, # $0.000028 per 1000 tokens
532
- completion_tokens_cost=0.00042 # $0.00042 per 1000 tokens
533
- ),
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
534
119
 
535
- # Moonshot AI / Kimi Models (pricing per 1000 tokens)
536
- MoonshotAIModels.KIMI_K2_INSTRUCT_0905: ModelPricing(
537
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
538
- cached_tokens_cost=0.0005, # $0.0005 per 1000 tokens (as specified)
539
- completion_tokens_cost=0.003 # $0.003 per 1000 tokens
540
- ),
541
- MoonshotAIModels.KIMI_K2_0905_1T_256K: ModelPricing(
542
- prompt_tokens_cost=0.001, # $0.001 per 1000 tokens
543
- # cached_tokens_cost not specified - model doesn't support cached tokens
544
- completion_tokens_cost=0.003 # $0.003 per 1000 tokens
545
- ),
546
- }