76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
from typing import Dict, List
|
|
|
|
# tweet configuration
|
|
TWEET_MAX_LENGTH = 280
|
|
TWEET_TRUNCATION_SUFFIX = "..."
|
|
TWEET_TRUNCATION_LENGTH = TWEET_MAX_LENGTH - len(TWEET_TRUNCATION_SUFFIX)
|
|
|
|
# score configuration
|
|
MIN_SCORE = 1
|
|
MAX_SCORE = 9
|
|
DEFAULT_SCORE = 5
|
|
|
|
# file paths
|
|
CATEGORIES_FILE = "categories.json"
|
|
SETTINGS_FILE = "settings.json"
|
|
HISTORY_FILE = "input_history.json"
|
|
|
|
# history configuration
|
|
MAX_HISTORY_ITEMS = 50 # maximum number of historical inputs to store
|
|
|
|
# model configuration
|
|
DEFAULT_MODEL = "openrouter/anthropic/claude-sonnet-4.5"
|
|
|
|
AVAILABLE_MODELS: Dict[str, str] = {
|
|
"Claude Sonnet 4.5": "openrouter/anthropic/claude-sonnet-4.5",
|
|
"Opus 4.1": "openrouter/anthropic/claude-opus-4.1",
|
|
"Gemini 2.5 Flash": "openrouter/google/gemini-2.5-flash",
|
|
"Gemini 2.5 Flash Lite": "openrouter/google/gemini-2.5-flash-lite",
|
|
"Gemini 2.5 Pro": "openrouter/google/gemini-2.5-pro",
|
|
"GPT-5": "openrouter/openai/gpt-5"
|
|
}
|
|
|
|
# openrouter API configuration
|
|
OPENROUTER_API_BASE = "https://openrouter.ai/api/v1"
|
|
OPENROUTER_MAX_TOKENS = 4096
|
|
OPENROUTER_TEMPERATURE = 0.7
|
|
|
|
# optimization defaults
|
|
DEFAULT_ITERATIONS = 10
|
|
DEFAULT_PATIENCE = 5
|
|
DEFAULT_USE_CACHE = True
|
|
|
|
# default evaluation categories
|
|
DEFAULT_CATEGORIES: List[str] = [
|
|
"Engagement potential - how likely users are to like, retweet, or reply",
|
|
"Clarity and readability - how easy the tweet is to understand",
|
|
"Emotional impact - how well the tweet evokes feelings or reactions",
|
|
"Relevance to target audience - how well it resonates with intended readers"
|
|
]
|
|
|
|
# error messages
|
|
ERROR_PARSING = "Default evaluation due to parsing error"
|
|
ERROR_VALIDATION = "Default evaluation due to validation error"
|
|
ERROR_GENERATION = "Tweet generation failed"
|
|
ERROR_EVALUATION = "Tweet evaluation failed"
|
|
ERROR_DSPy_INIT = "DSPy initialization failed"
|
|
ERROR_NO_API_KEY = "OPENROUTER_API_KEY environment variable is required"
|
|
ERROR_SAVE_CATEGORIES = "Failed to save categories"
|
|
ERROR_LOAD_CATEGORIES = "Failed to load categories"
|
|
ERROR_SAVE_SETTINGS = "Failed to save settings"
|
|
ERROR_LOAD_SETTINGS = "Failed to load settings"
|
|
ERROR_SAVE_HISTORY = "Failed to save input history"
|
|
ERROR_LOAD_HISTORY = "Failed to load input history"
|
|
|
|
# cache configuration
|
|
CACHE_ENABLE_MEMORY = True
|
|
CACHE_ENABLE_DISK = True
|
|
|
|
# iteration display
|
|
ITERATION_SLEEP_TIME = 0.1 # seconds
|
|
|
|
# truncation display
|
|
CATEGORY_DISPLAY_MAX_LENGTH = 30
|
|
CATEGORY_DISPLAY_TRUNCATION = "..."
|
|
CATEGORY_IMPROVEMENT_MAX_LENGTH = 50
|