Build an AI Moderation Classifier in Python A developer built a two-stage AI moderation classifier in Python using Telnyx AI Inference. The pipeline uses embeddings similarity to catch obvious spam and abuse patterns, then falls back to an LLM for nuanced content. The open-source Flask example provides endpoints for blocklisting, moderation, and batch processing. Moderation is one of those product features where "just ask an LLM" sounds tempting, but it is not always the best workflow. Some content is obvious. Known spam, repeated abuse patterns, and common scam text should be caught quickly and consistently. Other content needs judgment. It may be contextual, vague, sarcastic, or borderline. I put together a Python Flask example that handles both paths with Telnyx AI Inference: https://github.com/team-telnyx/telnyx-code-examples/tree/main/moderation-classifier-python https://github.com/team-telnyx/telnyx-code-examples/tree/main/moderation-classifier-python The app uses a two-stage pipeline: Before moderating content, build the blocklist index: curl -X POST http://localhost:5000/blocklist/index That embeds the bundled sample blocklist.json entries through: POST /v2/ai/openai/embeddings Then you can classify a single piece of content: curl -X POST http://localhost:5000/moderate \ -H "Content-Type: application/json" \ -d '{ "content": "Great product, really enjoyed using it.", "source": "review", "author id": "user-123" }' The app returns structured fields: { "category": "safe", "confidence": 1.0, "flags": , "blocklist match": false, "recommended action": "allow", "reason": "Benign positive product review with no policy violations." } If content matches the blocklist strongly enough, the app skips the LLM and returns the matched category directly. For anything else, it calls: POST /v2/ai/chat/completions The default models are: AI MODEL=moonshotai/Kimi-K2.6 EMBEDDING MODEL=thenlper/gte-large The example includes: POST /blocklist/index POST /moderate POST /moderate/batch POST /blocklist GET /blocklist GET /moderations GET /moderations/