@@ -104,9 +104,21 @@ async def list_models_async():
104104 input_cost_per_token = pricing .get ('input_cost_per_1m_tokens' , 0 )
105105 output_cost_per_token = pricing .get ('output_cost_per_1m_tokens' , 0 )
106106
107- # Convert from per-token to per-million-tokens for display
108- input_cost_per_million = input_cost_per_token * 1_000_000
109- output_cost_per_million = output_cost_per_token * 1_000_000
107+ # The cached values can be either per-token or per-million-tokens
108+ # Very small values (< 0.01) are per-token, larger values are per-million-tokens
109+ if input_cost_per_token > 0 and input_cost_per_token < 0.01 :
110+ # Values are per-token, convert to per-million-tokens
111+ input_cost_per_million = input_cost_per_token * 1_000_000
112+ else :
113+ # Values are already per-million-tokens
114+ input_cost_per_million = input_cost_per_token
115+
116+ if output_cost_per_token > 0 and output_cost_per_token < 0.01 :
117+ # Values are per-token, convert to per-million-tokens
118+ output_cost_per_million = output_cost_per_token * 1_000_000
119+ else :
120+ # Values are already per-million-tokens
121+ output_cost_per_million = output_cost_per_token
110122
111123 # Format costs
112124 def format_list_cost (cost ):
@@ -194,8 +206,20 @@ async def search_models_async():
194206
195207 for model in matching_models :
196208 pricing = model .get ('pricing' , {})
197- input_cost = pricing .get ('input_cost_per_1m_tokens' , 0 )
198- output_cost = pricing .get ('output_cost_per_1m_tokens' , 0 )
209+ input_cost_per_token = pricing .get ('input_cost_per_1m_tokens' , 0 )
210+ output_cost_per_token = pricing .get ('output_cost_per_1m_tokens' , 0 )
211+
212+ # Convert per-token costs to per-million-tokens for display
213+ # Very small values (< 0.01) are per-token, larger values are per-million-tokens
214+ if input_cost_per_token > 0 and input_cost_per_token < 0.01 :
215+ input_cost = input_cost_per_token * 1_000_000
216+ else :
217+ input_cost = input_cost_per_token
218+
219+ if output_cost_per_token > 0 and output_cost_per_token < 0.01 :
220+ output_cost = output_cost_per_token * 1_000_000
221+ else :
222+ output_cost = output_cost_per_token
199223
200224 table .add_row (
201225 (model .get ('provider' , 'Unknown' )).title (),
0 commit comments