| @@ -5,28 +5,83 @@ | ||
| 5 | 5 | class Constants |
| 6 | 6 | { |
| 7 | 7 | const AATXT_PLUGIN_SLUG = 'auto-alt-text'; |
| 8 | 8 | const AATXT_AZURE_DEFAULT_LANGUAGE = 'en'; |
| 9 | + const AATXT_AZURE_COMPUTER_VISION_API_VERSION = '2024-02-01'; | |
| 9 | 10 | const AATXT_PLUGIN_OPTIONS_PAGE_SLUG = 'auto-alt-text-options'; |
| 10 | 11 | const AATXT_PLUGIN_OPTION_LOG_PAGE_SLUG = 'auto-alt-text-log'; |
| 11 | 12 | const AATXT_PLUGIN_ASSETS_HANDLE = 'aatxt-auto-alt-text-options'; |
| 13 | + const AATXT_PLUGIN_MEDIA_LIBRARY_HANDLE = 'aatxt-auto-alt-text-media-library'; | |
| 12 | 14 | const AATXT_OPTION_FIELD_TYPOLOGY = 'aatxt_typology'; |
| 15 | + const AATXT_OPTION_FIELD_MODEL_OPENAI = 'aatxt_model_openai'; | |
| 16 | + | |
| 17 | + const AATXT_GPT4O = 'gpt-4o'; | |
| 18 | + const AATXT_GPT4O_MINI = 'gpt-4o-mini'; | |
| 19 | + const AATXT_O1_MINI = 'o1-mini'; | |
| 20 | + const AATXT_GPT5 = 'gpt-5'; | |
| 21 | + const AATXT_GPT5_MINI = 'gpt-5-mini'; | |
| 22 | + const AATXT_GPT5_NANO = 'gpt-5-nano'; | |
| 23 | + const AATXT_OPTION_FIELD_MODEL_OPENAI_OPTIONS = [ | |
| 24 | + self::AATXT_GPT4O => 'GPT-4o', | |
| 25 | + self::AATXT_GPT4O_MINI => 'GPT-4o Mini', | |
| 26 | + self::AATXT_O1_MINI => 'o1 Mini', | |
| 27 | + self::AATXT_GPT5 => 'GPT-5', | |
| 28 | + self::AATXT_GPT5_MINI => 'GPT-5 Mini', | |
| 29 | + self::AATXT_GPT5_NANO => 'GPT-5 Nano', | |
| 30 | + ]; | |
| 31 | + | |
| 13 | 32 | const AATXT_OPTION_FIELD_PROMPT_OPENAI = 'aatxt_prompt_openai'; |
| 14 | 33 | const AATXT_OPTION_FIELD_API_KEY_OPENAI = 'aatxt_api_key_openai'; |
| 34 | + const AATXT_OPTION_FIELD_API_KEY_ANTHROPIC = 'aatxt_api_key_anthropic'; | |
| 35 | + const AATXT_OPTION_FIELD_MODEL_ANTHROPIC = 'aatxt_model_anthropic'; | |
| 36 | + const AATXT_CLAUDE_SONNET_4 = 'claude-sonnet-4-20250514'; | |
| 37 | + const AATXT_CLAUDE_HAIKU_3_5 = 'claude-3-5-haiku-20241022'; | |
| 38 | + | |
| 39 | + const AATXT_OPTION_FIELD_MODEL_ANTHROPIC_OPTIONS = [ | |
| 40 | + self::AATXT_CLAUDE_HAIKU_3_5 => 'Claude 3.5 Haiku', | |
| 41 | + self::AATXT_CLAUDE_SONNET_4 => 'Claude Sonnet 4', | |
| 42 | + ]; | |
| 43 | + const AATXT_API_VERSION = '2023-06-01'; | |
| 44 | + const AATXT_OPTION_FIELD_PROMPT_ANTHROPIC = 'aatxt_prompt_anthropic'; | |
| 15 | 45 | const AATXT_OPTION_FIELD_API_KEY_AZURE_COMPUTER_VISION = 'aatxt_api_key_azure_computer_vision'; |
| 16 | - const AATXT_OPTION_FIELD_API_KEY_AZURE_TRANSLATE_INSTANCE= 'aatxt_api_key_azure_translate_instance'; | |
| 46 | + const AATXT_OPTION_FIELD_API_KEY_AZURE_TRANSLATE_INSTANCE = 'aatxt_api_key_azure_translate_instance'; | |
| 17 | 47 | const AATXT_OPTION_TYPOLOGY_CHOICE_ARTICLE_TITLE = 'article-title'; |
| 18 | 48 | const AATXT_OPTION_TYPOLOGY_CHOICE_ATTACHMENT_TITLE = 'attachment-title'; |
| 19 | 49 | const AATXT_OPTION_TYPOLOGY_CHOICE_OPENAI = 'openai'; |
| 20 | 50 | const AATXT_OPTION_TYPOLOGY_CHOICE_AZURE = 'azure'; |
| 51 | + const AATXT_OPTION_TYPOLOGY_CHOICE_ANTHROPIC = 'anthropic'; | |
| 21 | 52 | const AATXT_OPTION_TYPOLOGY_DEACTIVATED = 'deactivated'; |
| 22 | 53 | const AATXT_OPTION_FIELD_ENDPOINT_AZURE_COMPUTER_VISION = 'aatxt_endpoint-azure-computer-vision'; |
| 23 | 54 | const AATXT_OPTION_FIELD_ENDPOINT_AZURE_TRANSLATE_INSTANCE = 'aatxt_endpoint-azure-translate-instance'; |
| 24 | 55 | const AATXT_OPTION_FIELD_REGION_AZURE_TRANSLATE_INSTANCE = 'aatxt_region_azure_translate_instance'; |
| 25 | 56 | const AATXT_OPTION_FIELD_LANGUAGE_AZURE_TRANSLATE_INSTANCE = 'aatxt_language_azure_translate_instance'; |
| 57 | + const AATXT_OPTION_FIELD_PRESERVE_EXISTING_ALT_TEXT = 'aatxt_preserve_existing_alt_text'; | |
| 58 | + const AATXT_LEGACY_ENCRYPTION_MIGRATION_DONE = 'aatxt_legacy_encryption_migration_done'; | |
| 26 | 59 | const AATXT_IMAGE_URL_TAG = '%imageUrl%'; |
| 27 | 60 | const AATXT_OPENAI_DEFAULT_PROMPT = "Act like an SEO expert and write an English alt text of up to 125 characters for this image."; |
| 28 | 61 | const AATXT_OPENAI_VISION_MODEL = 'gpt-4o'; |
| 29 | - const AATXT_OPENAI_FALLBACK_MODEL = 'gpt-4-turbo'; | |
| 62 | + const AATXT_OPENAI_FALLBACK_MODEL = 'gpt-4o-mini'; | |
| 30 | 63 | const AATXT_OPENAI_MAX_TOKENS = 70; |
| 31 | 64 | const AATXT_OPENAI_CHAT_COMPLETION_ENDPOINT = 'https://api.openai.com/v1/chat/completions'; |
| 65 | + const AATXT_AJAX_GENERATE_ALT_TEXT_NONCE = 'generate_alt_text_nonce'; | |
| 66 | + const AATXT_OPENAI_ALLOWED_MIME_TYPES = [ | |
| 67 | + 'image/png', | |
| 68 | + 'image/jpeg', | |
| 69 | + 'image/gif', | |
| 70 | + 'image/webp', | |
| 71 | + ]; | |
| 72 | + const AATXT_AZURE_ALLOWED_MIME_TYPES = [ | |
| 73 | + 'image/png', | |
| 74 | + 'image/jpeg', | |
| 75 | + 'image/gif', | |
| 76 | + 'image/webp', | |
| 77 | + ]; | |
| 78 | + | |
| 79 | + const AATXT_ANTHROPIC_ALLOWED_MIME_TYPES = [ | |
| 80 | + 'image/png', | |
| 81 | + 'image/jpeg', | |
| 82 | + 'image/gif', | |
| 83 | + 'image/webp', | |
| 84 | + ]; | |
| 85 | + | |
| 86 | + const AATXT_ANTHROPIC_ENDPOINT = 'https://api.anthropic.com/v1/messages'; | |
| 32 | 87 | } |