Humanize DeepSeek API Output in PHP: A WordPress-Friendly Checker for Hedging, Contrast Frames and Summary Closers (2026) A developer built toneguard, a dependency-free PHP 8.1+ command-line checker that flags AI-generated WordPress copy for hedge stacking, contrast frames and summary closers. The tool calls DeepSeek's OpenAI-style chat completions API with thinking mode disabled, reads only the content field, and warns when finish_reason is length; exit codes signal ok, rewrite or API failure. Last checked October 2026. Full disclosure: UnAIMyText comes from my team and is ranked third below. The PHP is free to copy, fork or rip apart. Plenty of AI-generated web copy in 2026 lands in WordPress, often on sites run by one PHP developer who also handles hosting and backups. On a client project last month that developer was me. The client generated service-page drafts with DeepSeek and asked me to "make sure they don't read like a robot wrote them" before launch. Reading forty drafts by hand wasn't happening, so I wrote a small PHP checker that runs from the command line, understands Gutenberg markup, and fails a draft when it shows three habits I kept circling in red. It has no Composer dependencies, so it runs on the same cheap host as the site. toneguard flags Previous posts in this series checked stock phrases, sentence rhythm, repeated openers, filler density and paragraph sizes. These three are different, and they show up constantly in service-page copy: Exit codes: 0 ok, 1 rewrite, 2 the API call failed. --json prints the full report. DeepSeek's chat completions reference https://api-docs.deepseek.com/api/create-chat-completion/ uses an OpenAI-style POST /chat/completions with a bearer token. Two details matter here. Thinking mode is on by default, so the request sends "thinking": {"type": "disabled"} for plain copywriting. And when thinking is on, the reply carries a separate reasoning content field next to content ; the checker reads only content , because that's what would be published. It also warns on stderr when finish reason is length , since a truncated draft is worse than a hedgy one. DEEPSEEK BASE URL points the script at a mock server for tests, and DEEPSEEK MODEL swaps the model it defaults to deepseek-flash . One file, PHP 8.1 or newer, with ext-curl and ext-mbstring , which nearly every host ships.