Spaces:
Paused
Paused
| import json | |
| # List of models to update | |
| models_to_update = [ | |
| "gpt-4o-mini", | |
| "gpt-4o-mini-2024-07-18", | |
| "gpt-4o", | |
| "gpt-4o-2024-11-20", | |
| "gpt-4o-2024-08-06", | |
| "gpt-4o-2024-05-13", | |
| "text-embedding-3-small", | |
| "text-embedding-3-large", | |
| "text-embedding-ada-002-v2", | |
| "ft:gpt-4o-2024-08-06", | |
| "ft:gpt-4o-mini-2024-07-18", | |
| "ft:gpt-3.5-turbo", | |
| "ft:davinci-002", | |
| "ft:babbage-002", | |
| ] | |
| def update_model_prices(file_path): | |
| # Read the JSON file as text first to preserve number formatting | |
| with open(file_path, "r") as file: | |
| original_text = file.read() | |
| data = json.loads(original_text) | |
| # Update specified models | |
| for model_name in models_to_update: | |
| print("finding model", model_name) | |
| if model_name in data: | |
| print("found model") | |
| model = data[model_name] | |
| if "input_cost_per_token" in model: | |
| # Format new values to match original style | |
| model["input_cost_per_token_batches"] = float( | |
| "{:.12f}".format(model["input_cost_per_token"] / 2) | |
| ) | |
| if "output_cost_per_token" in model: | |
| model["output_cost_per_token_batches"] = float( | |
| "{:.12f}".format(model["output_cost_per_token"] / 2) | |
| ) | |
| print("new pricing for model=") | |
| # Convert all float values to full decimal format before printing | |
| formatted_model = { | |
| k: "{:.9f}".format(v) if isinstance(v, float) else v | |
| for k, v in data[model_name].items() | |
| } | |
| print(json.dumps(formatted_model, indent=4)) | |
| # Run the update | |
| file_path = "model_prices_and_context_window.json" | |
| update_model_prices(file_path) | |