Модерація з чергою перевірки
Розрізняйте запитання, коректну критику, спам і образи. Невизначені повідомлення залишайте для модератора.
Що вирішує модель. Що перевіряє код.
- Кожне вигадане повідомлення отримує три незалежні Noul: спам, особиста образа та продуктове запитання.
- За високого ризику код позначає hold, за низького — show, між порогами — review.
- Повідомлення обробляються послідовно з обмеженим бюджетом. Результат — локальний список рішень, без видалення чи публікації повідомлень.
Прочитайте. Запустіть. Відтворіть.
Розпакуйте архів і відкрийте каталог у терміналі. Перший крок працює без ключа та мережі.
python3 runner.py moderationДля реального запуску задайте SHVYDKO_API_KEY у середовищі свого комп’ютера або сервера. Не вставляйте ключ у браузер чи вихідний код. Діють поточні квоти й тариф вашого облікового запису.
python3 runner.py moderation --live --output moderation-run.jsonЗвіт містить запити, справжні відповіді, час і відоме використання. Файл створюється з приватними правами та не перезаписує наявний. Після мережевої помилки автоматичного повтору немає: перевірте Usage перед новим викликом.
python3 runner.py moderation --replay moderation-run.jsonReplay перевіряє відповідність рецепта, вхідних даних і запитів. Локальний файл можна редагувати, тому він не є підписаним доказом походження відповідей. Якщо заміните дані своїми, звіт також міститиме їх — зберігайте його приватно.
Відкритий контракт, без прихованих кроків.
План нижче згенеровано тим самим runner із даних архіву. Це запити й очікування автора, а не результат моделі.
{
"mode": "offline_plan",
"model_calls": 0,
"recipe": "moderation",
"author_expectation": {
"m1": "show",
"m2": "hold",
"m3": "show"
},
"notice": "Requests only, no model answers. Hierarchy includes conditional branches; repetition requests are templates.",
"requests": [
{
"state": {
"message": "Where can I find the API documentation?",
"policy": "Respectful criticism and product questions are allowed. Hold unsolicited promotional spam or personal abuse for moderator review."
},
"questions": {
"spam": {
"type": "noul",
"instructions": "This is unsolicited promotional spam."
},
"abuse": {
"type": "noul",
"instructions": "This contains personal abuse, not just criticism."
},
"question": {
"type": "noul",
"instructions": "This asks a product-related question."
}
}
},
{
"state": {
"message": "BUY NOW BUY NOW! Click my unrelated promotion for free prizes!",
"policy": "Respectful criticism and product questions are allowed. Hold unsolicited promotional spam or personal abuse for moderator review."
},
"questions": {
"spam": {
"type": "noul",
"instructions": "This is unsolicited promotional spam."
},
"abuse": {
"type": "noul",
"instructions": "This contains personal abuse, not just criticism."
},
"question": {
"type": "noul",
"instructions": "This asks a product-related question."
}
}
},
{
"state": {
"message": "I disagree with this pricing, but the docs are useful.",
"policy": "Respectful criticism and product questions are allowed. Hold unsolicited promotional spam or personal abuse for moderator review."
},
"questions": {
"spam": {
"type": "noul",
"instructions": "This is unsolicited promotional spam."
},
"abuse": {
"type": "noul",
"instructions": "This contains personal abuse, not just criticism."
},
"question": {
"type": "noul",
"instructions": "This asks a product-related question."
}
}
}
]
}