Moderatie
Anonimiteit en respect zijn kernbeloften van I See You. Moderatie borgt dat in drie vormen, die elkaar aanvullen:
- Reactieve melding-moderatie — een opiniegever die een ongepaste Vraag (video of foto) ziet, kan die melden; bij het bereiken van een drempel wordt de vraag automatisch verwijderd. Dit werkt achteraf, op de opname.
- Proactieve tekstmoderatie — alle door gebruikers ingetypte vrije tekst wordt vóór opslaan automatisch gecontroleerd; afgekeurde tekst wordt geweigerd. Dit werkt vooraf, op tekst.
- Proactieve visuele moderatie (per
2026-07-11g) — elke opname (foto of video) wordt bij het stellen, vóórdat de vraag de pool ingaat, automatisch op ongepaste beelden gescreend; een afgekeurde opname wordt geweigerd en direct gewist. Dit werkt vooraf, op de opname zelf — de eerste verdedigingslinie, ook ter bescherming van de opiniegevers.
Alle drie leven in de context Moderatie & Retentie. Deze pagina beschrijft wat de drie vormen functioneel moeten kunnen. De stap-voor-stap-doorloop van het melden staat in het scenario Melden → automatisch verwijderen. Voor de exacte begrippen, zie Termen; voor de aggregates, zie het Domeinmodel.
Deel A — Melden van ongepaste vragen (reactief)
Section titled “Deel A — Melden van ongepaste vragen (reactief)”Een opiniegever ziet andermans vraag (video of foto) tijdens het geven van een opinie. Wanneer die vraag ongepast is, kan de opiniegever de vraag melden. Dit legt een Melding vast. Zodra een via Beheer instelbare meldingen-drempel (standaard 3) wordt bereikt, wordt de vraag automatisch verwijderd.
Wat een melding is
Section titled “Wat een melding is”Een melding is een signaal dat een specifieke Vraag ongepast is. Een melding bevat:
| Veld | Omschrijving |
|---|---|
vraagId | De vraag waarop de melding betrekking heeft. |
gebruiker | De melder (de gebruiker die meldt). |
ip | Het IP-adres van de melder, gebruikt voor controle en rate-limiting. |
timestamp | Het moment van melden. |
Een melding draagt geen reden of categorie: het is een enkel signaal. De moderatie is bewust eenvoudig — pas wanneer de meldingen-drempel aan onafhankelijke gebruikers (standaard drie) dezelfde vraag heeft gemeld, treedt automatische verwijdering in werking. De drempel is instelbaar via Systeeminstellingen.
Functionele eisen
Section titled “Functionele eisen”| # | Eis | Toelichting |
|---|---|---|
| 1 | Een gebruiker kan een vraag melden. | Het melden registreert één Melding voor die vraag. |
| 2 | Bij het bereiken van de meldingen-drempel wordt de vraag automatisch verwijderd. | De meldingenDrempel is een via Beheer instelbaar aantal (standaard 3) uit het Retentiebeleid. Verwijdering verwijdert zowel het mediabestand als het record. |
| 3 | Dubbel melden door dezelfde gebruiker is niet mogelijk. | Per combinatie van melder en vraag bestaat hooguit één melding. Een tweede poging wordt geweigerd en telt niet mee voor de drempel. |
| 4 | Meldingen zijn rate-limited. | Maximaal 5 meldingen per uur per melder. Daarboven wordt de poging geweigerd met het verzoek het later opnieuw te proberen. |
| 5 | Na verwijdering vervallen de bijbehorende meldingen. | Zodra de vraag is verwijderd, worden de meldingen voor die vraag opgeruimd; er blijft geen losse meldingen-administratie achter. |
| 6 | (Per 2026-07-10j, issue #12) Het melden is in het beoordeelscherm een duidelijke actie. | Naast de opname staat de knop “Markeer als ongewenst”; melden geeft de beoordeling terug aan de pool en toont een bevestiging. |
| 7 | (Per 2026-07-10j, issue #12) Bij vervallen door de drempel wordt de saldo-reservering vrijgegeven. | Had de vraag betaald advies, dan komt het nog niet bevestigde (ontgrendelde) deel van de reservering weer beschikbaar op het euro-saldo van de maker — er wordt niets afgeschreven; al ontgrendelde beoordelingen blijven betaald. |
| 8 | (Per 2026-07-10j, issue #12) De maker krijgt een configureerbare tekst te zien. | Bij het vervallen ontstaat een Bericht aan de maker met de via het beheerportaal instelbare uitleg (keuzelijst-type uitleg, sleutel vraag-vervallen); het gebruikersportaal toont dit als wegklikbare melding in “Mijn vragen”. |
| 9 | (Per 2026-07-10j, issue #12) Het systeem telt per maker hoeveel van zijn opnames als ongewenst zijn vervallen. | Nieuw veld Gebruiker.aantalOngewenstVervallen (alleen geregistreerde makers), zichtbaar in het beheer-gebruikersoverzicht, zodat de beheerder actie kan ondernemen bij herhaald misbruik. ⚠️ Voorstel ter verificatie bij Han — vorm van de waarschuwing richting de maker: wij stellen voor het bij (a) de wegklikbare melding met configureerbare tekst en (b) deze beheer-teller te laten; een automatische blokkade-drempel (bv. account blokkeren na X vervallen opnames) kan later als beheerinstelling worden toegevoegd. |
De meldingen-drempel
Section titled “De meldingen-drempel”Het tellen gebeurt per vraag. Omdat dubbel melden niet meetelt, betekent het bereiken van de drempel dat het ingestelde aantal verschillende gebruikers (standaard 3) dezelfde vraag heeft gemeld. De drempel is een via Beheer instelbaar aantal.
| Aantal unieke meldingen | Gevolg |
|---|---|
| Onder de drempel | Melding geregistreerd; vraag blijft zichtbaar. |
| Drempel bereikt (standaard 3 of meer) | Vraag wordt automatisch verwijderd; bijbehorende meldingen vervallen. |
Verwijdering door meldingen staat naast het reguliere Retentiebeleid en staat los van het resultaat-retentievenster. Een gemelde vraag wordt bij het bereiken van de drempel onmiddellijk verwijderd — mediabestand én record — ongeacht of de beoordeling al klaar is en ongeacht het retentievenster. Het resultaat-retentievenster geldt alleen voor niet-gemelde, afgeronde vragen (het resultaat blijft daar tijdelijk zichtbaar voor de maker). Melden is daarmee een manier om een ongepaste vraag direct uit zicht te halen.
Geen dubbel melden
Section titled “Geen dubbel melden”Een gebruiker telt per vraag precies één keer mee. Een tweede melding van dezelfde gebruiker op dezelfde vraag wordt herkend en geweigerd. Dit voorkomt dat één persoon de drempel in zijn eentje haalt en houdt de drempel betekenisvol als signaal van meerdere, onafhankelijke melders.
Rate-limiting
Section titled “Rate-limiting”Om misbruik (massaal of geautomatiseerd melden) tegen te gaan, geldt een limiet van maximaal 5 meldingen per uur per melder. Wordt die limiet overschreden, dan wordt de melding niet verwerkt en krijgt de gebruiker de boodschap om het later opnieuw te proberen.
| Situatie | Resultaat |
|---|---|
| Binnen de limiet | Melding wordt verwerkt en geteld. |
| Limiet overschreden (meer dan 5 per uur) | Melding wordt geweigerd; gebruiker probeert het later opnieuw. |
| Verplichte gegevens ontbreken (vraag of melder) | Melding wordt geweigerd. |
| Al eerder dezelfde vraag gemeld | Melding wordt geweigerd (zie geen dubbel melden). |
Deel B — Tekstmoderatie van vrije tekst (proactief)
Section titled “Deel B — Tekstmoderatie van vrije tekst (proactief)”Naast het reactieve melden controleert I See You alle door gebruikers ingetypte vrije tekst automatisch op ongepaste inhoud, vóórdat die wordt opgeslagen. Zo komt kwetsende of onveilige tekst er niet in — voor niemand zichtbaar — in plaats van dat er achteraf op gereageerd moet worden. Dit is de Tekstmoderatie.
Welke tekst wordt gecontroleerd
Section titled “Welke tekst wordt gecontroleerd”Er is bewust weinig vrije tekst in I See You (de opinie zelf verloopt via smileys en keuzevelden). De vrije tekst die er is, wordt volledig gedekt:
| Vrije tekst | Van wie | Wanneer gecontroleerd |
|---|---|---|
| Toelichting bij de vraag | De maker | Bij het stellen van de vraag |
| Reactie bij de beoordeling | De opiniegever | Bij het indienen van de beoordeling |
Iedereen mag vrije tekst geven. Er is geen drempel meer: de oude regel “vrije opmerkingen alleen voor opiniegevers met genoeg sterren” is vervallen. Elke gebruiker — geregistreerd of anoniem — mag als maker een toelichting en als opiniegever een reactie invullen, mits de tekst door de moderatie-check komt. Er is per kant precies één vrije tekst; het losse, algemene opmerkingenveld en de eerdere open vragen/antwoorden bestaan niet meer.
Hoe het werkt
Section titled “Hoe het werkt”De controle loopt via een applicatie-poort IModeratieDienst met resultaat ModeratieUitslag(Toegestaan, Reden?). De infra-implementatie OpenAiModeratieDienst roept de OpenAI Moderation API aan (model omni-moderation-latest), die gratis is.
| # | Eis | Toelichting |
|---|---|---|
| 1 | Alle vrije tekst wordt vóór opslaan gecontroleerd. | De toelichting en de reactie gaan langs IModeratieDienst voordat ze worden opgeslagen. |
| 2 | Afgekeurde tekst wordt geweigerd en niet opgeslagen. | De gebruiker krijgt de reden direct bij het indienen te zien en kan de tekst aanpassen en opnieuw proberen. |
| 3 | Een afgekeurde beoordeling levert geen credit op. | Wordt de reactie van een opiniegever afgekeurd, dan wordt de hele beoordeling niet opgeslagen en verdient de reviewer geen credit. |
| 4 | Zonder API-sleutel draait de moderatie fail-open. | Is er geen sleutel geconfigureerd (Azure app-setting OpenAI__ApiKey), dan wordt alle tekst toegestaan en blijft de applicatie werken. |
Deel C — Visuele moderatie van opnames (proactief, per 2026-07-11g)
Section titled “Deel C — Visuele moderatie van opnames (proactief, per 2026-07-11g)”De opname is de kern van het product — en ging tot 2026-07-11g ongescreend naar de opiniegevers: een ongepaste foto of video werd pas via meldingen (Deel A) verwijderd, nádat opiniegevers eraan waren blootgesteld. De visuele moderatie legt de eerste verdedigingslinie vóór de distributie: elke opname wordt bij het stellen automatisch op ongepaste beelden gecontroleerd.
Hoe het werkt
Section titled “Hoe het werkt”De controle loopt via de applicatie-poort IVisueleModeratieDienst (ControleerAsync(mediaType, mediaSleutel) → ModeratieUitslag). De infra-implementatie gebruikt de OpenAI Moderation API (omni-moderation-latest, dezelfde gratis API en sleutel als de tekstmoderatie) met beeld-input: een foto gaat direct mee; uit een video haalt FFmpeg ~4 frames (dezelfde frame-extractie als de vision-AI van het AI-vangnet).
| # | Eis | Toelichting |
|---|---|---|
| 1 | Elke opname wordt vóór opname in de pool gescreend. | De check draait in het stel-vraag-proces, ná de tekstmoderatie van de toelichting en vóór het aanmaken van de vraag en haar slots — een afgekeurde opname bereikt nooit een opiniegever. |
| 2 | Een afgekeurde opname wordt geweigerd én direct gewist. | De maker krijgt direct een nette melding (zoals bij afgekeurde tekst) en kan een nieuwe opname maken; het geüploade bestand wordt meteen uit de mediastore verwijderd — er blijft niets achter. |
| 3 | De check is fail-open. | Zonder API-sleutel, bij een niet-ondersteund beeldformaat of bij een API-/netwerkfout wordt de opname toegestaan (consistent met de tekstmoderatie); de terugval is zichtbaar in de logs. Het melden (Deel A) blijft als tweede linie bestaan. |
| 4 | Aan/uit via Beheer. | De instelling visueleModeratieActief (bool, standaard aan) op de Systeeminstellingen, thema Moderatie in het beheerportaal. |
De drie vormen naast elkaar
Section titled “De drie vormen naast elkaar”| Aspect | Melden (Deel A) | Tekstmoderatie (Deel B) | Visuele moderatie (Deel C) |
|---|---|---|---|
| Werkt op | De opname (video/foto) van een vraag | Ingetypte vrije tekst | De opname (foto of videoframes) |
| Moment | Reactief, achteraf | Proactief, vóór opslaan | Proactief, vóór distributie |
| Trigger | Meerdere gebruikers melden (drempel) | Automatische check bij indienen | Automatische check bij het stellen |
| Gevolg | Vraag wordt automatisch verwijderd | Tekst wordt geweigerd (en niet opgeslagen) | Vraag wordt geweigerd; opname direct gewist |
Samenhang met het domeinmodel
Section titled “Samenhang met het domeinmodel”- De
Meldingis een aggregate in de context Moderatie & Retentie; de tekstmoderatie loopt in diezelfde context via de poortIModeratieDiensten de visuele moderatie via de poortIVisueleModeratieDienst— beide metModeratieUitslag(Toegestaan, Reden?). - De meldingen-drempel (standaard 3) is onderdeel van het Retentiebeleid: een gemelde vraag wordt bij het bereiken van de drempel onmiddellijk verwijderd, en een instelbare veiligheids-timeout ruimt vragen op die nooit afgerond raken. Voor niet-gemelde, afgeronde vragen geldt het resultaat-retentievenster (
resultaatRetentieUren, standaard 168) — de moderatie-route staat daar los van. Net als de overige aantallen zijn deze waarden instelbaar via Systeeminstellingen. - Verwijdering raakt de Vraag in de context Beoordeling; openstaande Opdrachten op een verwijderde vraag leiden niet meer tot nieuwe opinies.