模块接口规范设计专家

0 浏览
0 试用
0 购买
Nov 13, 2025更新

本提示词专为程序设计师打造,提供系统化的模块接口设计解决方案。通过结构化的工作流程,能够生成包含完整参数定义、错误处理规范和实际示例的接口设计方案,确保接口设计的清晰性、稳定性和可维护性。特别适用于微服务架构、系统集成和团队协作场景,帮助设计师快速构建符合RESTful和RPC规范的接口文档。

多语言文本摘要与关键词提取服务 API 规范

接口基本信息

  • 名称:多语言文本摘要与关键词提取服务
  • 版本:v1
  • 协议类型:RESTful over HTTPS
  • 内容类型:application/json; charset=utf-8
  • 鉴权:HTTP Header Authorization: Bearer {API_TOKEN}
  • 幂等:POST 支持 Idempotency-Key 头(UUID),同一键+语义等价请求在 24 小时内返回同一结果
  • 字符索引约定:
    • char_start/char_end 为 0 基、左闭右开,基于 Unicode 标量(code point)
    • sentence_index 为 0 基;page_index 为 0 基
  • 语言代码:BCP 47(如 "en", "zh-CN", "de")
  • 时区与时间格式:ISO 8601(UTC),如 "2025-11-13T08:15:30Z"

1) 创建摘要与关键词任务

基本信息

  • 方法与路径:POST /v1/summaries
  • 说明:提交文本或网页正文,按指定风格/长度/目标语言生成摘要,并提取关键句与关键词;支持可选分页处理与配置版本追踪。服务器可同步返回结果或异步返回任务。

请求参数定义表(JSON Body)

参数名 类型 必填 描述 示例
input.type string 输入类型,枚举:"text" "url"
input.content string 当 type="text" 时必填 原文纯文本 "......"
input.url string 当 type="url" 时必填 可抓取的页面 URL(HTTP/HTTPS) "https://example.com/article"
input.html string 当 type="html" 时必填 HTML 源(将自动抽取正文) "..."
input.source_metadata.title string 源标题 "Sample News"
input.source_metadata.author string 作者 "Alice"
input.source_metadata.published_at string 源发布时间(ISO 8601) "2025-10-01T10:00:00Z"
input.source_metadata.source_id string 源标识(用于追踪) "news_00123"
source_language string 源语言(BCP 47)。缺省自动检测 "zh-CN"
target_language string 目标摘要语言。缺省等于源语言/检测语言 "en"
style string 摘要风格。枚举:"news" "academic"
target_length.unit string 长度单位。枚举:"words" "sentences"
target_length.value number 目标长度值(words/sentences 为正整数;ratio ∈ (0,1]) 6
keywords_options.top_k integer 返回关键词数量(1-50,默认 15) 12
keywords_options.include_phrases boolean 是否包含多词短语(默认 true) true
keywords_options.min_char_len integer 关键词最小长度(默认 2) 2
key_sentence_options.count integer 关键句数量(1-20,默认 5) 5
sensitive_masking.enable boolean 启用敏感词屏蔽(默认 false) true
sensitive_masking.mode string 当启用时建议 枚举:"exact" "regex"
sensitive_masking.mask_char string 屏蔽字符,默认 "*" "*"
sensitive_masking.preserve_length boolean 是否保持原长(默认 true) true
sensitive_masking.scope string "summary_only" "all_outputs"(默认 summary_only)
sensitive_masking.dictionary_id string 敏感词词典配置 ID "dict_v3"
citation_options.enable boolean 是否回填引用来源(默认 true 若有来源) true
citation_options.format string "inline" "footnote"(默认 inline)
citation_options.style string "apa" "mla"
citation_options.min_confidence number 来源置信度阈值 0-1(默认 0.5) 0.6
topic_preferences.taxonomy string 主题体系:"iptc" 或 "custom:{id}" "iptc"
topic_preferences.items array 主题偏好(主题与权重) [{"topic":"economy","weight":0.8}]
pagination.enable boolean 是否分页处理长文(默认 false) true
pagination.unit string 条件 "chars" "sentences"(默认 sentences)
pagination.size integer 条件 每页大小(chars: 2k-20k;sentences: 5-50) 12
pagination.overlap integer 页间重叠(默认 0;同 unit) 2
response_mode string "auto" "sync"
return_pages boolean 若分页且同步完成,是否直接返回所有页(默认 false) false
config_profile.id string 配置画像 ID(用于版本追踪) "sum_profile_a"
config_profile.version string 配置画像版本 "1.4.2"
client_request_id string 客户端请求跟踪 ID "req-789"
dry_run boolean 仅做参数校验与估算(默认 false) false

说明:

  • 当 input.type 为 url 或 html 时会执行正文抽取与噪声过滤。
  • target_length 默认按 ratio=0.2(20% 压缩率)估算。
  • response_mode=auto:请求体大小与内部估算在阈值内则 200 同步返回,否则 202 返回任务。

响应参数定义表(200 OK,同步结果)

参数名 类型 描述 示例
request_id string 服务端请求 ID "r_01HF..."
job_id string 任务 ID(可用于查询) "j_01HF..."
status string "succeeded" "succeeded"
created_at string 创建时间 "2025-11-13T08:15:30Z"
completed_at string 完成时间 "2025-11-13T08:15:32Z"
input_meta.source_type string "text" "url"
input_meta.detected_language string 检测到源语言 "zh-CN"
input_meta.char_count integer 源文本字符数 14320
input_meta.sentence_count integer 源句子数 512
input_meta.source_url string 若来自 URL "https://..."
pagination.enabled boolean 是否分页 true
pagination.unit string 分页单位 "sentences"
pagination.size integer 每页大小 12
pagination.overlap integer 页重叠 2
pagination.page_count integer 页数 38
pagination.page_map array 页索引与全局区间映射 [{"page_index":0,"char_start":0,"char_end":1200,"sentence_start":0,"sentence_end":13}]
summary.style string 摘要风格 "news"
summary.target_language string 目标语言 "en"
summary.target_length object 目标长度回显 {"unit":"sentences","value":6}
summary.text string 摘要正文(非列表风格) "..."
summary.items array 列表风格时返回条目 ["Point 1","Point 2"]
summary.sentences_count integer 摘要句子数 6
key_sentences array 关键句列表(见下) [...]
key_sentences[].text string 关键句文本 "..."
key_sentences[].confidence number 0-1 置信度 0.86
key_sentences[].indices object 原文位置索引 {"char_start":532,"char_end":610,"sentence_index":23,"page_index":1}
keywords array 关键词列表 [...]
keywords[].term string 词/短语 "monetary policy"
keywords[].language string 关键词语言 "en"
keywords[].confidence number 0-1 置信度 0.91
keywords[].occurrences integer 在原文出现次数(近似) 7
keywords[].indices array 若采样定位,返回若干出现位置 [{"char_start":120,"char_end":138,"sentence_index":4,"page_index":0}]
citations array 引用映射(如启用) [...]
citations[].summary_sentence_index integer 摘要句索引 1
citations[].sources array 源位置与来源 [{"url":"https://...","title":"...","position":{"sentence_index":45,"char_start":9012,"char_end":9102},"confidence":0.77}]
sensitive_masking.enabled boolean 是否启用屏蔽 true
sensitive_masking.mask_char string 屏蔽符 "*"
sensitive_masking.scope string 屏蔽范围 "all_outputs"
sensitive_masking.masked_spans_count integer 屏蔽片段数 3
sensitive_masking.masked_spans array 被屏蔽片段在输出中的位置(针对 summary/items/keywords 等) [{"output":"summary.text","char_start":120,"char_end":123}]
topic_preferences_applied array 归一化主题权重 [{"topic":"economy","weight":0.8}]
config object 应用的配置画像 {"profile_id":"sum_profile_a","version":"1.4.2","snapshot_hash":"sha256:..."}
model_version string 模型/算法版本 "sum_3.2.0"
metrics.processing_time_ms integer 处理耗时 2100

