✦ JustRight AI · 郑好内容工场 登 录

JustRight AI · 完整 API 文档

本文档自动生成,覆盖系统全部 107 个接口。分为「对外开放 API」「公开接口」「后台管理接口」三部分。

一、接入指南

1. 基础地址

线上:https://cj.zhengl.vip

2. 鉴权方式

① 对外 API Key 鉴权(/api/v1/*):在「API」菜单创建授权,请求头携带

Authorization: Bearer ZK-xxxxxxxx

② 后台管理接口:需先调用 POST /api/login 登录(使用管理员/用户账号),浏览器自动携带会话 Cookie。

③ 公开接口:无需鉴权(健康检查、系统信息、H5 预览、访问记录、登录等)。

3. 权限说明

权限 key中文名称
dashboard首页概览
task_manage任务管理
content_manage内容管理
tag_manage标签管理
source_manage来源管理
template_manage模板管理
report_view数据报表
user_manage用户管理
api_manageAPI管理
settings_manage系统设置
log_view操作日志
media_generate媒体生成
content_read内容读取(API)
content_write内容写入(API)
task_create发起任务(API)

权限叠加规则:用户有效权限 = 用户自身权限 ∪ 所属各用户组权限(多组叠加);admin 角色自动拥有全部权限。用户组与用户的权限勾选均以中文展示,底层存储 key。

4. 统一返回结构

{"code": 0, "msg": "ok", "data": {...}}   # 对外接口
{"ok": true, ...}                            # 管理接口

二、对外开放 API(供第三方系统调用)

POST /api/v1/tasks — 发起采集任务

权限:task_create

创建采集任务,系统排队执行采集 → AI 生成图文 → 打标全流程。支持「精准采集」(关键字+标签)与「智能采集」(一句话描述)。

{
  "name": "高血压慢病断药采集",
  "scene": "慢病断药",
  "disease": "高血压",
  "keyword": "高血压 用药",
  "target_count": 5,
  "source_ids": [1,2,3],         // 可选,留空=全部商用来源
  "mode": "precise",             // precise=精准 / smart=智能(默认precise)
  "description": "采集高血压患者断药相关的健康科普",  // smart模式必填
  "icd_tags": ["高血压病"], "sic_tags": ["高血压"],
  "sic_med_tags": [], "crowd_tags": [], "lifestyle_tags": [],
  "space_tags": [], "time_tags": ["全年通用"],   // 时间标签必选
  "func_tags": ["用药规范","疾病科普"]
}

返回:{"code":0,"data":{"taskNo":"TASK-...","status":"queued"}}

字段说明:name=任务名称;mode=采集方式(precise 精准:按 keyword+tags 严格采集;smart 智能:按 description 一句话描述自动采集并打标);target_count=目标数量;source_ids=来源ID数组;*_tags=标签组合。

POST /api/v1/content — 新增内容

权限:content_write

{
  "title": "高血压患者如何规律服药",
  "disease": "高血压",
  "content": "<p>正文HTML...</p>",
  "digest": "摘要...",
  "cover_image": "https://cdn.sinoxk.com/...",
  "recommend_speech": "推荐话术...",
  "source_name": "广东省疾病预防控制中心",
  "tags": {"icd":["高血压病"],"sic":["高血压"],"time":["全年通用"],"func":["疾病科普"]}
}

POST /api/v1/content/feed — 获取内容

权限:content_read

按标签组合查询内容,返回多条(含标题/摘要/封面/正文/来源/标签)。

{
  "icd": ["高血压病"], "sic": ["高血压"], "sic_med": [],
  "crowd": [], "func": ["用药规范"], "limit": 10
}

也支持 GET:/api/v1/content/feed?sic=高血压&func=用药规范&limit=10

GET /api/v1/content/export · /api/v1/content/export.xlsx — 导出内容

权限:content_read

按条件导出内容数据,支持 JSON 与 Excel 两种格式。

GET /api/v1/content/export?icd=高血压病&func=用药规范&limit=500
GET /api/v1/content/export.xlsx?sic=高血压

GET /api/v1/push-logs — 推送/访问记录

权限:content_read

查询内容的推送次数、访问次数、访问时长、访问设备等记录,用于统计内容触达与阅读效果。

GET /api/v1/push-logs?content_id=AUTO-ZK-...&limit=50

三、公开接口(无需鉴权)

方法路径说明
GET/api/health健康检查
GET/api/system/info系统名称/Logo/发布类型
GET/api/content/{cid}/preview内容 H5 预览页(用于链接分享,自动记录访问)
POST/api/content/{cid}/record访问记录上报(action=open 匿名;action=push 需 API Key)
GET/api/content/{cid}/stats内容访问统计
POST/api/login登录,返回会话 Cookie
GET/api/login/check会话有效性校验
GET/api/docs本文档

访问记录参数:action=push|open;duration=浏览时长(秒);channel=渠道;open_uuid=打开来源;device=设备类型。预览页已内置自动上报脚本,分享链接后系统自动记录访问设备、浏览时长与打开次数。

标签组接口(v17 新增)

方法路径说明请求体/参数
PUT/api/tag-group重命名标签组(组内全部标签一并修改){"tag_type":"crowd","group":"旧组名","new_group":"新组名"}(string,均必填)
POST/api/tag-group/toggle标签组整体启用/停用{"tag_type":"crowd","group":"组名","enabled":0或1}
DELETE/api/tag-group?tag_type=&group=删除标签组及组内标签;组内任一标签已被内容使用时返回 400 拒绝删除query:tag_type(string)、group(string)

API 授权管理接口(/api/api-keys,v18 补充)

字段类型说明
idint授权 ID
namestring授权名称
api_keystring调用密钥(ZK- 前缀,仅创建时完整返回)
scopesarray<string>权限:task_create 发起采集任务 / content_read 获取内容 / content_write 新增内容
enabledint1 启用 / 0 停用
remarkstring备注
last_used_atdatetime最后调用时间

接口:GET /api/api-keys 列表;POST /api/api-keys 创建(body:{"name":string, "scopes":array, "remark":string},返回一次性完整 key);PUT /api/api-keys/{kid} 更新;DELETE /api/api-keys/{kid} 删除。

权限可调用的对外接口
task_createPOST /api/v1/tasks — 发起采集任务
content_readPOST|GET /api/v1/content/feed — 获取内容;GET /api/v1/content/export(.xlsx) — 导出内容;GET /api/v1/push-logs — 推送记录查询;POST /api/content/{id}/record?action=push — 推送数据上报
content_writePOST /api/v1/content — 新增内容
(任意有效 Key)POST /api/users/sync、POST /api/groups/sync — 用户/用户组同步

后台「创建 API 授权」弹窗按 API 类型(发起采集任务/获取内容/新增内容/数据上报/推送记录查询)分组勾选,勾选后自动映射到上表权限 scope。

GET /api/report/tokens-detail — tokens 调用明细(v18 新增)

参数类型必填说明
daysint否时间范围天数,默认 30
modelstring否按模型筛选
stagestring否按流程阶段筛选
task_nostring否按任务号模糊匹配
page / sizeint否分页,默认 1 / 20

返回 {"total":int,"page":int,"size":int,"items":[{time,task_no,task_name,stage,step,model,prompt_tokens,completion_tokens,total_tokens,cost}]};cost 为 number|null——按「AI 模型配置」中该模型的价格(元/千 tokens)估算的费用,未配置价格时为 null。GET /api/report/tokens-detail/export 相同筛选参数导出 CSV(含费用估算列)。

GET /api/report — 数据报表(v17 增加筛选与采集数据)

参数类型必填说明
daysint否统计时间范围(天数),默认 30
tagstring否标签筛选,作用于推送/内容/采集数据块
modelstring否模型 ID 筛选,作用于 tokens 数据块

返回新增 collect_report(采集数据块):任务总数/完成/失败、目标与完成数量、达成率、内容完整度(标题/摘要/正文/封面图/内容链接/标签/来源 各字段填充率与完整率)、按日期采集趋势。

四、用户与用户组接口详解(v16 新增)

以下接口均需登录会话(Cookie 或 Authorization: Bearer <token>),用户/用户组管理操作需 管理员权限。

GET /api/scopes — 全部权限点

返回系统全部权限点(key + 中文名称),供用户/用户组权限勾选使用。

GET /api/scopes
→ {"items":[{"key":"dashboard","name":"首页概览"},{"key":"task_manage","name":"任务管理"},...]}

GET /api/users — 用户列表(管理员)

参数类型必填说明
kwstring否按用户名/昵称模糊搜索
pageint否页码,默认 1
sizeint否每页条数,默认 50

返回 {"total":总数,"items":[用户对象]},用户对象字段:

字段类型说明
idint用户ID
usernamestring用户名(唯一)
nicknamestring昵称
rolestring角色:admin 管理员 / editor 编辑 / viewer 只读
emailstring邮箱
scopesarray<string>用户自身权限 key 数组
statusint1 启用 / 0 停用
tokens_quotainttokens 额度,0 = 不限量
groupsarray<string>所属用户组名称列表
group_idsarray<int>所属用户组 ID 列表
eff_scopesarray<string>有效权限(自身 ∪ 各组叠加后的结果)

POST /api/users — 新建用户(管理员)

字段类型必填说明
usernamestring是用户名,全局唯一,重复返回 400
passwordstring否初始密码,默认 123456
nicknamestring否昵称
rolestring否admin / editor / viewer,默认 viewer;v18 起新建用户可只传用户组(group_ids),权限由用户组控制
emailstring否邮箱
phonestring否手机号
scopesarray<string>否权限 key 数组,如 ["task_manage","report_view"],全量见 /api/scopes
group_idsarray<int>否所属用户组 ID 数组,可多选,权限叠加
tokens_quotaint否tokens 额度,0 = 不限量
{"username":"zhangsan","password":"Abc@123456","nickname":"张三","role":"editor",
 "email":"zhangsan@example.com","scopes":["task_manage","content_manage"],
 "group_ids":[1,3],"tokens_quota":1000000}
→ {"ok":true,"id":12}

PUT /api/users/{uid} — 编辑用户(管理员)

请求体与新建相同(UserIn),全部字段均可选;额外说明:

字段类型说明
passwordstring传入则重置密码,留空不改
group_idsarray<int>传入则整体替换所属组(先清空后重建)
statusint1 启用 / 0 停用

返回 {"ok":true};用户不存在返回 404,用户名冲突返回 400。

POST /api/users/{uid}/reset-password — 重置密码(管理员)

字段类型必填说明
passwordstring否新密码,默认 123456
POST /api/users/12/reset-password   {"password":"New@123456"}
→ {"ok":true,"password":"New@123456"}

POST /api/users/{uid}/toggle — 启用/停用用户(管理员)

无请求体,切换启停状态;不能停用当前登录账号(返回 400)。返回 {"ok":true,"status":1或0}

DELETE /api/users/{uid} — 删除用户(管理员)

删除用户及其用户组关联;不能删除当前登录账号。返回 {"ok":true}

GET /api/users/me — 当前登录用户

返回当前会话用户对象(字段同用户列表,不含 groups/eff_scopes),未登录返回 401。

GET /api/groups — 用户组列表(登录即可)

返回 {"items":[用户组对象]},字段:

字段类型说明
idint组ID
namestring组名(唯一)
codestring组编码(唯一,默认取组名)
scopesarray<string>组权限 key 数组(后台以中文展示)
remarkstring备注
member_countint成员数量
membersarray<object>成员列表 [{id,username,nickname}]

POST /api/groups — 新建用户组(管理员)

字段类型必填说明
namestring是组名,唯一;组名或编码重复返回 400
codestring否组编码,唯一,默认取组名
scopesarray<string>否权限 key 数组(全量与中文名见 /api/scopes)
remarkstring否备注
member_idsarray<int>否成员用户 ID 数组,可多选
{"name":"运营组","code":"ops","scopes":["task_manage","content_manage","report_view"],
 "remark":"内容运营","member_ids":[3,5]}
→ {"ok":true,"id":2}

PUT /api/groups/{gid} — 编辑用户组(管理员)

请求体同新建;member_ids 传入则整体替换成员。返回 {"ok":true}

DELETE /api/groups/{gid} — 删除用户组(管理员)

删除组及其成员关联(用户本身不受影响)。返回 {"ok":true}

五、AI 模型配置接口详解(v16 新增)

原「媒体配置」升级为「AI 模型配置」:每条配置即一个可用 AI 接口(地址 + Key + 接口类型 + 模型),供任务流程各步骤与生图/生视频调用。

GET /api/media-configs — 配置列表

返回配置对象数组,字段:

字段类型说明
idint配置ID
namestring配置名称
cfg_typestring配置类型:chat 对话 / vision 视觉理解 / image 生图(video 生视频)
api_typestring接口类型:openai / anthropic / gemini / openai_responses / new_api / dashscope / custom
base_urlstringAI 接口地址
api_keystring密钥(auth_mode=subscription 时可留空)
modelstring模型 ID
sizestring生图分辨率,默认 1024x1024
providerstring预设供应商:qwen 千问 / deepseek 深度求索 / mimo / qianfan 百度千帆 / hunyuan 腾讯混元 / kimi / siliconflow 硅基流动 / volcengine 火山引擎 / tokenhub
auth_modestring鉴权模式:key 密钥模式 / subscription tokenHub 订阅模式
price_infloat输入价格(元/千 tokens),用于报表费用估算,默认 0(v18)
price_outfloat输出价格(元/千 tokens),用于报表费用估算,默认 0(v18)
extrastring附加 JSON 配置
enabledint1 启用 / 0 停用

POST /api/media-configs — 新增配置 / PUT /api/media-configs/{mid} — 编辑配置

请求体字段与上表一致,其中:

字段类型必填说明
namestring是配置名称
cfg_typestring是chat / vision / image
api_typestring否默认 openai;new_api/dashscope/custom 按 OpenAI 兼容协议调用
base_urlstring否接口地址;留空时按 api_type 使用官方默认地址
api_keystring否密钥
modelstring否模型 ID,如 qwen-plus、deepseek-chat、mimo-v2.5
sizestring否默认 1024x1024
providerstring否预设供应商 key,选择后前端自动填充 base_url / model
auth_modestring否key / subscription,默认 key
extrastring否附加 JSON
enabledint否默认 1
{"name":"千问-对话","cfg_type":"chat","api_type":"dashscope","base_url":"https://dashscope.aliyuncs.com/compatible-mode/v1",
 "api_key":"sk-xxx","model":"qwen-plus","provider":"qwen","auth_mode":"key","enabled":1}
→ {"ok":true,"id":3}

DELETE /api/media-configs/{mid} 删除配置。流程步骤级模型绑定:在「AI 模型配置」页为每个流程步骤选择接口配置(cfg)+ 模型 ID,保存至 flow_models 设置项,格式 {"标题生成":{"cfg":3,"model":"qwen-plus"}}。

六、后台管理接口详解(v19 新增)

以下接口均需登录会话(Cookie)。每节列出请求参数/请求体字段与返回字段(名称 · 类型 · 说明)。

任务管理接口(/api/tasks)

GET /api/tasks — 任务列表

参数类型必填说明
statusstring否状态筛选:pending 排队 / running 运行中 / done 完成 / failed 失败
page / sizeint否分页,默认 1 / 20

返回 {"total":int,"items":[任务对象]},任务对象字段:

字段类型说明
idint任务ID
task_nostring任务编号(TASK- 前缀)
namestring任务名称
source_typestring来源类型
statusstringpending / running / done / failed
progressint进度百分比 0-100
target_count / done_countint目标数量 / 已完成数量
scene / disease / keywordstring场景 / 疾病 / 关键词
icd_tags / sic_tags / sic_med_tags / crowd_tags / lifestyle_tags / space_tags / time_tags / func_tagsarray<string>八类标签组合
source_idsarray<int>指定来源ID
modestringprecise 精准 / smart 智能
img_mode / img_sizestring插图模式(none/ai/collect)与分辨率
tokensint任务累计 tokens 消耗
ai_prompt / requirementstring自定义提示词 / 一句话需求
stage / stagesstring / object当前阶段 / 各阶段执行状态
result / errorstring结果说明 / 错误信息
created_at / finished_atdatetime创建 / 完成时间
articlesarray<object>任务已产出文章列表 [{id,content_id,title,cover_image,scene}]

POST /api/tasks — 创建任务(请求体 TaskIn)

字段类型必填说明
namestring是任务名称
requirementstring否一句话需求描述(智能模式使用)
scenestring否采集场景
diseasestring否疾病名
keywordstring否采集关键词
target_countint否目标数量,默认 5
icd_tags ~ func_tagsarray<string>否八类标签组合(同上表)
ai_promptstring否自定义 AI 提示词
source_idsarray<int>否指定来源,留空=全部
modestring否precise(默认)/ smart
img_modestring否插图:none(默认)/ ai / collect
img_sizestring否AI 插图分辨率,默认 1024x1024

其他任务接口:GET /api/tasks/{tid} 任务详情(返回任务对象);GET /api/tasks/{tid}/exec 执行过程(35 子步骤逐条状态);POST /api/tasks/{tid}/cancel 取消运行中任务;DELETE /api/tasks/{tid} 删除任务;POST /api/tasks/auto-config AI 自动配置(body:{"requirement":string},返回建议的场景/标签/数量)。

内容管理接口(/api/content)

GET /api/content — 内容列表

参数类型必填说明
scenariostring否按场景筛选
diseasestring否按疾病标签模糊筛选
keywordstring否按标题/正文模糊搜索
tag / tag_typestring否按标签筛选;tag_type 指定标签类别(icd/sic/sic_med/crowd/lifestyle/space/time/func),留空在全部类别中搜索
statusstring否active 启用 / stopped 停用
page / sizeint否分页,默认 1 / 20

返回 {"total":int,"items":[内容对象],"page":int,"size":int},内容对象字段:

字段类型说明
idint自增ID
content_idstring内容编号(AUTO-ZK- 前缀,全局唯一)
title / digest / recommend_speechstring标题 / 摘要 / 推荐话术
body_htmlstring正文 HTML
cover_imagestring封面图 URL
content_linkstringH5 预览链接
icd_tags ~ func_tagsarray<string>八类标签
scene / source / source_namestring / array / string场景 / 来源URL列表 / 来源名称
statusstringactive / stopped
verification / verify_notestring医学校验结果 / 说明
image_status / image_url / video_statusint / string / int科普图状态(0未生成1生成中2已生成)与URL / 视频状态

POST /api/content — 新增内容(请求体 ContentIn,字段同上表可写字段):title 必填;body_html 正文 HTML;status 默认 active。返回 {"ok":true,"content_id":"AUTO-ZK-..."}。

PUT /api/content/{cid} 编辑(请求体同 ContentIn);DELETE /api/content/{cid} 删除;POST /api/content/{cid}/stop|resume 停用/恢复;GET /api/content/{cid}/stats 访问统计(push_count、open_count 等);POST /api/content/{cid}/generate-image 生成科普图(body 可选:{"size":string});POST /api/content/{cid}/generate-video 生成视频;POST /api/content/{cid}/video-generate 创建视频生成任务(body VideoGenIn:prompt string、first_frame_url/last_frame_url string、ratio string、resolution string、duration int、storyboard array、model string、config_id int、audio bool)。

标签管理接口(/api/tags)

GET /api/tags 返回标签数组,字段:id int、tag_type string(icd/sic/sic_med/crowd/lifestyle/space/time/func)、group_name string(分组名)、tag_value string(标签值)、map_sic / map_icd string(SIC/ICD 映射)、enabled int、is_custom int。GET /api/tags/options 返回标签选项(按类别分组的下拉数据)。

POST /api/tags — 新增标签(请求体 TagIn):

字段类型必填说明
tag_typestring是标签类别
tag_valuestring是标签值
group_namestring否所属分组,默认「通用」
map_sic / map_icdstring否SIC / ICD 标准映射
enabledint否默认 1
is_customint否是否自定义标签,默认 0

PUT /api/tags/{tid} 编辑(请求体同 TagIn);DELETE /api/tags/{tid} 删除(已被内容使用的标签返回 400)。标签组接口见第三章「标签组接口」。

来源与黑名单接口(/api/sources · /api/source-groups · /api/blacklist)

GET /api/sources 参数:group_id int(分组筛选)、keyword string(名称/域名搜索)、enabled int(0=全部,默认)、page/size int(默认 1/200)。返回 {"total":int,"items":[{id:int,name:string,domain:string,category:string,url:string,group_id:int,enabled:int}]}。

POST /api/sources — 新增来源(SourceIn):

字段类型必填说明
namestring是来源名称
domainstring是来源域名
categorystring否分类,默认「政府机构」(可选 疾控/三甲医院/权威学会 等)
urlstring否站点首页
group_idint否所属来源分组ID,默认 0
enabledint否默认 1

PUT /api/sources/{sid} 编辑(请求体同 SourceIn);DELETE /api/sources/{sid} 删除。

GET /api/source-groups 返回来源分组数组(含组内来源)。POST /api/source-groups(SourceGroupIn:name string 必填、remark string、source_ids array<int> 组内来源)。PUT /api/source-groups/{gid}、DELETE /api/source-groups/{gid}。

GET /api/blacklist 返回黑名单数组(domain、reason、enabled)。POST /api/blacklist(BlackIn:domain string 必填、reason string、enabled int 默认 1)。DELETE /api/blacklist/{bid}。

模板管理接口(/api/templates)

GET /api/templates 返回模板数组:id int、name string、version string、is_default int(1 默认模板)、content string(模板 HTML,支持变量占位符)。

POST /api/templates — 新增模板(TemplateIn):

字段类型必填说明
namestring是模板名称
contentstring是模板 HTML 内容
versionstring否版本号,默认 1.0
is_defaultint否设为默认模板 1/0,默认 0;设为默认时原默认模板自动取消

PUT /api/templates/{tid} 编辑(请求体同 TemplateIn);POST /api/templates/{tid}/copy 复制模板;DELETE /api/templates/{tid} 删除。

设置接口(/api/settings)

GET /api/settings 返回 {"settings":{key:value,...}},常用键:

键类型说明
ai_base_url / ai_api_key / ai_text_model / ai_vision_modelstring全局默认 AI 接口地址/密钥/文本模型/多模态模型
image_model / video_model / image_daily_limitstring / string / int生图/生视频模型与每日生图限额
title_prompt / digest_prompt / speech_prompt / tag_prompt / verify_promptstring各环节提示词
flow_config / flow_modelsJSON string流程步骤开关 / 步骤级模型绑定
mp_appid / mp_appsecret / mp_author / mp_publish_modestring公众号配置
h5_base_url / h5_statstring / intH5 分享基础地址 / 访问统计开关
sys_name / sys_logo / publish_typestring系统名称 / Logo / 发布类型

PUT /api/settings 请求体为键值对字典(仅需传要修改的键),返回 {"ok":true}。

日志接口(/api/logs)

GET /api/logs 参数:module string(模块筛选)、level string(info/warn/error)、keyword string(详情搜索)、page/size int(默认 1/50)。返回 {"total":int,"items":[{id:int,level:string,module:string,action:string,detail:string,operator:string,created_at:datetime}]}。GET /api/logs/export 导出 CSV。

营销接口(/api/products · /api/marketing)(v22 新增)

GET /api/products 参数:keyword string(按名称模糊)、enabled int(-1 全部/1 启用/0 停用)。返回 {"items":[商品]},商品字段:id int、goods_no string(货号)、name string、generic_name string(通用名)、spec string(规格)、manufacturer string(生产单位)、price float(零售价,元)、brand string、category string(品类,六选一:药品-OTC/药品-Rx/保健食品/医疗器械/普通食品/其他,缺省「其他」)、selling_point string、instruction string(商品说明书)、image_url string、remark string、enabled int、content_count int(露出文章数)、last_at string(最近露出时间)。

POST /api/products — 新增商品(ProductIn):

字段类型必填说明
namestring是商品名称(唯一,AI 融入使用该名称)
generic_namestring否通用名(如「布洛芬混悬液」,v24 新增;可由 AI 加工自动补全)
goods_no / spec / manufacturerstring否货号 / 规格 / 生产单位(与商品清单模板字段对应)
pricefloat否零售价(元)
brand / category / image_url / remarkstring否品牌 / 品类(六选一,缺省「其他」)/ 商品图片 / 备注
selling_pointstring否核心卖点(供 AI 融入参考)
instructionstring否商品说明书要点(供 AI 融入参考;品类为「药品-Rx」时 AI 将附加医生/药师指导提示)
enabledint否1 启用(默认)/ 0 停用

GET /api/products/{pid} 返回 {"item":商品}(字段同列表,v23 新增)。PUT /api/products/{pid} 编辑(请求体同 ProductIn,全量提交);DELETE /api/products/{pid} 删除(连带删除露出关联)。

POST /api/products/ai-fill:AI 批量加工商品资料(v24 新增)。请求体 {"limit": 20}(每批最多 40 条),对通用名/品类/品牌/卖点存在空缺的商品自动补全(已有值不覆盖,品类仅修正「其他」)。返回 {"filled":int,"pending":int,"items":[{id,name,generic_name,category,brand,selling_point,changed:[更新字段]}]},前端循环调用直至 pending 为 0。

POST /api/products/import:multipart 上传 Excel,按表头名自动识别列(v23 起支持商品清单模板列:序号/货号/商品名(必填)/通用名/规格/生产单位/零售价/品类/品牌/商品说明书/品牌卖点;也兼容旧列:商品名称/品牌/品类/卖点/图片链接/备注)。同名或同货号更新、否则新增;品类为空或非法自动归「其他」。返回 {"created":int,"updated":int,"skipped":int,"cat_fixed":int}。

GET /api/products/{pid}/contents 返回该商品露出的文章列表(content_id、title、digest、cover_image、status、created_at)。

GET /api/marketing/stats 返回 {"items":[商品露出统计(含 count 排名)],"total_products":int,"enabled_products":int,"total_exposures":int,"categories":[{category,count}]}。

营销机制:AI 生成文章初稿时,自动将「启用」状态的商品注入提示词,AI 选择与主题相关的 1-3 个商品以健康建议口吻自然融入;文章入库后按商品名匹配正文自动记录露出关联。

场景管理接口(/api/scenes)

GET /api/scenes 返回 {"items":[{id:int,name:string,remark:string}]}。POST /api/scenes(SceneIn:name string 必填、remark string)。PUT /api/scenes/{sid} 编辑;DELETE /api/scenes/{sid} 删除。

上传接口(/api/upload/image)

POST /api/upload/image:multipart/form-data,字段 file(image/*)。返回 {"url":string}(对象存储/本机存储公网地址)。

公众号接口(/api/mp)

POST /api/mp/test:无请求体,测试公众号连通性,返回测试结果。POST /api/mp/publish — 发布文章(MpPublishIn):

字段类型必填说明
content_idstring是要发布的内容编号
titlestring否覆盖标题,留空用内容标题
digeststring否覆盖摘要
source_urlstring否原文链接

GET /api/mp/publish/{publish_id} 查询发布任务状态与结果。

AI 生成接口(/api/ai)

POST /api/ai/generate — AI 通用生成(AiGenIn):

字段类型必填说明
gen_typestring是生成类型:title 标题 / digest 摘要 / speech 推荐话术 / tags 标签
contentstring是正文文本
titlestring否标题(生成摘要/话术时使用)
disease / scenestring否疾病 / 场景(生成标签时使用)
tag_typesarray<string>否需要生成的标签类别

POST /api/ai/cover — AI 生成封面图(请求体同 AiGenIn),返回封面图 URL。

媒体任务接口(/api/media-tasks)

GET /api/media-tasks 参数:content_id string(按内容筛选)、status string(0 待处理 / 1 处理中 / 2 完成 / 3 失败)。返回媒体任务数组:id int、task_no string、content_id string、type string(image/video)、model string、prompt string、status int、url string(生成结果)、extra JSON(含配置与模型信息)。

PUT /api/media-tasks/{mtid} 编辑提示词并重跑(MediaTaskIn:prompt string),返回 {"ok":true}。

用户与用户组同步接口(v19 补充文档)

供外部系统(如企微、HR)批量同步用户与用户组,API Key 鉴权(Authorization: Bearer ZK-xxx,任意启用的 Key 均可调用,无需额外 scope)。

POST /api/users/sync — 批量同步用户,请求体:

字段类型必填说明
usersarray<object>是用户数组,每项字段如下
users[].usernamestring是用户名(唯一键,存在则更新,不存在则创建)
users[].passwordstring否密码,新建默认 123456;更新时传入则重置
users[].nickname / emailstring否昵称 / 邮箱
users[].rolestring否admin / editor / viewer,新建默认 viewer
users[].scopesarray<string>否权限 key 数组(新建时使用,全量见 /api/scopes)
users[].enabledbool否启用/停用,默认 true
users[].groupsarray<string>否用户组编码数组,按 code 关联(增量追加,不清空)

返回 {"ok":true,"created":int,"updated":int,"skipped":int}(username 为空跳过计入 skipped)。

POST /api/groups/sync — 批量同步用户组,请求体:

字段类型必填说明
groupsarray<object>是用户组数组,每项字段如下
groups[].namestring是组名(唯一键,存在则更新)
groups[].codestring否组编码,默认取组名
groups[].scopesarray<string>否组权限 key 数组
groups[].membersarray<string>否成员用户名数组,传入则整体替换组成员

返回 {"ok":true,"created":int,"updated":int}。

七、后台管理接口总览(需登录会话,共 107 项)

方法路径说明鉴权
POST/api/v1/content【对外】新增内容API Key
GET/api/v1/content/export【对外】导出内容API Key
GET/api/v1/content/export.xlsx【对外】导出内容(Excel)API Key
POST/api/v1/content/feed【对外】按标签获取内容API Key
GET/api/v1/content/feed【对外】按标签获取内容API Key
GET/api/v1/push-logs【对外】推送/访问记录查询API Key
POST/api/v1/tasks【对外】发起采集任务API Key
GET/api/content/{cid}内容详情/编辑登录会话
PUT/api/content/{cid}内容详情/编辑登录会话
DELETE/api/content/{cid}内容详情/编辑登录会话
POST/api/content/{cid}/generate-image生成科普图登录会话
POST/api/content/{cid}/generate-video生成视频登录会话
GET/api/content/{cid}/preview内容 H5 预览页(公开)公开
POST/api/content/{cid}/record内容推送/访问记录(open 公开,push 需 API Key)公开
POST/api/content/{cid}/resume恢复内容登录会话
GET/api/content/{cid}/stats内容访问统计(公开)公开
POST/api/content/{cid}/stop停用内容登录会话
POST/api/content/{cid}/video-generate生成视频(千问)登录会话
GET/api/health健康检查公开
POST/api/login登录(获取会话)公开
GET/api/login/check登录状态校验公开
GET/api/system/info系统信息(名称/Logo/发布类型,公开)公开
POST/api/ai/coverAI 生成封面图登录会话
POST/api/ai/generateAI 通用生成登录会话
GET/api/api-keysAPI 授权(列表/创建)登录会话
POST/api/api-keysAPI 授权(列表/创建)登录会话
DELETE/api/api-keys/{kid}更新/删除 API 授权登录会话
PUT/api/api-keys/{kid}更新/删除 API 授权登录会话
GET/api/blacklist黑名单管理登录会话
POST/api/blacklist黑名单管理登录会话
DELETE/api/blacklist/{bid}blacklist·{bid}登录会话
GET/api/content内容管理(列表/新增)登录会话
POST/api/content内容管理(列表/新增)登录会话
GET/api/groups用户组管理(列表/新增)登录会话
POST/api/groups用户组管理(列表/新增)登录会话
POST/api/groups/sync用户组同步(对接外部系统)登录会话
PUT/api/groups/{gid}用户组编辑/删除登录会话
DELETE/api/groups/{gid}用户组编辑/删除登录会话
POST/api/logout退出登录登录会话
GET/api/logs操作日志登录会话
GET/api/logs/export导出日志登录会话
GET/api/marketing/statsmarketing·stats登录会话
GET/api/media-configs媒体接口配置登录会话
POST/api/media-configs媒体接口配置登录会话
PUT/api/media-configs/{mid}media-configs·{mid}登录会话
DELETE/api/media-configs/{mid}media-configs·{mid}登录会话
GET/api/media-tasks媒体任务(图片/视频生成任务)登录会话
PUT/api/media-tasks/{mtid}更新媒体任务(提示词)登录会话
POST/api/mp/publish发布到公众号登录会话
GET/api/mp/publish/{publish_id}查询公众号发布结果登录会话
POST/api/mp/test公众号接口测试登录会话
GET/api/productsproducts登录会话
POST/api/productsproducts登录会话
POST/api/products/ai-fillproducts·ai-fill登录会话
POST/api/products/importproducts·import登录会话
GET/api/products/{pid}products·{pid}登录会话
PUT/api/products/{pid}products·{pid}登录会话
DELETE/api/products/{pid}products·{pid}登录会话
GET/api/products/{pid}/contentsproducts·{pid}登录会话
GET/api/report内容报表登录会话
GET/api/report/tokens-detailreport·tokens-detail登录会话
GET/api/report/tokens-detail/exportreport·tokens-detail登录会话
GET/api/scenes场景管理登录会话
POST/api/scenes场景管理登录会话
PUT/api/scenes/{sid}scenes·{sid}登录会话
DELETE/api/scenes/{sid}scenes·{sid}登录会话
GET/api/scopesscopes登录会话
GET/api/settings系统设置登录会话
PUT/api/settings系统设置登录会话
GET/api/source-groups来源分组登录会话
POST/api/source-groups来源分组登录会话
PUT/api/source-groups/{gid}source-groups·{gid}登录会话
DELETE/api/source-groups/{gid}source-groups·{gid}登录会话
GET/api/sources来源管理登录会话
POST/api/sources来源管理登录会话
PUT/api/sources/{sid}sources·{sid}登录会话
DELETE/api/sources/{sid}sources·{sid}登录会话
GET/api/stats仪表盘统计数据登录会话
PUT/api/tag-grouptag-group登录会话
DELETE/api/tag-grouptag-group登录会话
POST/api/tag-group/toggletag-group·toggle登录会话
GET/api/tags标签管理(列表/新增)登录会话
POST/api/tags标签管理(列表/新增)登录会话
GET/api/tags/options标签选项登录会话
PUT/api/tags/{tid}tags·{tid}登录会话
DELETE/api/tags/{tid}tags·{tid}登录会话
GET/api/tasks采集任务(列表/创建)登录会话
POST/api/tasks采集任务(列表/创建)登录会话
POST/api/tasks/auto-config任务 AI 自动配置登录会话
GET/api/tasks/{tid}任务详情/修改/删除登录会话
DELETE/api/tasks/{tid}任务详情/修改/删除登录会话
POST/api/tasks/{tid}/cancel停止/取消进行中任务登录会话
GET/api/tasks/{tid}/exectasks·{tid}登录会话
GET/api/templates模板管理登录会话
POST/api/templates模板管理登录会话
PUT/api/templates/{tid}templates·{tid}登录会话
DELETE/api/templates/{tid}templates·{tid}登录会话
POST/api/templates/{tid}/copy复制模板登录会话
POST/api/upload/image上传图片登录会话
GET/api/users用户管理(列表/新增)登录会话
POST/api/users用户管理(列表/新增)登录会话
GET/api/users/me当前登录用户登录会话
POST/api/users/sync用户同步(对接外部系统)登录会话
PUT/api/users/{uid}用户编辑登录会话
DELETE/api/users/{uid}用户编辑登录会话
POST/api/users/{uid}/reset-password重置密码登录会话
POST/api/users/{uid}/toggle启用/停用用户登录会话
JustRight AI · 郑好内容工场 · Right Content, Right on Time.
© 2026 JustRight AI
蜀ICP备19008580号