Scan customer service chat messages for keywords that should route to a specific team.
Flag text content for manual review based on a configurable keyword and tag list.
Build a compliance check that warns when specific words appear in user-submitted text.
Run keyword detection alongside a local AI model for extra accuracy on flagged terms.
| 15515151/noblack | bunnymq/bunnymq | d4l3k/wikigopher | |
|---|---|---|---|
| Stars | 15 | 15 | 15 |
| Language | Go | Go | Go |
| Last pushed | — | — | 2019-06-25 |
| Maintenance | — | — | Dormant |
| Setup difficulty | easy | hard | moderate |
| Complexity | 3/5 | 5/5 | 3/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Go 1.21 or newer, or Docker, to run the service.
noblack is a lightweight text keyword matching service written in Go. It is built around the Aho-Corasick algorithm, a method that lets it scan a piece of text for many keywords at once in a single pass instead of checking each word separately. It is meant for tasks like content classification, flagging text for review, routing messages based on rules, compliance warnings, or checking customer service conversations for words that need attention. Text is processed character by character in a way that correctly handles Chinese, English, and emoji, and returns the exact position in the text where each keyword was found. Each keyword entry can carry multiple category tags and notes, and a single entry can define several keywords at once by separating them with commas, so they all share the same tags and notes. The service comes with a built-in web console and an HTTP API for managing the keyword list: adding, editing, deleting, and listing entries, along with reloading the list from a file either automatically when the file changes or by calling an API endpoint. When the keyword list updates, the service builds a brand new matching engine in the background and swaps it in only once it is ready, so requests already in progress keep using the old version and nothing is blocked while the update happens. It also tracks basic usage statistics, like how many requests came in and which keywords matched most often, and these can optionally be saved to a file. Write operations to the keyword list can be locked behind an access token, and the service limits how large an incoming request body can be, rejecting very large ones outright. It also supports two optional local AI models that run alongside the keyword matching for additional detection, with results from both models shown together. It runs directly with Go, or through Docker and Docker Compose, and its code is licensed under the GNU Affero General Public License version 3.
A Go service that scans text for configured keywords using the Aho-Corasick algorithm, with a web console, hot-reloading keyword lists, and usage stats.
Mainly Go. The stack also includes Go, Aho-Corasick, Docker.
You can use and modify this freely, but if you run a modified version as a network service, you must make your modified source code available to its users.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.