说明:

  • 当 style="bullet_list" 时 summary.text 为空,改用 summary.items。
  • indices 所有位置对齐至原文全文(非页内相对),并附带 page_index 便于页内定位。

异步响应(202 Accepted)

参数名 类型 描述 示例
request_id string 请求 ID "r_01HF..."
job_id string 任务 ID "j_01HF..."
status string "queued" 或 "processing" "queued"
created_at string 创建时间 "2025-11-13T08:15:30Z"
eta_ms integer 预计剩余毫秒(估算) 8000

2) 查询任务状态与结果(聚合或首/指定页)

基本信息

  • 方法与路径:GET /v1/summaries/{job_id}
  • 说明:查询任务状态;若完成可返回聚合摘要或携带 query 获取指定页内容(便捷模式)

请求参数定义表(Path 与 Query)

参数名 类型 必填 位置 描述 示例
job_id string path 任务 ID "j_01HF..."
page_index integer query 返回指定页的数据(0 基)。省略则返回聚合视图 0
include string query 逗号分隔字段:"summary,keywords,key_sentences,citations,page_map" "summary,keywords"

响应参数定义表

  • 若未指定 page_index:返回与 POST 同步 200 的相同结构(聚合),status 可能为 queued/processing/succeeded/failed/canceled。
  • 若指定 page_index:增加 page 局部结果段: | 参数名 | 类型 | 描述 | 示例 | |---|---|---|---| | page.page_index | integer | 页索引 | 0 | | page.char_range | object | 页全局字符区间 | {"char_start":0,"char_end":1187} | | page.sentence_range | object | 页句子区间 | {"sentence_start":0,"sentence_end":11} | | page.summary | object | 页级摘要(结构同 summary) | {...} | | page.key_sentences | array | 页内关键句(indices 同样为全局坐标,并含 page_index) | [...] | | page.keywords | array | 页内关键词(可能受滑窗重叠影响) | [...] | | page.citations | array | 页内引用映射 | [...] |

    3) 获取指定页结果(推荐的页接口)

    基本信息

    • 方法与路径:GET /v1/summaries/{job_id}/pages/{page_index}
    • 说明:仅返回单页的摘要、关键句、关键词与引用,减少传输体积

    请求参数定义表

    参数名 类型 必填 位置 描述 示例
    job_id string path 任务 ID "j_01HF..."
    page_index integer path 页索引(0 基) 3
    include string query 返回字段控制,同上 "summary,key_sentences"

    响应参数定义表(200 OK)

    参数名 类型 描述 示例
    request_id string 请求 ID "r_01HF..."
    job_id string 任务 ID "j_01HF..."
    status string 任务状态(需为 succeeded) "succeeded"
    pagination.page_count integer 总页数 38
    page object 页数据(同上页内段) {...}
    model_version string 模型版本 "sum_3.2.0"
    config object 配置画像回显 {...}

    4) 取消任务(可选)

    基本信息

    • 方法与路径:DELETE /v1/summaries/{job_id}
    • 说明:取消排队/执行中的任务;已完成任务不受影响

    请求与响应

    • 请求:无 body
    • 响应(200 OK):
      • { "request_id": "...", "job_id": "...", "status": "canceled" }

    错误码对照表

    错误码 HTTP 状态 错误信息 解决方案
    E_AUTH_INVALID 401 无效或缺失鉴权 确认 Authorization 头与令牌有效
    E_FORBIDDEN 403 无权限访问资源 检查账户或资源权限
    E_NOT_FOUND 404 任务不存在 核对 job_id
    E_CONFLICT 409 重复请求/状态冲突 使用不同 Idempotency-Key 或等待当前任务完成
    E_PAYLOAD_TOO_LARGE 413 请求过大 启用 pagination 或精简输入
    E_UNSUPPORTED_MEDIA 415 不支持的内容类型 使用 application/json
    E_VALIDATION 400 参数校验失败 根据错误详情修正参数
    E_UNPROCESSABLE 422 语言或风格不受支持 改用受支持的语言/风格
    E_RATE_LIMIT 429 超出频率限制 退避重试
    E_FETCH_FAILED 424 URL 抓取/正文抽取失败 校验链接、重试或改用 text 输入
    E_TIMEOUT 504 处理超时 改用 async 或分页,稍后重试
    E_SERVER 500 服务器内部错误 重试或联系支持
    E_SERVICE_UNAVAILABLE 503 服务不可用 稍后重试

    错误响应统一格式:

    • HTTP: 对应状态码
    • Body:
      • code: 错误码
      • message: 人类可读信息
      • request_id: 请求 ID
      • details: 可选的细节(字段名、限制、位置等)

    示例: { "code": "E_VALIDATION", "message": "pagination.size must be between 5 and 50 for unit=sentences", "request_id": "r_01HF...", "details": {"field":"pagination.size","min":5,"max":50} }


    接口调用示例

    示例 1:创建任务(URL 输入,自动异步)

    • 请求
      • POST /v1/summaries
      • Headers:
        • Authorization: Bearer sk_live_xxx
        • Content-Type: application/json
        • Idempotency-Key: 3f3b2a1e-5b6e-4f2c-9ef0-2b0fd0d5d311
      • Body: { "input": { "type": "url", "url": "https://example.com/news/123", "source_metadata": { "title": "Global Markets Update", "published_at": "2025-11-12T03:10:00Z", "source_id": "news_123" } }, "style": "news", "target_language": "en", "target_length": {"unit": "sentences", "value": 6}, "keywords_options": {"top_k": 12, "include_phrases": true}, "key_sentence_options": {"count": 5}, "sensitive_masking": {"enable": true, "mode": "exact", "mask_char": "*", "preserve_length": true, "scope": "all_outputs", "dictionary_id": "dict_v3"}, "citation_options": {"enable": true, "format": "inline", "style": "apa", "min_confidence": 0.6}, "topic_preferences": { "taxonomy": "iptc", "items": [{"topic": "economy", "weight": 0.8}, {"topic": "markets", "weight": 0.6}] }, "pagination": {"enable": true, "unit": "sentences", "size": 12, "overlap": 2}, "response_mode": "auto", "config_profile": {"id": "sum_profile_a", "version": "1.4.2"}, "client_request_id": "req-789" }
    • 响应(202 Accepted) { "request_id": "r_01HFQY8Z4W", "job_id": "j_01HFQYB1KT", "status": "queued", "created_at": "2025-11-13T08:15:30Z", "eta_ms": 8000 }

    示例 2:轮询任务状态(聚合视图)

    • 请求
      • GET /v1/summaries/j_01HFQYB1KT?include=summary,keywords,key_sentences,citations,page_map
      • Headers: Authorization: Bearer sk_live_xxx
    • 响应(200 OK) { "request_id": "r_01HFQYCM0V", "job_id": "j_01HFQYB1KT", "status": "succeeded", "created_at": "2025-11-13T08:15:30Z", "completed_at": "2025-11-13T08:15:40Z", "input_meta": { "source_type": "url", "detected_language": "zh-CN", "char_count": 14280, "sentence_count": 508, "source_url": "https://example.com/news/123" }, "pagination": { "enabled": true, "unit": "sentences", "size": 12, "overlap": 2, "page_count": 38, "page_map": [ {"page_index":0,"char_start":0,"char_end":1187,"sentence_start":0,"sentence_end":11} ] }, "summary": { "style": "news", "target_language": "en", "target_length": {"unit":"sentences","value":6}, "text": "Global markets rallied ... [1] ... Central banks signaled ... [2] ...", "sentences_count": 6 }, "key_sentences": [ {"text":"央行维持利率不变以观察通胀趋势。","confidence":0.86,"indices":{"char_start":532,"char_end":610,"sentence_index":23,"page_index":1}} ], "keywords": [ {"term":"monetary policy","language":"en","confidence":0.91,"occurrences":7,"indices":[{"char_start":120,"char_end":138,"sentence_index":4,"page_index":0}]}, {"term":"ma****s","language":"en","confidence":0.74,"occurrences":5,"indices":[{"char_start":890,"char_end":896,"sentence_index":36,"page_index":2}]} ], "citations": [ {"summary_sentence_index":0,"sources":[{"url":"https://example.com/news/123","title":"Global Markets Update","position":{"sentence_index":45,"char_start":9012,"char_end":9102},"confidence":0.77}]} ], "sensitive_masking": { "enabled": true, "mask_char": "*", "scope": "all_outputs", "masked_spans_count": 2, "masked_spans": [{"output":"summary.text","char_start":21,"char_end":25}] }, "topic_preferences_applied":[{"topic":"economy","weight":0.8},{"topic":"markets","weight":0.6}], "config":{"profile_id":"sum_profile_a","version":"1.4.2","snapshot_hash":"sha256:7f..."}, "model_version":"sum_3.2.0", "metrics":{"processing_time_ms":9860} }

    示例 3:获取第 0 页结果(页接口)

    • 请求
      • GET /v1/summaries/j_01HFQYB1KT/pages/0?include=summary,key_sentences,keywords,citations
      • Headers: Authorization: Bearer sk_live_xxx
    • 响应(200 OK) { "request_id": "r_01HFQYDQ8P", "job_id": "j_01HFQYB1KT", "status": "succeeded", "pagination":{"page_count":38}, "page": { "page_index": 0, "char_range": {"char_start":0,"char_end":1187}, "sentence_range": {"sentence_start":0,"sentence_end":11}, "summary": { "style": "news", "target_language": "en", "target_length": {"unit":"sentences","value":6}, "text": "Asian equities advanced ... amid policy optimism.", "sentences_count": 2 }, "key_sentences": [ {"text":"亚洲股市受政策预期提振。","confidence":0.82,"indices":{"char_start":210,"char_end":238,"sentence_index":9,"page_index":0}} ], "keywords": [ {"term":"equities","language":"en","confidence":0.88,"occurrences":3,"indices":[{"char_start":55,"char_end":63,"sentence_index":1,"page_index":0}]} ], "citations":[ {"summary_sentence_index":0,"sources":[{"url":"https://example.com/news/123","title":"Global Markets Update","position":{"sentence_index":10,"char_start":220,"char_end":238},"confidence":0.81}]} ] }, "model_version":"sum_3.2.0", "config":{"profile_id":"sum_profile_a","version":"1.4.2","snapshot_hash":"sha256:7f..."} }

    示例 4:取消任务

    • 请求:DELETE /v1/summaries/j_01HFQYB1KT
    • 响应: {"request_id":"r_01HFQYF0XZ","job_id":"j_01HFQYB1KT","status":"canceled"}

    注意事项

    • 输入约束
      • text/html 最大建议字符数:2,000,000;超过阈值需启用 pagination
      • pagination.size:unit=sentences 时范围 [5,50];unit=chars 时范围 [2000,20000];overlap 不得超过 size 的 50%
    • 语言与风格
      • 支持多语言摘要;若 target_language 与源语言不同为跨语种摘要
      • style=bullet_list 时返回 summary.items;其他风格返回 summary.text
    • 位置索引
      • 所有 indices 对齐至抽取后的“规范化正文”(服务内部清洗后的文本)
      • page_map 提供页到全局区间的可逆映射,便于知识库入库建立切片
    • 敏感词屏蔽
      • scope=summary_only 仅处理摘要;all_outputs 同时作用于 key_sentences 与 keywords.term
      • masked_spans 定位的是输出内的位置,而非原文位置
    • 引用来源
      • URL/HTML 输入默认启用引用回填;纯文本输入仅在提供 source_metadata 时尝试内部引用回链
      • format=inline 会在 summary 中使用 [n] 标注;footnote 返回尾注数组(可在客户端渲染)
    • 主题偏好
      • 权重范围 (0,1];系统按归一化后应用,未指定主题默认权重 0
    • 异步与超时
      • 同步请求默认超时 30s;超过自动转 async
      • 轮询频率建议指数退避(初始 1s,最大 5s)
    • 幂等与可追踪
      • 强烈建议提供 Idempotency-Key 与 client_request_id,便于去重与审计
      • config.snapshot_hash 便于变更追踪与合规审计
    • 安全
      • 不回传原文全文;仅返回必要片段与索引
      • 对外部 URL 抓取遵循 robots 与站点速率限制

    版本变更记录

    • v1.0.0
      • 初始发布:支持 text/url/html 输入;多语言摘要(news/academic/bullet_list);关键词与关键句提取;分页处理;敏感词屏蔽;引用回填;主题偏好;配置画像版本追踪;同步/异步模式与页级查询
    • v1.1.0(预告,保持向后兼容)
      • 计划新增:流式响应(Server-Sent Events)可选通道;术语库增强;自定义关键词黑白名单
    • 兼容性说明
      • 将通过仅“追加字段”的方式演进响应结构;现有字段不会重命名或改变语义
      • 新增可选查询参数均提供默认值,保证旧客户端可用

    接口基本信息

    • 名称:长文生成流水线 RPC 服务(LongFormGenRPC)
    • 版本:v1.0.0
    • 协议类型:JSON-RPC 2.0 over HTTPS(Content-Type: application/json)
    • 统一端点:POST https://api.example.com/rpc
    • 鉴权:HTTP Header Authorization: Bearer (OAuth2 或等效机制)
    • 幂等策略:所有写操作支持 idempotency_key(字符串,最长 128 字符),服务在相同 key 与等价参数下返回同一结果;默认保留窗口 24 小时
    • 时区与时间格式:ISO 8601(UTC),示例:2025-11-13T06:20:30Z
    • 资源标识符:使用 UUIDv4(draft_id、version_id、job_id、segment_id、node_id 等)

    通用数据结构(供各方法引用)

    • instruction_set(对象)
      • outline(数组[OutlineNode]):文档结构树
        • OutlineNode(对象)
          • node_id(字符串,必填):结构节点稳定 ID(UUID 或业务唯一)
          • type(枚举,必填):section|subsection|chapter|appendix|figure|table
          • title(字符串,必填,1-200)
          • children(数组[OutlineNode],可选)
          • requirements(对象,可选):min_words(整数)、max_words(整数)、must_include_terms(数组[字符串])
      • tone(字符串,必填,1-100):语气基调(示例:专业且清晰)
      • persona(对象,必填):role(字符串)、experience(字符串)、industry(字符串,可选)
      • glossary(数组[对象],可选):term(字符串,必填)、definition(字符串,必填)
      • banned_terms(数组[字符串],可选)
      • references(数组[对象],可选):label(字符串)、url(字符串,必须为 https://)、accessed_at(时间,可选)
      • compliance_points(数组[对象],可选):code(字符串)、description(字符串)、severity(枚举:low|medium|high)
    • generation_options(对象)
      • language(枚举,必填):zh-CN|en-US 等
      • output_format(枚举,必填):markdown|html|json-structure
      • citation_style(枚举,必填):numeric|author-year|footnote
      • chart_placeholder_style(枚举,必填):mermaid|alt-text|table-schema
      • segment_strategy(对象,必填)
        • type(枚举,必填):by_outline_node|fixed_length
        • max_tokens_per_segment(整数,必填,100-4000)
        • fixed_length_chars(整数,可选,当 type=fixed_length)
      • compliance_mode(枚举,必填):strict|lenient
      • on_violation(枚举,必填):block|warn|auto_replace
    • locator(对象):内容片段定位器
      • one_of:node_id(字符串)|path(字符串,JSONPath 风格,如 $.chapters[2].sections[0])|anchor_label(字符串)
      • selection(枚举,必填):title|content|all
      • range_end(对象,可选):用于范围选取,结构同 locator
    • citation(对象):marker(字符串)、reference_label(字符串)、url(字符串)
    • chart_placeholder(对象):placeholder_id(字符串)、type(枚举:diagram|table|figure)、style(枚举同 chart_placeholder_style)、spec(字符串)
    • compliance_violation(对象):term(字符串)、location(locator)、severity(枚举)、suggestion(字符串)
    • audit_entry(对象):audit_id(字符串)、timestamp(时间)、actor(字符串)、operation(字符串)、status(枚举:success|failed)、request_id(字符串)、notes(字符串)、inputs_hash(字符串,SHA256)

    方法一:draft.create(创建草稿) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | 固定值 "2.0" | "2.0"
    • method | 字符串 | 必填 | 固定值 "draft.create" | "draft.create"
    • id | 字符串 | 必填 | 请求唯一 ID | "req-20251113-001"
    • params.idempotency_key | 字符串 | 必填 | 幂等键,最长 128 字符 | "idem-6f1e..."
    • params.external_correlation_id | 字符串 | 可选 | 外部关联 ID(追踪用) | "release-2.4"
    • params.instruction_set | 对象 | 必填 | 指令集(见通用结构) | 见示例
    • params.generation_options | 对象 | 必填 | 生成选项 | 见示例
    • params.segmentation_plan | 数组[对象] | 可选 | 自定义分段计划:{segment_id,node_id,order} | 省略表示由服务根据策略自动规划

    响应参数定义表

    • jsonrpc | 字符串 | 描述 | 固定值 "2.0" | "2.0"
    • id | 字符串 | 描述 | 与请求 id 对应 | "req-20251113-001"
    • result.draft_id | 字符串 | 草稿 ID(UUID) | "dr-b7a0..."
    • result.version_id | 字符串 | 初始版本 ID | "v-0001"
    • result.state | 枚举 | 草稿状态:initialized | "initialized"
    • result.created_at | 时间 | 创建时间 | "2025-11-13T06:20:30Z"
    • result.audit_id | 字符串 | 审计事件 ID | "au-9c3d..."

    方法二:draft.validate(指令集预检) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.validate" | "draft.validate"
    • id | 字符串 | 必填 | 请求 ID | "req-002"
    • params.instruction_set | 对象 | 必填 | 指令集 | 见示例

    响应参数定义表

    • result.valid | 布尔 | 是否通过校验 | true
    • result.issues | 数组[对象] | 校验问题列表 | [{"code":"BANNED_TERM","severity":"high","message":"含禁用词","path":"$.outline[0]","suggestion":"替换"}]

    方法三:draft.generate_segments(增量生成/断点续写) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.generate_segments" | "draft.generate_segments"
    • id | 字符串 | 必填 | 请求 ID | "req-003"
    • params.idempotency_key | 字符串 | 必填 | 幂等键 | "idem-7e2a..."
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.version_id | 字符串 | 可选 | 指定版本(缺省为当前编辑版本) | "v-0001"
    • params.job_id | 字符串 | 可选 | 现有生成作业 ID(用于续写) | "job-91f3..."
    • params.locators | 数组[locator] | 可选 | 指定节点/范围;为空时按 cursor 继续 | 见示例
    • params.cursor | 对象 | 可选 | 断点游标:{checkpoint_id, next_node_id, offset} | {"checkpoint_id":"cp-..."}
    • params.max_segments | 整数 | 可选 | 本次最多生成段数(1-50) | 10
    • params.overwrite_strategy | 枚举 | 可选 | skip_existing|overwrite|merge | "skip_existing"
    • params.audit_note | 字符串 | 可选 | 审计备注 | "生成第2章"

    响应参数定义表

    • result.job_id | 字符串 | 生成作业 ID | "job-91f3..."
    • result.status | 枚举 | running|completed|partial|blocked | "partial"
    • result.generated_segments | 数组[对象] | 已生成片段 | [{"segment_id":"seg-001","node_id":"n-2-1","version_id":"v-0001","content":"...","citations":[...],"chart_placeholders":[...],"compliance_violations":[...],"checksum":"sha256:...","created_at":"..."}]
    • result.next_cursor | 对象 | 下一断点游标 | {"checkpoint_id":"cp-...","next_node_id":"n-2-2"}
    • result.metrics | 对象 | 统计 | {"segments_generated":3,"tokens_used":5200}
    • result.warnings | 数组[字符串] | 警告信息 | ["第3章存在禁用词候选"]

    方法四:draft.get_content(获取内容/片段) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.get_content" | "draft.get_content"
    • id | 字符串 | 必填 | 请求 ID | "req-004"
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.version_id | 字符串 | 可选 | 指定版本;缺省最新 | "v-0002"
    • params.format | 枚举 | 必填 | markdown|html|json-structure | "markdown"
    • params.include_toc | 布尔 | 可选 | 是否包含目录 | true
    • params.locator | 对象 | 可选 | 若提供则仅返回片段 | {"node_id":"n-2-1","selection":"content"}

    响应参数定义表

    • result.content | 字符串/对象 | 完整内容或片段内容 | "# 目录...\n## 第2章..."
    • result.toc | 数组[对象] | 目录结构(title,node_id,level,page_estimate) | [{"title":"概述","node_id":"n-1","level":1}]
    • result.structure_nodes | 数组[对象] | 结构节点摘要 | [{"node_id":"n-2-1","type":"section","title":"安装指南"}]
    • result.fragment_info | 对象 | 当 locator 提供时返回片段元数据 | {"node_id":"n-2-1","segment_ids":["seg-001","seg-002"]}
    • result.etag | 字符串 | 内容 ETag(用于并发控制) | "W/"v-0002:sha256-...""

    方法五:draft.commit(提交版本) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.commit" | "draft.commit"
    • id | 字符串 | 必填 | 请求 ID | "req-005"
    • params.idempotency_key | 字符串 | 必填 | 幂等键 | "idem-3df0..."
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.version_label | 字符串 | 可选 | 版本标签(例如 "release-2.4") | "release-2.4"
    • params.release_notes_summary | 字符串 | 可选 | 简要说明 | "新增第3章,修复术语"

    响应参数定义表

    • result.version_id | 字符串 | 提交后新版本 ID | "v-0003"
    • result.status | 枚举 | committed | "committed"
    • result.changelog | 数组[对象] | 变更摘要 | [{"node_id":"n-3","change":"added","segments":5}]

    方法六:draft.rollback_version(版本回滚) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.rollback_version" | "draft.rollback_version"
    • id | 字符串 | 必填 | 请求 ID | "req-006"
    • params.idempotency_key | 字符串 | 必填 | 幂等键 | "idem-0a1b..."
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.to_version_id | 字符串 | 必填 | 回滚目标版本 | "v-0002"
    • params.reason | 字符串 | 必填 | 回滚原因 | "合规违规"

    响应参数定义表

    • result.version_id | 字符串 | 当前有效版本 ID(回滚后) | "v-0002"
    • result.status | 枚举 | rolled_back | "rolled_back"
    • result.diff_summary | 数组[对象] | 回滚差异摘要 | [{"node_id":"n-3","change":"removed","segments":5}]
    • result.audit_id | 字符串 | 审计事件 ID | "au-1f2e..."

    方法七:draft.list_versions(版本列表) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.list_versions" | "draft.list_versions"
    • id | 字符串 | 必填 | 请求 ID | "req-007"
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.page | 整数 | 可选 | 页码,从 1 开始 | 1
    • params.size | 整数 | 可选 | 每页数量(1-100) | 20

    响应参数定义表

    • result.versions | 数组[对象] | 版本列表 | [{"version_id":"v-0001","label":"init","created_at":"...","state":"committed"}]
    • result.page | 整数 | 页码 | 1
    • result.size | 整数 | 每页数量 | 20
    • result.total | 整数 | 总数 | 3

    方法八:draft.get_audit_log(审计日志) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "draft.get_audit_log" | "draft.get_audit_log"
    • id | 字符串 | 必填 | 请求 ID | "req-008"
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.filter | 对象 | 可选 | {operation,since,until,actor} | {"operation":"draft.generate_segments"}

    响应参数定义表

    • result.entries | 数组[audit_entry] | 审计条目列表 | 见示例
    • result.count | 整数 | 返回条目数量 | 12

    方法九:job.get_status(作业状态) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "job.get_status" | "job.get_status"
    • id | 字符串 | 必填 | 请求 ID | "req-009"
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.job_id | 字符串 | 必填 | 作业 ID | "job-91f3..."

    响应参数定义表

    • result.job_id | 字符串 | 作业 ID | "job-91f3..."
    • result.status | 枚举 | queued|running|completed|failed|canceled|blocked | "running"
    • result.next_cursor | 对象 | 下一断点 | {"checkpoint_id":"cp-..."}
    • result.metrics | 对象 | 统计 | {"segments_generated":7,"tokens_used":10400}
    • result.last_error | 对象 | 最近错误(如有) | {"code":2001,"message":"模型限流","retriable":true,"retry_after":3}

    方法十:job.resume(续写) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "job.resume" | "job.resume"
    • id | 字符串 | 必填 | 请求 ID | "req-010"
    • params.idempotency_key | 字符串 | 必填 | 幂等键 | "idem-22ab..."
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.job_id | 字符串 | 必填 | 作业 ID | "job-91f3..."
    • params.max_segments | 整数 | 可选 | 本次续写最大段数 | 5

    响应参数定义表

    • result.job_id | 字符串 | 作业 ID | "job-91f3..."
    • result.status | 枚举 | running|completed|blocked | "running"
    • result.generated_segments | 数组[对象] | 新生成片段 | 见上方结构
    • result.next_cursor | 对象 | 下一断点 | {"checkpoint_id":"cp-..."}

    方法十一:job.cancel(取消作业) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "job.cancel" | "job.cancel"
    • id | 字符串 | 必填 | 请求 ID | "req-011"
    • params.idempotency_key | 字符串 | 必填 | 幂等键 | "idem-0c9f..."
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.job_id | 字符串 | 必填 | 作业 ID | "job-91f3..."
    • params.reason | 字符串 | 必填 | 取消原因 | "用户中止"

    响应参数定义表

    • result.job_id | 字符串 | 作业 ID | "job-91f3..."
    • result.status | 枚举 | canceled | "canceled"
    • result.canceled_at | 时间 | 取消时间 | "2025-11-13T06:40:00Z"

    方法十二:content.locate_fragment(片段定位) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "content.locate_fragment" | "content.locate_fragment"
    • id | 字符串 | 必填 | 请求 ID | "req-012"
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.version_id | 字符串 | 可选 | 版本 ID | "v-0002"
    • params.locator_query | 对象 | 必填 | {path|anchor_label|search_text, selection} | {"search_text":"安装要求","selection":"content"}

    响应参数定义表

    • result.locators | 数组[locator] | 命中的定位器 | [{"node_id":"n-2-1","selection":"content"}]
    • result.count | 整数 | 命中数量 | 1

    方法十三:content.replace_fragment(片段替换) 请求参数定义表

    • jsonrpc | 字符串 | 必填 | "2.0" | "2.0"
    • method | 字符串 | 必填 | "content.replace_fragment" | "content.replace_fragment"
    • id | 字符串 | 必填 | 请求 ID | "req-013"
    • params.idempotency_key | 字符串 | 必填 | 幂等键 | "idem-55df..."
    • params.draft_id | 字符串 | 必填 | 草稿 ID | "dr-b7a0..."
    • params.locator | 对象 | 必填 | 片段定位器 | {"node_id":"n-2-1","selection":"content"}
    • params.replacement_content | 字符串 | 必填 | 替换后的内容 | "更新后的章节内容..."
    • params.policy.fail_on_violation | 布尔 | 可选 | 含禁用词时是否失败 | true

    响应参数定义表

    • result.updated_segment_id | 字符串 | 更新的片段 ID | "seg-001"
    • result.version_id | 字符串 | 新版本 ID(若产生新版本) | "v-0004"
    • result.compliance_violations | 数组[对象] | 合规问题(如有) | [{"term":"免费","location":{...},"severity":"high"}]

    错误码对照表

    • -32700 | 解析错误(JSON-RPC 标准) | 修复请求 JSON 语法
    • -32600 | 非法请求(JSON-RPC 标准) | 检查 jsonrpc、method、id 字段
    • -32601 | 方法不存在(JSON-RPC 标准) | 校验 method 名称
    • -32602 | 参数错误(JSON-RPC 标准) | 校验参数类型/必填项
    • -32603 | 内部错误(JSON-RPC 标准) | 重试或联系支持
    • 1000 | INVALID_PARAMS | 参数不符合规范 | 按校验提示修正
    • 1001 | MISSING_REQUIRED_FIELD | 缺少必填字段 | 补齐必填项
    • 1002 | UNSUPPORTED_FORMAT | 不支持的输出/引用格式 | 更换为支持的枚举
    • 1003 | INVALID_LOCATOR | 定位器无效 | 修正 node_id/path/anchor
    • 1004 | CONFLICT_ETAG_MISMATCH | ETag 不匹配(并发冲突) | 重新获取内容后再提交
    • 1005 | DUPLICATE_IDEMPOTENCY_KEY | 幂等键重复但参数不一致 | 复用完全一致参数或更换键
    • 1006 | VERSION_NOT_FOUND | 版本不存在 | 校验 version_id
    • 1007 | DRAFT_NOT_FOUND | 草稿不存在 | 校验 draft_id
    • 1008 | JOB_NOT_FOUND | 作业不存在 | 校验 job_id
    • 1009 | OVERWRITE_POLICY_VIOLATION | 覆盖策略不允许 | 调整 overwrite_strategy
    • 1010 | COMPLIANCE_BLOCKED | 合规策略阻断 | 修改内容或调整 on_violation
    • 2000 | GENERATION_FAILED | 内容生成失败 | 查看 last_error,必要时重试
    • 2001 | MODEL_RATE_LIMIT | 模型限流 | 间隔 retry_after 秒重试
    • 2002 | CONTENT_TOO_LARGE | 内容过大 | 减少段数或优化结构
    • 2003 | TOKEN_LIMIT_EXCEEDED | 超出令牌限制 | 调整 max_tokens_per_segment
    • 2004 | SEGMENT_PLAN_INVALID | 分段计划非法 | 修正 segmentation_plan
    • 2005 | CHECKPOINT_EXPIRED | 断点过期 | 重新开始生成或刷新 cursor
    • 3000 | STATE_NOT_ALLOWED | 当前状态不允许操作 | 确认草稿/作业状态
    • 3001 | LOCK_ACQUIRED_BY_ANOTHER | 资源被他人锁定 | 等待或释放锁
    • 3002 | JOB_ALREADY_RUNNING | 作业已在运行 | 查询状态或取消后再发起
    • 4000 | BANNED_TERM_DETECTED | 检测到禁用词 | 替换术语或开启 auto_replace
    • 4001 | REFERENCE_UNREACHABLE | 参考链接不可达 | 更新为有效 https 链接
    • 4002 | CITATION_FORMAT_ERROR | 引用格式错误 | 统一为指定 citation_style
    • 5000 | INTERNAL_ERROR | 服务内部错误 | 重试或联系支持
    • 5001 | SERVICE_UNAVAILABLE | 服务不可用 | 退避重试

    接口调用示例

    示例 1:创建草稿(draft.create) 请求示例 { "jsonrpc": "2.0", "method": "draft.create", "id": "req-20251113-001", "params": { "idempotency_key": "idem-6f1e2c9a-01", "external_correlation_id": "release-2.4", "instruction_set": { "outline": [ {"node_id": "n-1", "type": "chapter", "title": "概述", "children": [ {"node_id": "n-1-1", "type": "section", "title": "背景"} ]}, {"node_id": "n-2", "type": "chapter", "title": "安装与升级", "children": [ {"node_id": "n-2-1", "type": "section", "title": "系统要求", "requirements": {"min_words": 200}} ]} ], "tone": "专业且清晰", "persona": {"role": "运维工程师", "experience": "中级", "industry": "软件"}, "glossary": [{"term": "容器镜像", "definition": "可部署的软件包镜像"}], "banned_terms": ["绝对保证", "免费"], "references": [{"label": "发布票据", "url": "https://example.com/release/2.4"}], "compliance_points": [{"code": "CN-ADS-01", "description": "禁止夸大承诺", "severity": "high"}] }, "generation_options": { "language": "zh-CN", "output_format": "markdown", "citation_style": "numeric", "chart_placeholder_style": "mermaid", "segment_strategy": {"type": "by_outline_node", "max_tokens_per_segment": 1200}, "compliance_mode": "strict", "on_violation": "block" } } } 响应示例 { "jsonrpc": "2.0", "id": "req-20251113-001", "result": { "draft_id": "dr-b7a0f3e4-9d1b-4c2c-8120-99c6f9d1f0a1", "version_id": "v-0001", "state": "initialized", "created_at": "2025-11-13T06:20:30Z", "audit_id": "au-9c3d5ea2" } }

    示例 2:增量生成(draft.generate_segments) 请求示例 { "jsonrpc": "2.0", "method": "draft.generate_segments", "id": "req-003", "params": { "idempotency_key": "idem-7e2a-02", "draft_id": "dr-b7a0f3e4-9d1b-4c2c-8120-99c6f9d1f0a1", "version_id": "v-0001", "locators": [ {"node_id": "n-2-1", "selection": "content"} ], "max_segments": 3, "overwrite_strategy": "skip_existing", "audit_note": "生成第2章系统要求" } } 响应示例 { "jsonrpc": "2.0", "id": "req-003", "result": { "job_id": "job-91f334d2", "status": "partial", "generated_segments": [ { "segment_id": "seg-001", "node_id": "n-2-1", "version_id": "v-0001", "content": "本章涵盖安装前的硬件与软件要求……", "citations": [{"marker":"[1]","reference_label":"发布票据","url":"https://example.com/release/2.4"}], "chart_placeholders": [{"placeholder_id":"cp-1","type":"diagram","style":"mermaid","spec":"flowchart TD; A-->B"}], "compliance_violations": [], "checksum": "sha256:ba1f...", "created_at": "2025-11-13T06:25:00Z" } ], "next_cursor": {"checkpoint_id": "cp-7da2", "next_node_id": "n-2-1", "offset": 1}, "metrics": {"segments_generated": 1, "tokens_used": 1800}, "warnings": [] } }

    示例 3:获取片段(draft.get_content) 请求示例 { "jsonrpc": "2.0", "method": "draft.get_content", "id": "req-004", "params": { "draft_id": "dr-b7a0f3e4-9d1b-4c2c-8120-99c6f9d1f0a1", "version_id": "v-0001", "format": "markdown", "include_toc": true, "locator": {"node_id": "n-2-1", "selection": "content"} } } 响应示例 { "jsonrpc": "2.0", "id": "req-004", "result": { "content": "## 系统要求\n- CPU:4核及以上…", "toc": [{"title":"概述","node_id":"n-1","level":1}, {"title":"安装与升级","node_id":"n-2","level":1}], "structure_nodes": [{"node_id":"n-2-1","type":"section","title":"系统要求"}], "fragment_info": {"node_id":"n-2-1","segment_ids":["seg-001"]}, "etag": "W/"v-0001:sha256-2da3..."" } }

    示例 4:提交版本(draft.commit) 请求示例 { "jsonrpc": "2.0", "method": "draft.commit", "id": "req-005", "params": { "idempotency_key": "idem-3df0-03", "draft_id": "dr-b7a0f3e4-9d1b-4c2c-8120-99c6f9d1f0a1", "version_label": "release-2.4", "release_notes_summary": "新增系统要求章节,完善引用" } } 响应示例 { "jsonrpc": "2.0", "id": "req-005", "result": { "version_id": "v-0002", "status": "committed", "changelog": [{"node_id":"n-2-1","change":"added","segments":1}] } }

    示例 5:版本回滚(draft.rollback_version) 请求示例 { "jsonrpc": "2.0", "method": "draft.rollback_version", "id": "req-006", "params": { "idempotency_key": "idem-0a1b-04", "draft_id": "dr-b7a0f3e4-9d1b-4c2c-8120-99c6f9d1f0a1", "to_version_id": "v-0001", "reason": "检测到禁用词" } } 响应示例 { "jsonrpc": "2.0", "id": "req-006", "result": { "version_id": "v-0001", "status": "rolled_back", "diff_summary": [{"node_id":"n-2-1","change":"removed","segments":1}], "audit_id": "au-1f2e77a9" } }

    注意事项

    • 幂等重试:在网络重试或客户端重发时务必复用相同 idempotency_key 与完全一致参数;服务将返回同一结果或错误 1005(参数不一致)。
    • 片段可定位:建议为每个 OutlineNode 分配稳定 node_id(不随标题变动而变化);path 仅作为辅助。范围选取使用 locator.range_end。
    • 合规策略:compliance_mode=strict 且 on_violation=block 时,检测到 banned_terms 或引用不可达将返回 1010/4000/4001,生成被阻断。
    • 引文与图表:citation_style 与 chart_placeholder_style 应与输出格式兼容;例如 markdown 中图表占位以 mermaid 代码块或替代文字呈现。
    • 断点续写:cursor.checkpoint_id 最大有效期 24 小时(过期返回 2005);建议在长作业中周期性调用 job.get_status 获取最新游标。
    • 并发控制:更新或替换片段前建议先 draft.get_content 获取最新 etag;若发生 1004,应重新拉取并重试。
    • 版本管理:draft.commit 会创建不可变版本;content.replace_fragment 在 strict 模式下可能触发新版本(根据实现策略),请关注响应中的 version_id。
    • 安全:references.url 必须为 https;服务会拒绝非安全链接(4001)。
    • 大小限制:单片段内容建议不超过 10,000 字符;超过可能触发 2002。

    版本变更记录

    • v1.0.0(当前)
      • 引入 JSON-RPC 2.0 接口
      • 支持草稿创建、指令预检、增量生成与断点续写
      • 提交、回滚、版本列表与审计日志
      • 片段定位与替换
      • 幂等与严格错误码体系

    本规范旨在确保在操作手册与发布说明自动撰写场景下,实现可控、可审计、可恢复的长文生成流水线。

    接口基本信息

    • 接口名称:段落改写与风格转换(Paragraph Rewrite & Style Transform)
    • 版本:v1.0.0
    • 协议类型:GraphQL over HTTPS(HTTP POST,Content-Type: application/json)
    • 端点:/graphql
    • 鉴权:建议使用Bearer Token(Authorization: Bearer
    • 设计目标:
      • 根据输入原文与目标风格,返回3个差异化改写候选
      • 每个候选附带原文相似度(0.0~1.0)与变更要点
      • 支持批量任务队列(异步),并对结果进行去重
      • 支持同步(低延迟)与异步两种模式
      • 入参简单,错误处理宽松,尽量返回部分可用结果

    请求参数定义表

    1. Mutation:rewrite(同步单任务)
    • 描述:快速同步改写单段落,适合低延迟场景
    • GraphQL 操作名:rewrite
    • 变量:task(RewriteTaskInput)
    参数名 类型 必填 描述 示例
    content String 原始段落文本(建议≤2000字符) "我们提供高性能API服务..."
    style Style! 目标风格(FORMAL/CASUAL/ACADEMIC/MARKETING) FORMAL
    preserveTerms [String!] 需原样保留的术语清单(大小写敏感) ["GraphQL","API"]
    maxLength Int 输出长度上限(字符数,≥50;若不足以生成候选将返回警告并尽量生成) 200
    candidateCount Int 候选数量(1~5,默认3;实际返回可能因去重而减少) 3
    externalId String 由调用方提供的外部任务ID,便于幂等追踪 "doc-123#p1"
    1. Mutation:submit(批量队列)
    • 描述:提交多个改写任务进行异步处理或小批量同步
    • GraphQL 操作名:submit
    • 变量:tasks([RewriteTaskInput!]!),mode(ProcessingMode = QUEUED)
    参数名 类型 必填 描述 示例
    tasks [RewriteTaskInput!]! 任务数组(建议≤100条/请求) [{...},{...}]
    mode ProcessingMode 处理模式:SYNC(小批量同步)或 QUEUED(异步队列,默认) QUEUED

    类型枚举 | 枚举名 | 可选值 | 描述 | | --- | --- | --- | | Style | FORMAL, CASUAL, ACADEMIC, MARKETING | 正式、口语、学术、营销 | | ProcessingMode | SYNC, QUEUED | 同步或异步队列处理 |

    响应参数定义表

    1. 类型:RewriteCandidate | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | id | ID! | 候选ID | "cand_01" | | text | String! | 改写后的文本 | "本服务提供高性能的API能力..." | | similarity | Float! | 与原文相似度(0.0~1.0,越高越接近原文语义) | 0.82 | | changes | [String!]! | 变更要点(简要列点,≤5项) | ["风格转为正式","保留术语:GraphQL, API","句式更简洁"] |

    2. 类型:RewriteResult | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | taskId | ID! | 系统生成的任务ID | "task_20231101120001_001" | | externalId | String | 请求中传入的外部ID | "doc-123#p1" | | original | String! | 原始文本 | "我们提供高性能API服务..." | | style | Style! | 目标风格 | FORMAL | | preserveTerms | [String!] | 保留的术语 | ["GraphQL","API"] | | maxLength | Int | 输出长度上限 | 200 | | candidateCount | Int | 期望候选数量 | 3 | | candidates | [RewriteCandidate!]! | 改写候选列表(已去重) | [RewriteCandidate,...] | | dedupeInfo | DedupeInfo! | 去重信息 | {applied:true,strategy:"SEMANTIC",removedDuplicates:1} | | warnings | [Warning!] | 非致命警告 | [{"code":"DEDUPE_REDUCED_CANDIDATES","message":"去重后返回2条"}] |

    3. 类型:DedupeInfo | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | applied | Boolean! | 是否应用去重 | true | | strategy | String! | 去重策略(固定为"SEMANTIC") | "SEMANTIC" | | removedDuplicates | Int! | 去重移除的候选数量 | 1 |

    4. 类型:Warning | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | code | String! | 警告编码 | "MAX_LENGTH_BINDING" | | message | String! | 警告信息 | "maxLength限制导致候选被截断" |

    5. 类型:SubmitPayload(submit返回) | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | jobId | ID! | 队列任务ID | "job_20231101120001" | | status | JobStatus! | 当前状态 | PENDING | | results | [RewriteResult!] | 若mode=SYNC且任务较少,可能直接返回结果 | null |

    6. 类型:RewriteJob(异步查询) | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | jobId | ID! | 队列任务ID | "job_20231101120001" | | status | JobStatus! | 队列状态(PENDING/RUNNING/COMPLETED/FAILED) | RUNNING | | createdAt | String! | 创建时间(ISO 8601) | "2023-11-01T12:00:01Z" | | totalTasks | Int! | 任务总数 | 2 | | completedTasks | Int! | 已完成任务数 | 1 | | results | [RewriteResult!] | 已完成任务的结果 | [RewriteResult] | | errors | [TaskError!] | 失败任务的错误信息 | [{"taskId":"...","code":"CONTENT_EMPTY","message":"..."}] |

    7. 类型:TaskError | 参数名 | 类型 | 描述 | 示例 | | --- | --- | --- | --- | | taskId | ID! | 失败任务ID | "task_..." | | externalId | String | 对应外部ID | "doc-123#p2" | | code | String! | 错误码 | "CONTENT_EMPTY" | | message | String! | 错误信息 | "content为空" | | details | String | 详细描述 | "去除空白后长度为0" |

    错误码对照表 | 错误码 | 错误信息 | 解决方案 | | --- | --- | --- | | INVALID_STYLE | style不在允许值内 | 使用FORMAL/CASUAL/ACADEMIC/MARKETING | | CONTENT_EMPTY | content为空或仅空白 | 提供非空文本 | | CONTENT_TOO_LONG | content超过最大允许值 | 缩短文本或分批提交 | | MAX_LENGTH_TOO_SMALL | maxLength过小不足以生成候选 | 将maxLength设为≥50或留空 | | PRESERVE_TERMS_CONFLICT | 保留术语约束过强导致改写受限 | 减少或放宽术语清单 | | TASK_ID_DUPLICATE | externalId重复导致幂等冲突 | 更换externalId或不填 | | JOB_NOT_FOUND | 未找到队列任务 | 检查jobId或稍后重试 | | RATE_LIMITED | 触发限流 | 降低请求速率或使用队列模式 | | INTERNAL_ERROR | 服务内部错误 | 重试;持续失败请联系支持 | | DEDUPE_REDUCED_CANDIDATES(警告) | 去重后候选少于请求数量 | 调整candidateCount或内容差异性 |

    接口调用示例

    1. 同步单任务(rewrite)
    • 请求示例(GraphQL) operation: mutation Rewrite($task: RewriteTaskInput!) { rewrite(task: $task) { taskId original style candidates { id text similarity changes } dedupeInfo { applied strategy removedDuplicates } warnings { code message } } } variables: { "task": { "content": "我们提供高性能API服务,助力企业快速集成与扩展。", "style": "FORMAL", "preserveTerms": ["GraphQL","API"], "maxLength": 120, "candidateCount": 3, "externalId": "doc-123#p1" } }

    • 响应示例(部分) { "data": { "rewrite": { "taskId": "task_20231101120001_001", "original": "我们提供高性能API服务,助力企业快速集成与扩展。", "style": "FORMAL", "candidates": [ { "id": "cand_01", "text": "本服务提供高性能的API能力,支持企业高效集成与持续扩展。", "similarity": 0.83, "changes": ["风格转为正式","保留术语:GraphQL, API","语序调整以提升简洁"] }, { "id": "cand_02", "text": "我们以高性能API为核心,保障企业快速集成并稳健扩展。", "similarity": 0.78, "changes": ["表达更规范","术语保留:API","结构更凝练"] }, { "id": "cand_03", "text": "凭借高性能API,我们助力企业实现高效集成与长效扩展。", "similarity": 0.81, "changes": ["用词更正式","保持关键信息不变","适度重写句式"] } ], "dedupeInfo": { "applied": true, "strategy": "SEMANTIC", "removedDuplicates": 1 }, "warnings": [] } } }

    1. 批量队列(submit + job查询)
    • 提交示例(GraphQL) operation: mutation Submit($tasks: [RewriteTaskInput!]!, $mode: ProcessingMode) { submit(tasks: $tasks, mode: $mode) { jobId status results { taskId candidates { id text similarity changes } } } } variables: { "tasks": [ { "content": "欢迎订阅我们的技术简报。", "style": "MARKETING", "candidateCount": 3 }, { "content": "该算法在稳定性测试中表现优异。", "style": "ACADEMIC", "preserveTerms": ["算法","稳定性"], "candidateCount": 3 } ], "mode": "QUEUED" }

    • 提交响应示例 { "data": { "submit": { "jobId": "job_20231101120500", "status": "PENDING", "results": null } } }

    • 结果查询示例(GraphQL) operation: query Job($jobId: ID!) { job(jobId: $jobId) { jobId status totalTasks completedTasks results { taskId original style candidates { id text similarity changes } dedupeInfo { applied strategy removedDuplicates } warnings { code message } } errors { taskId code message details } } } variables: { "jobId": "job_20231101120500" }

    • 完成响应示例(部分) { "data": { "job": { "jobId": "job_20231101120500", "status": "COMPLETED", "totalTasks": 2, "completedTasks": 2, "results": [ { "taskId": "task_..._001", "original": "欢迎订阅我们的技术简报。", "style": "MARKETING", "candidates": [ { "id": "cand_01", "text": "立即订阅我们的技术简报,获取最新洞察。", "similarity": 0.72, "changes": ["转换为营销语气","动词更具号召力"] }, { "id": "cand_02", "text": "订阅技术简报,第一时间掌握行业趋势。", "similarity": 0.69, "changes": ["强化行动导向","结构更简洁"] }, { "id": "cand_03", "text": "现在订阅,即享权威技术内容与实战案例。", "similarity": 0.67, "changes": ["突出利益点","语气更积极"] } ], "dedupeInfo": { "applied": true, "strategy": "SEMANTIC", "removedDuplicates": 0 }, "warnings": [] } ], "errors": [] } } }

    注意事项和版本变更记录

    • 注意事项

      • 风格枚举:FORMAL(正式)、CASUAL(口语)、ACADEMIC(学术)、MARKETING(营销)。请严格使用枚举值。
      • 长度约束:maxLength为字符上限;过小可能触发警告并返回尽可能多的候选。
      • 术语保留:preserveTerms区分大小写;词形变化不会保留(如复数、派生),请按需提供完整术语形态。
      • 去重策略:默认启用语义去重(SEMANTIC),优先保证候选差异性;如因语义接近被移除,将返回警告并可能少于请求数量。
      • 同步/异步:rewrite适合低延迟单条;submit支持批量,mode=SYNC仅适合小批(例如≤10项),超过可能自动转队列。
      • 兼容性:未来版本仅追加字段或枚举值,不移除既有字段;调用方应容忍新增字段并忽略未知字段。
      • 错误处理:尽量返回部分可用结果;非致命问题通过warnings返回;致命错误通过errors数组与TaskError呈现。
    • 版本变更记录

      • v1.0.0
        • 提供rewrite(同步)与submit(批量队列)两类操作
        • 固定返回相似度与变更要点,默认候选数3,内置语义去重
        • 定义宽松错误/警告体系与基础枚举类型

    备注

    • 为保持参数简单,未开放去重阈值与策略配置;如需高级控制可在后续版本引入可选字段(保持向后兼容)。

    示例详情

    解决的问题

    将复杂模块的接口规范交付从“慢、散、易遗漏”升级为“快、准、可复用”。通过一个可直接使用的智能提示词,快速生成包含接口基本信息、输入输出说明、异常处理规则与调用示例的完整规范,帮助研发、测试、产品与运维在同一份文档上协同,显著降低沟通摩擦与返工,支持微服务拆分、前后端协作、系统对接等场景,加速上线与迭代,并为后续扩展与兼容预留空间。

    适用用户

    后端工程师

    用它从需求出发快速产出接口规范,清楚列明请求、返回与错误处理;提交评审即可落文档,联调时按对照表定位问题。

    前端/移动开发

    拿到自动生成的示例即可对接数据与状态,提前自测边界与异常;遇到问题按排错指引自助解决,减少等待后端时间。

    架构师/技术负责人

    统一团队接口设计口径,沉淀模板并约束规范;为服务间通信选择合适方式,平衡性能、扩展性与维护成本。

    特征总结

    一键生成模块接口规范文档,含名称版本、通信方式与请求响应说明,可直接评审交付
    自动梳理参数规则,清晰标注必填可选、取值范围与格式示例,减少往返沟通
    内置错误码对照与异常处理机制,附排错指引,快速定位问题,显著缩短联调周期
    支持REST风格与远程调用等通信方式,按场景推荐方案,兼顾性能稳定与后期维护
    提供模板复用与可配置字段,跨项目快速套用,统一团队口径,降低新成员上手成本
    自动生成请求与响应示例、调用说明和注意事项,拷贝即用,发布到协作平台更省心
    内含版本变更记录与兼容性建议,帮你平稳演进接口,避免升级牵连线上业务
    以需求为驱动的工作流,从目标梳理到设计校验一步到位,显著减少遗漏与返工
    为前后端、测试与合作方提供统一可信文档,减少口头约定,缩短对接与验收时间
    按复杂度自动拆解字段与校验规则,轻松覆盖边界场景,保障设计清晰且可落地

    如何使用购买的提示词模板

    1. 直接在外部 Chat 应用中使用

    将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

    2. 发布为 API 接口调用

    把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

    3. 在 MCP Client 中配置使用

    在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

    AI 提示词价格
    ¥20.00元
    先用后买,用好了再付款,超安全!

    您购买后可以获得什么

    获得完整提示词模板
    - 共 555 tokens
    - 4 个可调节参数
    { 模块功能 } { 接口类型 } { 参数复杂度 } { 错误处理要求 }
    获得社区贡献内容的使用权
    - 精选社区优质案例,助您快速上手提示词
    限时免费

    不要错过!

    免费获取高级提示词-优惠即将到期

    17
    :
    23
    小时
    :
    59
    分钟
    :
    59