对外内容接口要不要附一个纯文本版本,字段该怎么约定
对外内容接口要不要附一个纯文本版本,答案是:如果调用方包含模型与智能体,就值得附,而且应当由站点自己生成。第三方已验证过在边缘把网页实时转成文本表示这条路可行,边缘检测到文本格式偏好后从源站取原文再转换,但这中间多了一层不属于站点的判断——转换质量、体积上限与缓存行为都不由你定。接口直接给出纯文本字段,换来的是稳定的表示与可核对的口径。
附与不附的判断
该附的三种情形:内容需要被引用成答案、正文含结构化段落(表格、步骤、代码块)、以及调用方无法执行脚本只能读文本。
不该附的两种情形:正文本身就是排版产物(如海报页、可视化对照表),以及权限边界不清的草稿内容——把草稿同时暴露进纯文本字段,比在 HTML 里泄露更难发现。
字段怎么约定
| 字段 | 内容 | 约定要点 |
|---|---|---|
| 原文字段 | 富文本正文 | 保持既有字段名不变,避免破坏已接入方 |
| 纯文本字段 | 去标记后的正文 | 与原文同一版本源,不允许各自维护 |
| 转换说明 | 生成时间与规则版本 | 让调用方判断拿到的是否滞后 |
| 体积与截断标记 | 字节数、是否被截断 | 分页或截断时必须给出续读坐标 |
三条硬性约定:
- 纯文本字段由同一份正文生成,转换规则版本化;人工维护两份必然漂移。
- 体积上限写进文档并给出实际字节数。第三方边缘方案的转换上限是按未压缩正文体积计的,公开文档写明为 6 MiB(6,291,456 字节),超出即不转换——自建站点的接口也应当把上限说清,而不是静默截断。
- 截断要显式标记并给续读位置。静默截断会让模型把半句话当成完整结论,这是引用质量下降的主要来源。
内容格式协商怎么做
接口层要能识别调用方的格式偏好。业界通行做法是读取请求里的可接受类型声明,命中时返回文本表示并带上对应的响应类型;未命中时维持原有行为。这样同一个入口既能服务既有集成,也能服务只读文本的客户端,不需要新开一条专用地址。
与站点说明文件的分工
面向大模型的站点说明文件(llms.txt)解决「从哪里读起」,接口解决「怎么取到内容」,两者不要混用:说明文件里列的应当是可公开访问的入口与分组,接口字段约定写在接口文档里。高频调用的能力,比如文档列表与详情、分类与标签、图片上传、留言与评论,都应在接口文档中给出明确的字段说明,纯文本字段作为其中一项列出,而不是散落在正文里靠口头约定。
批量入口同样要交代清楚。内容导入接口 /api/import/archive 支持按标题查询是否已存在,批量灌入时若同时生成纯文本字段,应在导入结果里体现生成状态,避免调用方以为两边已同步。
常见问题
只靠边缘转换不够吗? 够用但不稳定。转换发生在第三方层,上限、缓存与质量口径你无法承诺给调用方。
纯文本字段要不要包含标题与摘要? 要。引用场景里脱离正文独立成立的段落最有用,标题、摘要与结论段应保留在文本表示中。
老接口加字段会不会影响已有调用方? 新增可选字段通常是兼容的;破坏性变更应通过版本号或新地址走,不要在原字段上改语义。