We need to implement a system for managing collections of blacklisted and whitelisted vocabulary in the project. This will allow for more effective content moderation by restricting the use of certain undesirable words (blacklisted) and promoting the use of approved or required terms (whitelisted). The vocabulary collections should be configurable and extensible to accommodate various use cases.
Goals:
Implement API support to add/delete blacklist/whitelist vocabulary dynamically using FastAPI
Implement collections for blacklisted (disallowed) and whitelisted (approved) words or phrases.
Ensure these lists are easy to configure and manage (e.g., stored in a file or database).
Introduce logic to scan input content against the lists, flagging or blocking content based on the match.
Support different categories of content (e.g., comments, submissions, etc.).
Provide feedback to users when they use blacklisted terms and suggest whitelisted alternatives where relevant.
Acceptance Criteria:
[ ] Blacklist and whitelist collections implemented.
[ ] Input is checked against both lists, and appropriate actions (flagging/blocking/suggestion) are triggered.
[ ] Blacklist takes precedence over the whitelist when there's a conflict.
[ ] Collections can be easily updated or extended.
[ ] Detailed documentation provided on how to configure and manage the lists.
Additional Information:
Consider storing the vocabulary in YAML files for easy maintenance.
Ensure flexibility in the length and type of blacklisted and whitelisted items (single words, phrases, etc.).
Provide examples in the documentation of how to use and update the collections.
Description:
We need to implement a system for managing collections of blacklisted and whitelisted vocabulary in the project. This will allow for more effective content moderation by restricting the use of certain undesirable words (blacklisted) and promoting the use of approved or required terms (whitelisted). The vocabulary collections should be configurable and extensible to accommodate various use cases.
Goals:
FastAPI
Acceptance Criteria:
Additional Information: