| 关键词 | 词根 | 字数 | 长尾词数 | 日检索 PC / 移动 |
流量指数 | 移动指数 | 抖音 | 快手 | 竞价公司 | 竞争 | 点击价 | 流量特点 | 发现时间 | 状态 | AI | 标签 |
|---|
| 长尾标题 | 词根 | 价值量 | 字数 | 状态 | AI | 标签 | 已分配站点 | 最近更新 |
|---|
| 站点 | 域名 | 定位 | 状态 | 自动化 | 待写 | 写作中 | 已写 | 已发布 | 合计 | 操作 |
|---|
| 标题 | 站点 | 词根 | 价值量 | 状态 | 文章 | 最近更新 |
|---|
| 标题 | 站点 | 字数 | 状态 | 模型 | 文章 | 生成时间 |
|---|
| 城市 | 分站域名 | 省份 | SEO 标题 | 状态 | 会员(显示/全部) | 排序 | 操作 |
|---|
| 会员 | 主站 / 分站 | 资料 | 来源 | 状态 | 排序 | 录入时间 |
|---|
每个站点按「每天篇数」把写作均匀分配到全天(北京时间),按价值量从高到低写待写任务。 站点开了「自动发布」时,文章写完先过词表检查,再交给 jev 模型逐条做合规审核(jev 出错时换 AI 模型),通过的立刻发布;不通过的留在「待审核」并写明原因,在文章管理里修改后发布。 同一任务连续失败 3 次会暂停,在下方处理。
jev 按下面的「网站定位」判断每个关键词 / 长尾标题:适合照常使用;不相关、高危的剔除——列表、导出、统计默认不显示, 长尾标题同时改为「忽略 / 高危」,不再分配和领取;把握不大的标为存疑保留。判断错的在列表里用「AI 检测…」标为适合或剔除,手动结果不会被覆盖。
| 未检测 | 适合 | 存疑 | 不相关 | 高危 |
|---|
| 关键词 | 结论 | 适合 | 不相关 | 高危 |
|---|
| 站点 | 状态 | 每天篇数 | 今天已写 | 当前应写 | 今天发布 | 待写任务 | 自动发布 | 发布方式 | 模型 |
|---|
| 标题 | 站点 | 失败次数 | 最后错误 | 时间 |
|---|
| 时间 | 类型 | 来源 | 站点 | 结果 | 说明 | 耗时 |
|---|
| 名称 | 接口类型 | 模型 ID | 接口地址 | Key | 优先级 | 状态 | 文章数 | 操作 |
|---|
| 标签 | 创建时间 | 查看 |
|---|
AI 写作程序按站点领取文章任务、提交写好的文章。请求头需带
Authorization: Bearer <AI_API_TOKEN>,令牌在服务器上用
npx wrangler secret put AI_API_TOKEN 设置,不需要登录后台。
流程:在后台给站点分配长尾标题 → AI 领取该站点的任务(待写 → 写作中)→ 按站点的写作风格写文章 → 提交(→ 已发布 / 已写)。 领取后 24 小时未提交会自动回到可领取状态;写不了的可以释放。同一标题分给多个站点时,每个站点各有一个任务、各写一篇。
1. 站点列表 GET /api/ai/sites
返回运营中的站点及其定位、写作风格、待写数量。
curl /api/ai/sites -H "Authorization: Bearer $AI_API_TOKEN"
{"sites": [{"id": 1, "name": "Soul 使用指南", "domain": "soul.example.com",
"positioning": "...", "writing_prompt": "...", "todo": 100, "writing": 3}]}
2. 领取任务 POST /api/ai/claim
site 必填,站点 id 或域名;其余可选:count 数量(1–50,默认 5)、root 词根、tag 标签、min_value 最低价值量。按价值量从高到低领取。
curl -X POST /api/ai/claim \
-H "Authorization: Bearer $AI_API_TOKEN" -H "Content-Type: application/json" \
-d '{"site": "soul.example.com", "count": 3}'
{"site": {"id": 1, "name": "Soul 使用指南", "domain": "soul.example.com",
"positioning": "...", "writing_prompt": "..."},
"items": [{"task_id": 501, "longtail_id": 23281, "title": "soul怎么匹配到附近的人", "root": "soul",
"other_roots": null, "value": 98, "title_len": 12, "tags": [],
"note": "本任务备注", "longtail_note": "标题备注"}, ...],
"claimed_at": "2026-10-09 08:00:00", "expires_in_hours": 24}
3. 提交文章 POST /api/ai/submit
task_id 必填;article_url 文章地址;note 备注;status 可选 2(已写)或 3(已发布),默认有地址为 3、否则为 2。只能提交「写作中」的任务。
也可以直接提交正文,存入「文章管理」并按站点设置自动发布:content(Markdown,必填)、title、description、keywords、slug。
返回 article_id、article_status、risk_words(合规检查命中的词,非空时进入待审核)。
curl -X POST /api/ai/submit \
-H "Authorization: Bearer $AI_API_TOKEN" -H "Content-Type: application/json" \
-d '{"task_id": 501, "article_url": "https://soul.example.com/match-nearby"}'
4. 释放任务 POST /api/ai/release
把领取了但不写的任务放回「待写」:{"ids": [501, 502]}(任务 id)
5. 进度统计 GET /api/ai/stats
返回各站点各状态的任务数,可加 ?site=站点id或域名 只看一个站点。
6. 关键词 / 标题是否适合本站 POST /api/ai/screen
用 jev 模型按「自动化 → AI 选词」里的网站定位判断,只返回结果、不写库。items 数组最多 400 条;kind 为 keyword(默认)或 title(长尾标题)。
screen:1 适合 / 2 存疑 / 3 不相关 / 4 高危,p 为该结论的概率。
curl -X POST /api/ai/screen \
-H "Authorization: Bearer $AI_API_TOKEN" -H "Content-Type: application/json" \
-d '{"kind": "keyword", "items": ["soul怎么匹配附近的人", "光遇买心店价格"]}'
{"results": [{"text": "soul怎么匹配附近的人", "screen": 1, "label": "适合", "p": 0.99, "probabilities": {"fit": 0.99, "off": 0.01, "risk": 0}},
{"text": "光遇买心店价格", "screen": 3, "label": "不相关", "p": 1, ...}], "errors": []}
7. 文章能否发布 POST /api/ai/review
用 jev 按合规规则逐条判断,只返回结果、不写库:title、content 必填,description、domain(本站域名,站内链接不算外链)可选。
scores 为各规则的违规概率(任一 ≥ 0.6 不通过)和 publishable 整体可发布概率(< 0.5 不通过)。自动发布前的 AI 审核用的是同一套规则。
{"pass": false, "issues": ["联系方式引流(0.99)"], "model": "jev",
"scores": {"sexual": 0.02, "illegal": 0.03, "contact": 0.99, "sensitive": 0.04, "absolute": 0.1, "defame": 0.05, "fabricated": 0.2, "clickbait": 0.06, "publishable": 0.08}}
发布方式为「站点拉取」的站点,由站点程序定时调用下面的接口获取已发布文章(建议每 10 分钟一次,用 since 增量同步)。
令牌是每个站点单独的,在「站点管理」的站点列表中复制;也可以用 ?token= 传。
文章列表 GET /api/pub/articles
参数:site 站点域名或 id(必填)、page、size(1–100)、since 只返回该时间之后更新的(UTC,格式 2026-10-09 08:00:00)、full=1 带正文。
curl "/api/pub/articles?site=soul.example.com&full=1" -H "Authorization: Bearer 站点令牌"
{"items": [{"id": 12, "task_id": 501, "keyword": "soul怎么匹配到附近的人", "title": "...", "slug": "soul-match-nearby",
"description": "...", "keywords": ["..."], "content_markdown": "...", "content_html": "<p>...",
"word_count": 1980, "url": "https://...", "published_at": "...", "created_at": "...", "updated_at": "..."}],
"total": 120, "page": 1, "size": 20}
单篇文章 GET /api/pub/article
参数:site,加 slug 或 id。只返回「已发布」的文章,下线后返回 404。
Webhook 推送格式
发布方式为 Webhook 时,发布文章会 POST JSON 到推送地址:{"event": "publish", "site": {...}, "article": {同上}, "remote_id": null},
配置了密钥时带请求头 X-Signature: sha256=HMAC-SHA256(密钥, 请求体) 的十六进制。返回 {"url": "文章地址", "id": "你那边的文章 id"}
会被记录,再次发布同一文章时 remote_id 会带上,用于更新。