Score artwork comments with local signatures plus Together AI, and optionally require Turnstile before posting.
35 lines
1.9 KiB
PHP
35 lines
1.9 KiB
PHP
<?php
|
|
|
|
return [
|
|
'enabled' => (bool) env('COMMENT_SPAM_ENABLED', true),
|
|
'mode' => env('COMMENT_SPAM_MODE', 'enforce'), // observe|enforce|off
|
|
'ai_enabled' => (bool) env('COMMENT_SPAM_AI_ENABLED', true),
|
|
'ai' => [
|
|
'provider' => env('COMMENT_SPAM_AI_PROVIDER', 'together'),
|
|
'api_key' => env('TOGETHER_API_KEY'),
|
|
'base_url' => env('TOGETHER_API_BASE_URL', 'https://api.together.xyz/v1'),
|
|
'model' => env('COMMENT_SPAM_AI_MODEL', env('TOGETHER_MODEL', 'meta-llama/Llama-3.2-3B-Instruct-Turbo')),
|
|
'allowed_models' => [
|
|
'Prism-ML/Ternary-Bonsai-27B',
|
|
'meta-llama/Llama-3.2-3B-Instruct-Turbo',
|
|
],
|
|
'timeout' => min(5, max(1, (int) env('COMMENT_SPAM_AI_TIMEOUT', 5))),
|
|
'max_input_chars' => min(2500, max(100, (int) env('COMMENT_SPAM_AI_MAX_INPUT_CHARS', 2500))),
|
|
'spam_confidence' => (float) env('COMMENT_SPAM_AI_SPAM_CONFIDENCE', 0.90),
|
|
],
|
|
'local_safe_max' => (int) env('COMMENT_SPAM_LOCAL_SAFE_MAX', 29),
|
|
'local_spam_min' => (int) env('COMMENT_SPAM_LOCAL_SPAM_MIN', 70),
|
|
'ai_spam_min' => (int) env('COMMENT_SPAM_AI_SPAM_MIN', 70),
|
|
'signature_cache_minutes' => (int) env('COMMENT_SPAM_SIGNATURE_CACHE_MINUTES', 1440),
|
|
'scanner_version' => env('COMMENT_SPAM_SCANNER_VERSION', 'comment-v1'),
|
|
'captcha' => [
|
|
'enabled' => (bool) env('COMMENT_TURNSTILE_ENABLED', false),
|
|
'site_key' => env('COMMENT_TURNSTILE_SITE_KEY', ''),
|
|
'secret_key' => env('COMMENT_TURNSTILE_SECRET_KEY', ''),
|
|
'threshold' => (int) env('COMMENT_TURNSTILE_RISK_THRESHOLD', 40),
|
|
'fail_open' => (bool) env('COMMENT_TURNSTILE_FAIL_OPEN', false),
|
|
'script_url' => env('COMMENT_TURNSTILE_SCRIPT_URL', 'https://challenges.cloudflare.com/turnstile/v0/api.js'),
|
|
'verify_url' => env('COMMENT_TURNSTILE_VERIFY_URL', 'https://challenges.cloudflare.com/turnstile/v0/siteverify'),
|
|
],
|
|
];
|