| 1 |
<?php |
| 2 |
|
| 3 |
namespace AATXT\Config; |
| 4 |
|
| 5 |
class Constants |
| 6 |
{ |
| 7 |
const AATXT_PLUGIN_SLUG = 'auto-alt-text'; |
| 8 |
const AATXT_AZURE_DEFAULT_LANGUAGE = 'en'; |
| 9 |
const AATXT_AZURE_COMPUTER_VISION_API_VERSION = '2024-02-01'; |
| 10 |
const AATXT_PLUGIN_OPTIONS_PAGE_SLUG = 'auto-alt-text-options'; |
| 11 |
const AATXT_PLUGIN_OPTION_LOG_PAGE_SLUG = 'auto-alt-text-log'; |
| 12 |
const AATXT_PLUGIN_ASSETS_HANDLE = 'aatxt-auto-alt-text-options'; |
| 13 |
const AATXT_PLUGIN_MEDIA_LIBRARY_HANDLE = 'aatxt-auto-alt-text-media-library'; |
| 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_GPT5 = 'gpt-5'; |
| 20 |
const AATXT_GPT5_MINI = 'gpt-5-mini'; |
| 21 |
const AATXT_GPT5_NANO = 'gpt-5-nano'; |
| 22 |
const AATXT_OPENAI_FALLBACK_MODEL = self::AATXT_GPT5_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_GPT5 => 'GPT-5', |
| 27 |
self::AATXT_GPT5_MINI => 'GPT-5 Mini', |
| 28 |
self::AATXT_GPT5_NANO => 'GPT-5 Nano', |
| 29 |
]; |
| 30 |
|
| 31 |
const AATXT_OPTION_FIELD_PROMPT_OPENAI = 'aatxt_prompt_openai'; |
| 32 |
const AATXT_OPTION_FIELD_API_KEY_OPENAI = 'aatxt_api_key_openai'; |
| 33 |
const AATXT_OPTION_FIELD_API_KEY_ANTHROPIC = 'aatxt_api_key_anthropic'; |
| 34 |
const AATXT_OPTION_FIELD_MODEL_ANTHROPIC = 'aatxt_model_anthropic'; |
| 35 |
const AATXT_CLAUDE_SONNET_4 = 'claude-sonnet-4-20250514'; |
| 36 |
const AATXT_CLAUDE_HAIKU_3_5 = 'claude-3-5-haiku-20241022'; |
| 37 |
const AATXT_CLAUDE_FALLBACK_MODEL = 'claude-haiku-4-5'; |
| 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'; |
| 45 |
const AATXT_OPTION_FIELD_API_KEY_GEMINI = 'aatxt_api_key_gemini'; |
| 46 |
const AATXT_OPTION_FIELD_MODEL_GEMINI = 'aatxt_model_gemini'; |
| 47 |
const AATXT_OPTION_FIELD_PROMPT_GEMINI = 'aatxt_prompt_gemini'; |
| 48 |
const AATXT_GEMINI_FLASH_3_6 = 'gemini-3.6-flash'; |
| 49 |
const AATXT_GEMINI_FLASH_3_5 = 'gemini-3.5-flash'; |
| 50 |
const AATXT_GEMINI_FLASH_2_5 = 'gemini-2.5-flash'; |
| 51 |
const AATXT_GEMINI_FALLBACK_MODEL = self::AATXT_GEMINI_FLASH_3_6; |
| 52 |
|
| 53 |
const AATXT_OPTION_FIELD_MODEL_GEMINI_OPTIONS = [ |
| 54 |
self::AATXT_GEMINI_FLASH_3_6 => 'Gemini 3.6 Flash', |
| 55 |
self::AATXT_GEMINI_FLASH_3_5 => 'Gemini 3.5 Flash', |
| 56 |
self::AATXT_GEMINI_FLASH_2_5 => 'Gemini 2.5 Flash', |
| 57 |
]; |
| 58 |
const AATXT_OPTION_FIELD_API_KEY_AZURE_COMPUTER_VISION = 'aatxt_api_key_azure_computer_vision'; |
| 59 |
const AATXT_OPTION_FIELD_API_KEY_AZURE_TRANSLATE_INSTANCE = 'aatxt_api_key_azure_translate_instance'; |
| 60 |
const AATXT_OPTION_TYPOLOGY_CHOICE_ARTICLE_TITLE = 'article-title'; |
| 61 |
const AATXT_OPTION_TYPOLOGY_CHOICE_ATTACHMENT_TITLE = 'attachment-title'; |
| 62 |
const AATXT_OPTION_TYPOLOGY_CHOICE_OPENAI = 'openai'; |
| 63 |
const AATXT_OPTION_TYPOLOGY_CHOICE_AZURE = 'azure'; |
| 64 |
const AATXT_OPTION_TYPOLOGY_CHOICE_ANTHROPIC = 'anthropic'; |
| 65 |
const AATXT_OPTION_TYPOLOGY_CHOICE_GEMINI = 'gemini'; |
| 66 |
const AATXT_OPTION_TYPOLOGY_DEACTIVATED = 'deactivated'; |
| 67 |
const AATXT_OPTION_FIELD_ENDPOINT_AZURE_COMPUTER_VISION = 'aatxt_endpoint-azure-computer-vision'; |
| 68 |
const AATXT_OPTION_FIELD_ENDPOINT_AZURE_TRANSLATE_INSTANCE = 'aatxt_endpoint-azure-translate-instance'; |
| 69 |
const AATXT_OPTION_FIELD_REGION_AZURE_TRANSLATE_INSTANCE = 'aatxt_region_azure_translate_instance'; |
| 70 |
const AATXT_OPTION_FIELD_LANGUAGE_AZURE_TRANSLATE_INSTANCE = 'aatxt_language_azure_translate_instance'; |
| 71 |
const AATXT_OPTION_FIELD_PRESERVE_EXISTING_ALT_TEXT = 'aatxt_preserve_existing_alt_text'; |
| 72 |
const AATXT_OPTION_FIELD_AUTO_RENDER_ALT_TEXT = 'aatxt_auto_render_alt_text'; |
| 73 |
const AATXT_LEGACY_ENCRYPTION_MIGRATION_DONE = 'aatxt_legacy_encryption_migration_done'; |
| 74 |
const AATXT_IMAGE_URL_TAG = '%imageUrl%'; |
| 75 |
const AATXT_OPENAI_DEFAULT_PROMPT = "Act like an SEO expert and write an English alt text of up to 125 characters for this image."; |
| 76 |
const AATXT_OPENAI_RESPONSES_API_ENDPOINT = 'https://api.openai.com/v1/responses'; |
| 77 |
const AATXT_OPENAI_MODELS_ENDPOINT = 'https://api.openai.com/v1/models'; |
| 78 |
const AATXT_OPENAI_MODELS_CACHE_KEY = 'aatxt_openai_models_cache'; |
| 79 |
const AATXT_REST_NAMESPACE = 'auto-alt-text/v1'; |
| 80 |
const AATXT_REST_ROUTE_GENERATE_ALT_TEXT = '/generate-alt-text'; |
| 81 |
const AATXT_OPENAI_ALLOWED_MIME_TYPES = [ |
| 82 |
'image/png', |
| 83 |
'image/jpeg', |
| 84 |
'image/gif', |
| 85 |
'image/webp', |
| 86 |
]; |
| 87 |
const AATXT_AZURE_ALLOWED_MIME_TYPES = [ |
| 88 |
'image/png', |
| 89 |
'image/jpeg', |
| 90 |
'image/gif', |
| 91 |
'image/webp', |
| 92 |
]; |
| 93 |
|
| 94 |
const AATXT_ANTHROPIC_ALLOWED_MIME_TYPES = [ |
| 95 |
'image/png', |
| 96 |
'image/jpeg', |
| 97 |
'image/gif', |
| 98 |
'image/webp', |
| 99 |
]; |
| 100 |
|
| 101 |
const AATXT_ANTHROPIC_ENDPOINT = 'https://api.anthropic.com/v1/messages'; |
| 102 |
const AATXT_ANTHROPIC_MODELS_ENDPOINT = 'https://api.anthropic.com/v1/models'; |
| 103 |
const AATXT_ANTHROPIC_MODELS_CACHE_KEY = 'aatxt_anthropic_models_cache'; |
| 104 |
|
| 105 |
// Google Gemini does not support GIF images (only PNG, JPEG, WEBP, HEIC, HEIF) |
| 106 |
const AATXT_GEMINI_ALLOWED_MIME_TYPES = [ |
| 107 |
'image/png', |
| 108 |
'image/jpeg', |
| 109 |
'image/webp', |
| 110 |
'image/heic', |
| 111 |
'image/heif', |
| 112 |
]; |
| 113 |
|
| 114 |
const AATXT_GEMINI_INTERACTIONS_ENDPOINT = 'https://generativelanguage.googleapis.com/v1beta/interactions'; |
| 115 |
const AATXT_GEMINI_MODELS_ENDPOINT = 'https://generativelanguage.googleapis.com/v1beta/models'; |
| 116 |
const AATXT_GEMINI_MODELS_CACHE_KEY = 'aatxt_gemini_models_cache'; |
| 117 |
} |