70 lines
3.0 KiB
PHP
70 lines
3.0 KiB
PHP
<?php
|
|
|
|
return [
|
|
'default_provider' => env('AI_EDITING_DEFAULT_PROVIDER', 'runware'),
|
|
|
|
'entitlements' => [
|
|
'package_feature' => env('AI_EDITING_PACKAGE_FEATURE', 'ai_styling'),
|
|
'addon_keys' => array_values(array_filter(array_map(
|
|
'trim',
|
|
explode(',', (string) env('AI_EDITING_ADDON_KEYS', 'ai_styling_unlock'))
|
|
))),
|
|
'locked_message' => env(
|
|
'AI_EDITING_LOCKED_MESSAGE',
|
|
'AI editing requires the Premium package or the AI Styling add-on.'
|
|
),
|
|
],
|
|
|
|
'safety' => [
|
|
'prompt' => [
|
|
'blocked_terms' => array_filter(array_map('trim', explode(',', (string) env('AI_EDITING_BLOCKED_TERMS', '')))),
|
|
],
|
|
],
|
|
|
|
'abuse' => [
|
|
'guest_submit_per_minute' => (int) env('AI_EDITING_GUEST_SUBMIT_PER_MINUTE', 8),
|
|
'guest_submit_per_hour' => (int) env('AI_EDITING_GUEST_SUBMIT_PER_HOUR', 40),
|
|
'guest_submit_per_event_per_minute' => (int) env('AI_EDITING_GUEST_SUBMIT_PER_EVENT_PER_MINUTE', 40),
|
|
'guest_status_per_minute' => (int) env('AI_EDITING_GUEST_STATUS_PER_MINUTE', 60),
|
|
'tenant_submit_per_minute' => (int) env('AI_EDITING_TENANT_SUBMIT_PER_MINUTE', 30),
|
|
'tenant_submit_per_hour' => (int) env('AI_EDITING_TENANT_SUBMIT_PER_HOUR', 240),
|
|
'tenant_submit_per_event_per_minute' => (int) env('AI_EDITING_TENANT_SUBMIT_PER_EVENT_PER_MINUTE', 120),
|
|
'tenant_status_per_minute' => (int) env('AI_EDITING_TENANT_STATUS_PER_MINUTE', 120),
|
|
'escalation_threshold_per_hour' => (int) env('AI_EDITING_ESCALATION_THRESHOLD_PER_HOUR', 25),
|
|
'escalation_cooldown_minutes' => (int) env('AI_EDITING_ESCALATION_COOLDOWN_MINUTES', 30),
|
|
],
|
|
|
|
'queue' => [
|
|
'name' => env('AI_EDITING_QUEUE', 'default'),
|
|
'auto_dispatch' => env('AI_EDITING_AUTO_DISPATCH', false),
|
|
'max_polls' => (int) env('AI_EDITING_MAX_POLLS', 6),
|
|
],
|
|
|
|
'billing' => [
|
|
'default_unit_cost_usd' => (float) env('AI_EDITING_DEFAULT_UNIT_COST_USD', 0.01),
|
|
'budget' => [
|
|
'soft_cap_usd' => env('AI_EDITING_BUDGET_SOFT_CAP_USD'),
|
|
'hard_cap_usd' => env('AI_EDITING_BUDGET_HARD_CAP_USD'),
|
|
'hard_stop_enabled' => (bool) env('AI_EDITING_BUDGET_HARD_STOP_ENABLED', true),
|
|
'alert_cooldown_minutes' => (int) env('AI_EDITING_BUDGET_ALERT_COOLDOWN_MINUTES', 30),
|
|
],
|
|
],
|
|
|
|
'retention' => [
|
|
'request_days' => (int) env('AI_EDITING_REQUEST_RETENTION_DAYS', 90),
|
|
'usage_ledger_days' => (int) env('AI_EDITING_USAGE_LEDGER_RETENTION_DAYS', 365),
|
|
],
|
|
|
|
'providers' => [
|
|
'runware' => [
|
|
'mode' => env('AI_EDITING_RUNWARE_MODE', 'live'),
|
|
],
|
|
],
|
|
|
|
'observability' => [
|
|
'failure_rate_alert_threshold' => (float) env('AI_EDITING_FAILURE_RATE_ALERT_THRESHOLD', 0.35),
|
|
'failure_rate_min_samples' => (int) env('AI_EDITING_FAILURE_RATE_MIN_SAMPLES', 10),
|
|
'latency_warning_ms' => (int) env('AI_EDITING_LATENCY_WARNING_MS', 15000),
|
|
],
|
|
];
|