aicmo 0.0.2__py3-none-any.whl → 0.0.4__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.
aicmo/__init__.py CHANGED
@@ -134,7 +134,6 @@ class AICMOClient:
134
134
  tools=tools,
135
135
  tool_choice={"type": "function", "function": {"name": tool_name}}
136
136
  )
137
- tokens = self.get_gpt_tokens(completion, model, tokens)
138
137
  ret_val['completion'] = completion
139
138
  ret_val['status'] = "success"
140
139
  ret_val['tokens'] = self.get_gpt_tokens(completion, model, tokens)
@@ -198,25 +197,34 @@ class AICMOClient:
198
197
  self,
199
198
  data: types.chat.chat_completion.ChatCompletion,
200
199
  model: str,
201
- tokens: dict
200
+ tokens: dict,
201
+ use_openrouter: bool=True
202
202
  ) -> dict:
203
203
  """
204
204
  Calculate the token usage and cost.
205
205
  """
206
- prompt_tokens = data.usage.prompt_tokens
207
- completion_tokens = data.usage.completion_tokens
208
- cost = self.COST.get('openai', {}).get("texts", {}).get(model, {})
209
- openai_input_cost = cost.get('input', None)
210
- openai_output_cost = cost.get('output', None)
211
- if openai_input_cost and openai_output_cost:
212
- tokens['input_cost'] += prompt_tokens * openai_input_cost
213
- tokens['output_cost'] += completion_tokens * openai_output_cost
214
- tokens['total_cost'] = round(tokens['input_cost'] + tokens['output_cost'], 4)
215
- tokens['prompt_tokens'] += prompt_tokens
216
- tokens['completion_tokens'] += completion_tokens
217
- tokens['total_tokens'] += prompt_tokens + completion_tokens
218
- tokens['openai_input_cost'] = openai_input_cost
219
- tokens['openai_output_cost'] = openai_output_cost
206
+ if use_openrouter:
207
+ tokens['total_cost'] += data.usage.cost
208
+ tokens['input_cost'] += data.usage.cost_details['upstream_inference_prompt_cost']
209
+ tokens['output_cost'] += data.usage.cost_details['upstream_inference_completions_cost']
210
+ tokens["prompt_tokens"] += data.usage.prompt_tokens
211
+ tokens["completion_tokens"] += data.usage.completion_tokens
212
+ tokens["total_tokens"] += data.usage.total_tokens
213
+ else:
214
+ prompt_tokens = data.usage.prompt_tokens
215
+ completion_tokens = data.usage.completion_tokens
216
+ cost = self.COST.get('openai', {}).get("texts", {}).get(model, {})
217
+ openai_input_cost = cost.get('input', None)
218
+ openai_output_cost = cost.get('output', None)
219
+ if openai_input_cost and openai_output_cost:
220
+ tokens['input_cost'] += prompt_tokens * openai_input_cost
221
+ tokens['output_cost'] += completion_tokens * openai_output_cost
222
+ tokens['total_cost'] = round(tokens['input_cost'] + tokens['output_cost'], 4)
223
+ tokens['prompt_tokens'] += prompt_tokens
224
+ tokens['completion_tokens'] += completion_tokens
225
+ tokens['total_tokens'] += prompt_tokens + completion_tokens
226
+ tokens['openai_input_cost'] = openai_input_cost
227
+ tokens['openai_output_cost'] = openai_output_cost
220
228
  return tokens
221
229
 
222
230
  def s3_upload_pickle(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aicmo
3
- Version: 0.0.2
3
+ Version: 0.0.4
4
4
  Summary: A package for using aicmo functions and tools
5
5
  Author: Jayr Castro
6
6
  Author-email: jayrcastro.py@gmail.com
@@ -0,0 +1,5 @@
1
+ aicmo/__init__.py,sha256=kqXJeT_TiN5ywY4fHF1DM6TcG6WlQx5-L9t8ih36XII,34238
2
+ aicmo-0.0.4.dist-info/METADATA,sha256=D7_AemHeR9AWAowHIP5kttR8IAtvKHwdzb-LUVoW8vU,1187
3
+ aicmo-0.0.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
4
+ aicmo-0.0.4.dist-info/top_level.txt,sha256=uqMJv53xrmaqWkkPb9xI38tTYnSuPoplqyCzyKygG60,6
5
+ aicmo-0.0.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.10.1)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,5 +0,0 @@
1
- aicmo/__init__.py,sha256=4hgGmwqW9btLI6Ik3prZSJ0JrC0jHv0LOEZA1aOns_c,33730
2
- aicmo-0.0.2.dist-info/METADATA,sha256=PIStOBiJ79wqhgAXEffY0lqcGc4xWyfTi1KGUrkJIQI,1187
3
- aicmo-0.0.2.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
4
- aicmo-0.0.2.dist-info/top_level.txt,sha256=uqMJv53xrmaqWkkPb9xI38tTYnSuPoplqyCzyKygG60,6
5
- aicmo-0.0.2.dist-info/RECORD,,