绕道发布 ChatGPT·Claude·Gemini 文章到博客 — 用单行 curl 活用 LLM 免费额度

#186

使用技巧 / 博客运营 / Python · API 约 2,400 字

使用 LLM 撰写博客文章时,最常见的模式是在 ChatGPT 或 Claude 的聊天窗口中输入“帮我写一篇关于这个主题的指南文章”,然后手动复制生成的 HTML 并粘贴到 Blogger 管理后台的 UI 中。这需要花费 5 分钟,而且每次都需要重新配置标签、元描述(Meta Description)和分类。为此,我们创建了一个旁路端点(endpoint),只需一行 curl 就能将 LLM 的聊天输出直接发送到 Blogger 草稿箱(DRAFT)。

创建原因

直接调用 LLM API(例如 Anthropic / Google)会产生累积的 Token 费用,每篇文章大约需要花费 $0.10-0.50。100 篇文章就是 $10-50。对于像我们网站这样由个人运营的博客来说,这是一笔不小的负担。

相比之下,订阅 ChatGPT Plus / Claude Pro / Gemini Advanced 每月只需 $20 固定费用。即使一个月写 100 篇文章,也不会产生额外费用。然而,“聊天窗口 → 博客”的复制粘贴工作流实在太慢,导致人们最终还是不得不回到 API 调用。

解决方案:将 LLM 聊天中获取的 HTML 发送到 Web 应用的发布端点一行命令即可 → 自动注入标签/元数据/图表 / 通过 SEO 元数据验证钩子链(hook chain) → 自动保存为 Blogger 草稿(DRAFT)。人要做的事情只有在聊天中获取回答后,运行一次 curl。

只需每月 $20 的固定订阅费,就能让 100 篇文章全部通过 Web 应用的发布钩子链(清理 / 质量门禁 / 5 个索引渠道)并成功发布。

工作原理

Web 应用中有一个独立的端点 POST /api/writer/external-publish

请求格式 (Request shape)

{
 "title": "글 제목",
 "content_html": "<p>본문 HTML...</p><h2>섹션</h2>...",
 "label": "활용 팁",
 "post_type": "guide",
 "primary_keyword": "키워드",
 "meta_description": "100-160자 메타 설명"
}

只需将从 LLM 聊天中获取的 HTML 直接放入 content_html,并填好其余 5 个字段即可。

服务器处理

  1. 身份验证 — 仅限本地主机 (127.0.0.1)。不对外暴露。
  2. 标签规范化 (Label normalize) — 将类似 ["활용 팁", "사용팁", "tips"] 的变体输入自动映射到网站的 6 个规范标签(canonical label)之一。如果不是已知标签,则返回 {"error":"unknown_label","allowed":["..."]} 响应。
  3. HTML 检查 — 剥离 <script> / <iframe>,自动转换原始 <table>(通过 publish_sanitizer 钩子)。即使您从 LLM 处获取的是 Markdown 格式,也会自动转换为 HTML。
  4. Blogger 发布 — 调用 blogger.publish_post。通过完整的钩子链(图表注入 / 图片 SEO / 目录 / 阅读时间 / 作者简介 / IP 页脚 / 赞助页脚 / 最终清理 / 质量门禁)。强制保存为草稿 DRAFT(发布上线 LIVE 需要单独的权限)。
  5. 响应{ok: true, post_id, blogger_url, quality_gate: "15/15"}。返回发布结果 + 质量评分。

自动生成提示词模板 (Prompt template)

调用 GET /api/writer/external-publish/prompt-template?topic=foo&label=활용+팁 会返回一段符合网站基调和结构的 LLM 提示词。直接将其复制粘贴到 ChatGPT/Claude 聊天窗口中获取回答即可。

实际效果

  • LLM API 费用:每月 $0.10-0.50 × 100 篇 → 每月 $20 固定订阅(ChatGPT Plus)
  • 单篇文章发布时间(LLM 回答 → Blogger 草稿):5 分钟 → 30 秒
  • 发布钩子链通过率:47 篇外部 LLM 文章中通过 47 篇(平均通过 publish_quality_gate 15/15)
  • 标签贴错事故:引入前平均每月 3 起 → 0 起(规范化映射的功劳)
  • 最常见的使用模式:ChatGPT 聊天 → 复制回答 → 终端运行单行 curl

如果用一个 ChatGPT Plus 订阅来处理每月 100 篇文章,每年的 LLM 费用是 $240(订阅)对比 $1,200-6,000(API 调用)。对于个人运营者来说,这是一个无法忽视的差距。

验证方法

通过以下三种方式进行验证:

发布钩子链通过率

记录了 47 篇外部 LLM 文章发布后的 publish_quality_gate 结果。47 篇全部得分 ≥ 90,平均得分为 95。publish_sanitizer 会自动清理 LLM 输出中不规范的 HTML(如 Markdown 残留、空 <div>),从而满足评分要求。

标签规范化回归测试

将 30 个黄金测试集用例(各种变体标签输入)写入单元测试。"tips""활용 팁""사용팁""활용 팁""compare""비교" 等 30/30 全部正常映射。未知标签则返回 400 响应。

安全抽检

从外部 IP 调用端点时返回 403。强制仅限本地主机。5/5 通过。

如何实现

核心是一个 FastAPI 端点函数。

```python from fastapi import FastAPI, HTTPException, Request from pydantic import BaseModel

app = FastAPI()

LABEL_MAP = { "활용 팁": "활용 팁", "tips": "활용 팁", "사용팁": "활용 팁", "비교": "비교", "compare": "비교", "가이드": "가이드", "howto": "가이드", # ... 사이트 canonical 라벨 매핑 }

class ExternalPublishBody(BaseModel): title: str content_

ToolSignal Pro Editorial

Claude · GPT · Antigravity · Cursor 실전 오류와 해결을 5개 언어로 정리한 AI debugging archive.

이전 글 다음 글