Files
fotospiel-app/config/ai-editing.php
Codex Agent 1d2242fb4d
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run
tests / ui (push) Waiting to run
feat(ai): finalize AI magic edits epic rollout and operations
2026-02-06 22:41:51 +01:00

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),
],
];