ira/update_max_tokens.py

72 lines
2.6 KiB
Python

#!/usr/bin/env python
"""
Script to update the max_tokens parameter for OpenRouter models in the configuration.
"""
import json
import logging
import os
from config.config import get_config
# Set up logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def update_openrouter_max_tokens(model_name="openrouter-claude-3.7-sonnet", new_max_tokens=8000):
"""
Update the max_tokens parameter for an OpenRouter model in the configuration.
Args:
model_name: Name of the OpenRouter model to update
new_max_tokens: New value for max_tokens parameter
"""
logger.info(f"Updating max_tokens for {model_name} to {new_max_tokens}...")
# Get the config instance
config = get_config()
# Check if the model exists in the configuration
if 'models' not in config.config_data:
logger.error("No models section found in configuration")
return False
if model_name not in config.config_data['models']:
logger.error(f"Model {model_name} not found in configuration")
return False
# Get the current model configuration
model_config = config.config_data['models'][model_name]
# Print current configuration
logger.info(f"Current configuration for {model_name}:")
logger.info(json.dumps(model_config, indent=2))
# Update the max_tokens parameter
old_max_tokens = model_config.get('max_tokens', 2048)
model_config['max_tokens'] = new_max_tokens
# Update the configuration
config.config_data['models'][model_name] = model_config
# Save the configuration (in-memory only, as we can't modify the file directly)
logger.info(f"Updated max_tokens for {model_name} from {old_max_tokens} to {new_max_tokens}")
logger.info(f"New configuration for {model_name}:")
logger.info(json.dumps(model_config, indent=2))
logger.info("Configuration updated in memory. The next time you run a report, it will use the new max_tokens value.")
logger.info("Note: This change is temporary and will be reset when the application restarts.")
logger.info("To make the change permanent, you need to update the config.yaml file directly.")
return True
def main():
"""Main function."""
# Update max_tokens for Claude 3.7 Sonnet
update_openrouter_max_tokens("openrouter-claude-3.7-sonnet", 8000)
# You can also update other OpenRouter models if needed
# update_openrouter_max_tokens("openrouter-mixtral", 8000)
if __name__ == "__main__":
main()