docs(documents): 契约 v0.59 已发布 —— 更正 W6 那批「未发布/待发布」的过时注释
Cyrene_v2/Docs/api-client.md 已发布 v0.59(§1.2「文档存储与摄取契约」+ 端点表 16/17), 而 W6 那批文件的 KDoc 仍写着「契约尚未发布 / 待发布」,会误导后来人以为形状没有契约背书。 已逐条核对:我们实现的形状与已发布契约**完全一致** —— multipart 部件名 `file`、 201 首次 / 200 + `deduped:true` 去重、单文件 20 MiB、单回合 ≤5 条、上行只收 `name`、 `url` 是相对路径、`mime` 是嗅探基类型、`documents` 数组含 `chars`/`truncated`/`status`、 0 个附件时该键省略、4 个错误码。白名单在契约里也已更正为 22 项(与代码一致)。 纯注释更正,零行为变更。
This commit is contained in:
1 parent
ab76798bff
commit
29733914a4
10 files changed
+12
-12
No files matched your search
@@ -12,7 +12,7 @@ import retrofit2.http.Streaming
|
||||
import top.yeij.cyrene.data.api.dto.DocumentUploadResponse
|
||||
|
||||
/**
|
||||
* 文档存储端点(契约 **v0.59 待发布**,形状依据见 `02-前后端协同事项.md` 回执五 §一 S1)。
|
||||
* 文档存储端点(契约 **v0.59 已发布(api-client.md §1.2「文档存储与摄取契约」)**,形状依据见 `02-前后端协同事项.md` 回执五 §一 S1)。
|
||||
* 权限 `owner|admin`。与图片链路([UploadApi] + `/api/v1/files/{name}`)**刻意分离**:
|
||||
*
|
||||
* | | 图片 | 文档 |
|
||||
|
||||
@@ -35,7 +35,7 @@ data class ChatRequest(
|
||||
val stream: Boolean? = null,
|
||||
val clientMsgId: String? = null,
|
||||
/**
|
||||
* 本回合附带的文档引用(契约 v0.59 待发布,形状见 [DocumentRefDto]):**≤5 条**,
|
||||
* 本回合附带的文档引用(契约 v0.59 已发布(api-client.md §1.2「文档存储与摄取契约」),形状见 [DocumentRefDto]):**≤5 条**,
|
||||
* 每条**只给服务端存储名**(`{"name":"<32hex>.<ext>"}`),**不收 URL**。
|
||||
*
|
||||
* 上行只发 `name`:其它字段服务端一律不采信并覆盖(字节嗅探是唯一的类型裁决)。
|
||||
|
||||
@@ -3,7 +3,7 @@ package top.yeij.cyrene.data.api.dto
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* 文档 DTO —— 「文件进对话」的**唯一形状落点**(契约 **v0.59 尚未发布**)。
|
||||
* 文档 DTO —— 「文件进对话」的**唯一形状落点**(契约 **v0.59 已发布(api-client.md §1.2「文档存储与摄取契约」)**)。
|
||||
*
|
||||
* ## 形状从哪来
|
||||
* 写这份代码时 `Cyrene_v2/Docs/api-client.md` 的最新契约版本仍是 **v0.58**(里面**没有**
|
||||
|
||||
@@ -31,7 +31,7 @@ data class HistoryMessageDto(
|
||||
*/
|
||||
val clientMsgId: String? = null,
|
||||
/**
|
||||
* 这条消息携带的文档引用与抽取统计(契约 v0.59 待发布;形状见 [DocumentRefDto])。
|
||||
* 这条消息携带的文档引用与抽取统计(契约 v0.59 已发布(api-client.md §1.2「文档存储与摄取契约」);形状见 [DocumentRefDto])。
|
||||
*
|
||||
* 默认 [emptyList] 同时吃掉后端**尚未定死**的两种「0 个附件」形状:
|
||||
* **键缺失 → 空列表**(后端 `historyMessage.Documents` 带 `omitempty`,空/缺失即整键省略——
|
||||
|
||||
@@ -4,7 +4,7 @@ import top.yeij.cyrene.core.error.CyreneError
|
||||
import top.yeij.cyrene.data.api.CyreneException
|
||||
|
||||
/**
|
||||
* 文档操作失败(上传 / 取值)。契约 **v0.59 待发布**,错误码依据见
|
||||
* 文档操作失败(上传 / 取值)。契约 **v0.59 已发布(api-client.md §1.2「文档存储与摄取契约」)**,错误码依据见
|
||||
* `02-前后端协同事项.md` 回执五 §一 S1 与 §五「v0.59 会登记什么」。
|
||||
*
|
||||
* ## 为什么要把错误码收成类型
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package top.yeij.cyrene.domain.chat
|
||||
|
||||
/**
|
||||
* 文档抽取状态(契约 **v0.59 待发布**,形状依据见 `02-前后端协同事项.md` 回执五 §一 S3-A/S3-B)。
|
||||
* 文档抽取状态(契约 **v0.59 已发布(api-client.md §1.2「文档存储与摄取契约」)**,形状依据见 `02-前后端协同事项.md` 回执五 §一 S3-A/S3-B)。
|
||||
*
|
||||
* **开放集合,不用 enum**:后端的 `status` 是自由字符串,客户端映射只认这三个已知值,
|
||||
* **未知值原样保留**(不丢弃、不报错、不占位符)——与 `mode` / `platform` / `mood` 同一口径。
|
||||
|
||||
Reference in new issue
Block a user