调用说明
调用说明
文档只保留日常最常用的四块内容:概述、接口列表、调用示例和错误码。对外主接口统一为默认、标准、加强三条线。
概述
开始使用很简单
先在管理后台复制调用密钥,默认放在请求头里即可。然后只需要选择默认接口、标准接口或加强接口之一,请求体结构相同,区别主要在命中的模型通道与改写强度。
1
登录后台并复制调用密钥2
默认接口:POST /model/default3
标准接口:POST /model/standard4
加强接口:POST /model/pro5
参数映射:GET /supported默认只需要关心
language、platform、rewriteType 三组参数。默认版与标准版当前共用同一套算法流程,差别只在模型通道;返回结果都只保留请求追踪和真正要用到的数据。接口列表
接口总览
接口列表分成四组:文本改写、AIGC检测、文件改写、账号与项目。每一项都可以点开查看详细说明。
文本改写
默认改写
当前与标准版共用同一套算法流程,只切换到默认通道模型,适合独立比较模型效果。
POST
/model/default
默认改写
当前与标准版共用同一套算法流程,只切换到默认通道模型,适合独立比较模型效果。
/model/default
功能: 对输入文本执行默认通道改写,当前与标准版共用同一套算法流程,只切换模型通道。
认证: Header 使用
Authorization: Bearer sk_live_xxx。适用: 需要验证默认通道模型、对比模型效果或做灰度测试时使用。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
text |
string | 是 | 需要改写的正文内容,长度 20-100000 字。 |
language |
integer | 否 | 语言编号。1 中文,2 英文。默认值 1。 |
platform |
integer | 否 | 平台编号。默认值 1,完整映射见下方参数映射。 |
rewriteType |
integer | 否 | 改写类型编号。1 降AIGC,2 降重复,3 双降(先降重复率,再降AIGC率)。默认值 1。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
Header
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Content-Type |
string | 是 | 固定为 application/json。 |
Authorization |
string | 是 | Bearer sk_live_xxx,当前公开调用统一使用该请求头。 |
请求示例
curl -X POST https://hd.xjwk888.vip/model/default \
-H 'Authorization: Bearer sk_live_xxx' \
-H 'Content-Type: application/json' \
-d '{
"text": "这是需要改写的正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1
}'
返回示例
{
"success": true,
"data": {
"requestId": "open_1f3e87fdbb0d4c59",
"text": "默认模式改写后的正文内容......",
"mock": true
}
}
标准改写
日常主力场景使用,固定标准强度。
POST
/model/standard
标准改写
日常主力场景使用,固定标准强度。
/model/standard
功能: 对输入文本执行标准强度改写,直接返回改写结果。
认证: Header 使用
Authorization: Bearer sk_live_xxx。适用: 日常大多数改写场景,优先推荐。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
text |
string | 是 | 需要改写的正文内容,长度 20-100000 字。 |
language |
integer | 否 | 语言编号。1 中文,2 英文。默认值 1。 |
platform |
integer | 否 | 平台编号。默认值 1,完整映射见下方参数映射。 |
rewriteType |
integer | 否 | 改写类型编号。1 降AIGC,2 降重复,3 双降(先降重复率,再降AIGC率)。默认值 1。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
Header
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Content-Type |
string | 是 | 固定为 application/json。 |
Authorization |
string | 是 | Bearer sk_live_xxx,当前公开调用统一使用该请求头。 |
请求示例
curl -X POST https://hd.xjwk888.vip/model/standard \
-H 'Authorization: Bearer sk_live_xxx' \
-H 'Content-Type: application/json' \
-d '{
"text": "这是需要改写的正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1
}'
返回示例
{
"success": true,
"data": {
"requestId": "open_f52f7f92d9f44cb1",
"text": "标准模式改写后的正文内容......",
"mock": true
}
}
加强改写
需要更强改写效果时使用,固定加强强度;会按后台配置的复改轮数和平台链路生成多轮候选,再结合检测结果选优返回。
POST
/model/pro
加强改写
需要更强改写效果时使用,固定加强强度;会按后台配置的复改轮数和平台链路生成多轮候选,再结合检测结果选优返回。
/model/pro
功能: 对输入文本执行加强强度改写,请求结构与标准改写一致;系统会先生成首轮结果,再按后台配置的最大复改轮数和平台切换顺序继续补做候选,最后根据检测结果、结构距离和轮次综合选出当前最优版本。双降模式仅首轮执行一次降重,后续若继续复改,则只补做降AIGC。
认证: Header 使用
Authorization: Bearer sk_live_xxx。适用: 对改写效果要求更高的场景。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
text |
string | 是 | 需要改写的正文内容,长度 20-100000 字。 |
language |
integer | 否 | 语言编号。1 中文,2 英文。默认值 1。 |
platform |
integer | 否 | 平台编号。默认值 1,完整映射见下方参数映射。 |
rewriteType |
integer | 否 | 改写类型编号。1 降AIGC,2 降重复,3 双降(先降重复率,再降AIGC率)。默认值 1。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
Header
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Content-Type |
string | 是 | 固定为 application/json。 |
Authorization |
string | 是 | Bearer sk_live_xxx,当前公开调用统一使用该请求头。 |
请求示例
curl -X POST https://hd.xjwk888.vip/model/pro \
-H 'Authorization: Bearer sk_live_xxx' \
-H 'Content-Type: application/json' \
-d '{
"text": "这是需要更强改写的正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1
}'
返回示例
{
"success": true,
"data": {
"requestId": "open_a2d37fce75af4d10",
"text": "加强模式改写后的正文内容......",
"mock": true
}
}
AIGC检测
AIGC 文本检测
独立检测文本的 AIGC 风险,返回总体与分段检测结果。
POST
/open/detect/aigc/text
AIGC 文本检测
独立检测文本的 AIGC 风险,返回总体与分段检测结果。
/open/detect/aigc/text
功能: 独立检测文本的 AIGC 风险,不触发改写。
公开调用:
POST /open/detect/aigc/text,Header 里使用 Authorization: Bearer sk_live_xxx。会话调用:
POST /v1/detect/aigc/text,Header 使用 Authorization: Bearer <session_token>。检测引擎: 当前默认使用本地中英文检测模型;中文文本走内置中文模型,英文文本走内置英文模型,其他语言会直接返回说明,不进入深度推理。
多条文本: 可以用换行分隔多条文本,服务端会按条分别检测;当输入多条文本时,返回里会补充每条文本的摘要结果。
AIGC率: 公开文本检测接口会直接返回整体
confidence 作为 AIGC 率。返回: 对外保留总体
riskLevel、confidence、label 以及三类占比;同时会补充 segments[] 明细,方便前端直接展示片段风险。多条文本场景还会额外附带 items 摘要。请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
text |
string | 是 | 需要检测的文本内容。支持单条文本,也支持用换行分隔的多条文本。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
externalUserId |
string | 否 | 公开接口可选透传的业务用户 ID。 |
请求示例
curl -X POST https://hd.xjwk888.vip/open/detect/aigc/text -H 'Authorization: Bearer sk_live_xxx' -H 'Content-Type: application/json' -d '{
"text": "这是一段需要检测 AIGC 风险的文本内容。",
"requestId": "detect_demo_001"
}'
curl -X POST https://hd.xjwk888.vip/v1/detect/aigc/text -H 'Authorization: Bearer session_xxx' -H 'Content-Type: application/json' -d '{
"text": "这是一段需要检测 AIGC 风险的文本内容。"
}'
返回示例
{
"success": true,
"data": {
"requestId": "detect_8a2b20f0f85f43bf",
"riskLevel": "high",
"confidence": 68.37,
"label": "AI生成",
"humanRatio": 21.44,
"suspectRatio": 10.19,
"aiFeatureRatio": 68.37,
"sentenceCount": 7,
"segments": [
{
"index": 1,
"itemIndex": 1,
"itemSegmentIndex": 1,
"text": "这是一段命中风险的检测片段。",
"charCount": 412,
"confidence": 94.21,
"supported": true,
"label": "AI生成",
"humanRatio": 5.79,
"suspectRatio": 0,
"aiFeatureRatio": 94.21,
"sentenceCount": 3,
"code": 200,
"message": "AI生成",
"riskLevel": "high",
"flagged": true,
"labels": ["aigc"],
"descriptions": ["文本疑似AI生成"],
"results": [
{
"label": "aigc",
"description": "文本疑似AI生成",
"confidence": 94.21
}
]
},
{
"index": 2,
"itemIndex": 2,
"itemSegmentIndex": 1,
"text": "这是另一段风险较低的检测片段。",
"charCount": 388,
"confidence": 34.18,
"supported": true,
"label": "人类书写",
"humanRatio": 65.82,
"suspectRatio": 0,
"aiFeatureRatio": 34.18,
"sentenceCount": 4,
"code": 200,
"message": "人类书写",
"riskLevel": "none",
"flagged": false,
"labels": ["nonLabel"],
"descriptions": ["未检出明显风险"],
"results": [
{
"label": "nonLabel",
"description": "未检出明显风险",
"confidence": 34.18
}
]
}
],
"items": [
{
"index": 1,
"riskLevel": "high",
"confidence": 94.21,
"label": "AI生成",
"humanRatio": 5.79,
"suspectRatio": 0,
"aiFeatureRatio": 94.21,
"sentenceCount": 3
},
{
"index": 2,
"riskLevel": "none",
"confidence": 34.18,
"label": "人类书写",
"humanRatio": 65.82,
"suspectRatio": 0,
"aiFeatureRatio": 34.18,
"sentenceCount": 4
}
]
}
}
AIGC 文件检测
上传 txt/docx 文件,提取可检测正文后直接返回 HTML 或 PDF 检测报告。
POST
/open/detect/aigc/file
AIGC 文件检测
上传 txt/docx 文件,提取可检测正文后直接返回 HTML 或 PDF 检测报告。
/open/detect/aigc/file
功能: 上传文件后提取可检测正文,直接返回独立 HTML 或 PDF 检测报告,不创建异步任务。
公开调用:
POST /open/detect/aigc/file,Header 里使用 Authorization: Bearer sk_live_xxx。会话调用:
POST /v1/detect/aigc/file,Header 使用 Authorization: Bearer <session_token>,并要求具备 rewrite:file 范围。支持格式: 仅支持
.txt 和 .docx。检测引擎: 当前默认使用本地中英文检测模型;中文文本走内置中文模型,英文文本走内置英文模型,其他语言会跳过深度检测并在结果中保留说明。
返回: 成功时默认返回
text/html 报告页面;传 reportFormat=pdf 时返回 application/pdf;传 reportFormat=both 时返回 application/zip 压缩包。失败时仍返回 JSON 错误对象。报告标注: 全文对照页按句子级着色显示,高度疑似
>=70% 标红,中度疑似 30%-70% 标橙,轻度疑似 5%-30% 标紫,低于 5% 标灰,未参与检测的标题、短段、目录、参考文献等内容标黑。说明: PDF 与 HTML 共用同一份报告模板渲染;若部署环境缺少浏览器内核,请先执行
pnpm exec puppeteer browsers install chrome,或配置 AIGC_REPORT_PDF_EXECUTABLE_PATH。请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 上传待检测的 .txt 或 .docx 文件。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
externalUserId |
string | 否 | 公开接口可选透传的业务用户 ID。 |
reportFormat |
string | 否 | 报告格式。默认 html,可选 pdf 或 both。传 both 时返回同时包含 HTML 与 PDF 的 zip 压缩包。 |
请求示例
curl -X POST https://hd.xjwk888.vip/open/detect/aigc/file -H 'Authorization: Bearer sk_live_xxx' -F "file=@/path/to/demo.docx" -F "requestId=detect_file_demo_001" -o aigc-report.html curl -X POST https://hd.xjwk888.vip/open/detect/aigc/file -H 'Authorization: Bearer sk_live_xxx' -F "file=@/path/to/demo.docx" -F "reportFormat=pdf" -o aigc-report.pdf curl -X POST https://hd.xjwk888.vip/open/detect/aigc/file -H 'Authorization: Bearer sk_live_xxx' -F "file=@/path/to/demo.docx" -F "reportFormat=both" -o aigc-report.zip curl -X POST https://hd.xjwk888.vip/v1/detect/aigc/file -H 'Authorization: Bearer session_xxx' -F "file=@/path/to/demo.docx" -o aigc-report.html
返回示例
HTML 报告:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Disposition: inline; filename*=UTF-8''demo-aigc-detect-report.html
AIGC 文件检测报告 - demo.docx
...完整检测报告页面...
PDF 报告:
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename*=UTF-8''demo-aigc-detect-report.pdf
%PDF-1.3 ...
双报告压缩包:
HTTP/1.1 200 OK
Content-Type: application/zip
Content-Disposition: attachment; filename*=UTF-8''demo-aigc-detect-report.zip
PK... (zip 内包含 demo-aigc-detect-report.html 和 demo-aigc-detect-report.pdf)
文件改写
默认文件改写
上传 txt/docx 文件,当前与标准文件改写共用同一套算法流程,只切换到默认通道模型。
POST
/file-model/default
默认文件改写
上传 txt/docx 文件,当前与标准文件改写共用同一套算法流程,只切换到默认通道模型。
/file-model/default
功能: 上传待改写文件,创建默认通道文件改写任务;当前与标准文件改写共用同一套算法流程,只切换到默认模型通道。
认证: Header 使用
Authorization: Bearer sk_live_xxx。返回: 立即返回
jobId 和 statusUrl;正常首个状态就是 queued。适用: 需要独立验证默认通道文件改写效果时使用。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 上传待改写的 .txt 或 .docx 文件。 |
language |
integer | 否 | 语言编号。1 中文,2 英文。默认值 1。 |
platform |
integer | 否 | 平台编号。默认值 1,完整映射见 GET /supported。 |
rewriteType |
integer | 否 | 改写类型编号。1 降AIGC,2 降重复,3 双降(先降重复率,再降AIGC率)。默认值 1。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
请求示例
curl -X POST https://hd.xjwk888.vip/file-model/default \ -H 'Authorization: Bearer sk_live_xxx' \ -F "file=@/path/to/demo.docx" \ -F "language=1" \ -F "platform=1" \ -F "rewriteType=1"
返回示例
{
"success": true,
"data": {
"jobId": "job_default_xxx",
"status": "queued",
"statusUrl": "https://hd.xjwk888.vip/open/jobs/job_xxx"
}
}
标准文件改写
上传 txt/docx 文件,固定标准强度,返回任务信息。
POST
/file-model/standard
标准文件改写
上传 txt/docx 文件,固定标准强度,返回任务信息。
/file-model/standard
功能: 上传待改写文件,创建标准强度文件改写任务。
认证: Header 使用
Authorization: Bearer sk_live_xxx。返回: 立即返回
jobId 和 statusUrl;正常首个状态就是 queued,表示任务已入队等待处理,不代表失败。排队说明: 文件改写现在按队列执行;如果上游改写服务临时限流,任务会自动回到
queued 并延迟重试,而不是直接失败。请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 上传待改写的 .txt 或 .docx 文件。 |
language |
integer | 否 | 语言编号。1 中文,2 英文。默认值 1。 |
platform |
integer | 否 | 平台编号。默认值 1,完整映射见 GET /supported。 |
rewriteType |
integer | 否 | 改写类型编号。1 降AIGC,2 降重复,3 双降(先降重复率,再降AIGC率)。默认值 1。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
请求示例
curl -X POST https://hd.xjwk888.vip/file-model/standard \ -H 'Authorization: Bearer sk_live_xxx' \ -F "file=@/path/to/demo.docx" \ -F "language=1" \ -F "platform=1" \ -F "rewriteType=1"
返回示例
{
"success": true,
"data": {
"jobId": "job_xxx",
"status": "queued",
"statusUrl": "https://hd.xjwk888.vip/open/jobs/job_xxx"
}
}
加强文件改写
上传 txt/docx 文件,固定加强强度;首轮先做正常文件改写,仅高风险段会按后台配置继续切平台补改并选优。
POST
/file-model/pro
加强文件改写
上传 txt/docx 文件,固定加强强度;首轮先做正常文件改写,仅高风险段会按后台配置继续切平台补改并选优。
/file-model/pro
功能: 上传待改写文件,创建加强强度文件改写任务;文件正文会先做首轮加强改写,再只对检测为高风险的段落按后台配置的复改轮数与平台链路继续补改,最终返回每段当前最优结果。双降场景只在首轮执行一次降重,后续高风险段若继续复改,则只补做降AIGC。
排队说明: 加强文件改写同样先进入
queued 队列,后端按并发上限依次处理;遇到上游 429 时会自动退避重试。认证: Header 使用
Authorization: Bearer sk_live_xxx。适用: 需要更高改写强度的文件场景。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 上传待改写的 .txt 或 .docx 文件。 |
language |
integer | 否 | 语言编号。1 中文,2 英文。默认值 1。 |
platform |
integer | 否 | 平台编号。默认值 1,完整映射见 GET /supported。 |
rewriteType |
integer | 否 | 改写类型编号。1 降AIGC,2 降重复,3 双降(先降重复率,再降AIGC率)。默认值 1。 |
requestId |
string | 否 | 业务自定义请求 ID,不传会自动生成。 |
请求示例
curl -X POST https://hd.xjwk888.vip/file-model/pro \ -H 'Authorization: Bearer sk_live_xxx' \ -F "file=@/path/to/demo.docx" \ -F "language=1" \ -F "platform=1" \ -F "rewriteType=1"
返回示例
{
"success": true,
"data": {
"jobId": "job_xxx",
"status": "queued",
"statusUrl": "https://hd.xjwk888.vip/open/jobs/job_xxx"
}
}
任务状态查询
查看文件任务当前状态,完成后拿到 fileId 和下载地址。
GET
/open/jobs/{jobId}
任务状态查询
查看文件任务当前状态,完成后拿到 fileId 和下载地址。
/open/jobs/{jobId}
功能: 查询文件改写任务是否排队、处理中或已完成。
认证: Header 里使用
Authorization: Bearer sk_live_xxx。状态: 前端至少应正确识别
queued、processing、done、error、cancelled、timed_out。返回:
queued / processing 时通常没有结果文件;任务完成后才会带上 fileId 和 downloadUrl。请求示例
curl https://hd.xjwk888.vip/open/jobs/job_xxx \ -H 'Authorization: Bearer sk_live_xxx'
排队返回示例
{
"success": true,
"data": {
"jobId": "job_xxx",
"status": "queued",
"progress": { "current": 0, "total": 0 },
"result": null
}
}
完成返回示例
{
"success": true,
"data": {
"jobId": "job_xxx",
"status": "done",
"progress": { "current": 12, "total": 12 },
"result": {
"fileId": "file_xxx",
"filename": "示例(降低AIGC率).docx",
"downloadUrl": "https://hd.xjwk888.vip/open/files/file_xxx/download"
}
}
}
结果文件下载
任务完成后下载最终产物文件。
GET
/open/files/{fileId}/download
结果文件下载
任务完成后下载最终产物文件。
/open/files/{fileId}/download
功能: 根据
fileId 下载最终生成的文件。认证: Header 里使用
Authorization: Bearer sk_live_xxx。返回: 二进制文件流,Header 中带
Content-Disposition。保留时长: 文件改写结果仅保留 24 小时;超时后任务详情中的
result 可能为空,下载接口会返回 410 FILE_EXPIRED。请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId |
string | 是 | 生成文件 ID。来自任务完成结果里的 data.result.fileId。 |
Authorization |
string | 是 | Bearer sk_live_xxx,用于确认当前应用对文件有访问权限。 |
请求示例
curl -L https://hd.xjwk888.vip/open/files/file_xxx/download \ -H 'Authorization: Bearer sk_live_xxx' \ -o result.docx
账号与项目
参数映射
获取 language、platform、rewriteType 的编号映射。
GET
/supported
参数映射
获取 language、platform、rewriteType 的编号映射。
/supported
功能: 返回当前可用的平台、语言和改写类型映射。
适用: 开始使用前先查编号,避免参数填错。
简版映射:
language 支持 1=中文 / 2=英文;rewriteType 支持 1=降AIGC / 2=降重复 / 3=双降(先降重后降AIGC)。
发送邮箱验证码
给注册邮箱发送 6 位验证码。
POST
/v1/auth/send-email-code
发送邮箱验证码
给注册邮箱发送 6 位验证码。
/v1/auth/send-email-code
功能: 向邮箱发送注册验证码。
请求体: 需要
email。适用: 注册前先获取邮箱验证码。
账号注册
注册平台账号。
POST
/v1/auth/register
账号注册
注册平台账号。
/v1/auth/register
功能: 用邮箱、密码和验证码创建平台账号,返回登录凭证。
请求体: 需要
email、code、password。适用: 第一次开通账号时使用。
账号登录
登录后台,获取登录凭证。
POST
/v1/auth/login
账号登录
登录后台,获取登录凭证。
/v1/auth/login
功能: 登录平台后台。
请求体: 需要
email 和 password。返回: 登录凭证和当前账号信息。
创建项目
创建一个项目并获得调用密钥。
POST
/v1/apps
创建项目
创建一个项目并获得调用密钥。
/v1/apps
功能: 创建项目,生成
publishableKey 和 secretKey。认证: Header 使用
Authorization: Bearer <access_token>。适用: 需要区分不同业务场景时新增项目使用。
我的项目
查看当前账号名下的所有项目。
GET
/v1/apps
我的项目
查看当前账号名下的所有项目。
/v1/apps
功能: 返回当前账号拥有的项目列表。
认证: Header 使用
Authorization: Bearer <access_token>。
重置密钥
为指定项目生成新密钥,旧 secretKey 失效。
POST
/v1/apps/:appId/keys
重置密钥
为指定项目生成新密钥,旧 secretKey 失效。
/v1/apps/:appId/keys
功能: 重新生成项目密钥。
认证: Header 使用
Authorization: Bearer <access_token>。注意: 轮换后旧
secretKey 不再可用。
调用日志
查看项目调用日志。
GET
/v1/apps/:appId/logs
调用日志
查看项目调用日志。
/v1/apps/:appId/logs
功能: 查看文本改写、文件改写、下载等活动日志。
认证: Header 使用
Authorization: Bearer <access_token>。
用量统计
查看请求量、成功率、趋势等项目统计。
GET
/v1/apps/:appId/dashboard
用量统计
查看请求量、成功率、趋势等项目统计。
/v1/apps/:appId/dashboard
功能: 查看项目的总请求数、成功率、趋势和分布统计。
认证: Header 使用
Authorization: Bearer <access_token>。调用示例
按语言切换调用示例
这里只保留最常见的几种调用方式。默认版、标准版、加强版和文件改写都放在同一个示例面板里。
JavaScript 调用示例
// 1. 获取支持项编号
const supportedResponse = await fetch("https://hd.xjwk888.vip/supported");
const supported = await supportedResponse.json();
console.log("支持项", supported.data);
// 2. 默认文本改写
const defaultResponse = await fetch("https://hd.xjwk888.vip/model/default", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
text: "这是一段需要改写的论文正文内容,长度至少 20 字。",
language: 1,
platform: 1,
rewriteType: 1
})
});
const defaultResult = await defaultResponse.json();
console.log("默认改写结果", defaultResult.data.text);
// 3. 标准文本改写
const standardResponse = await fetch("https://hd.xjwk888.vip/model/standard", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
text: "这是一段需要改写的论文正文内容,长度至少 20 字。",
language: 1,
platform: 1,
rewriteType: 1
})
});
const standardResult = await standardResponse.json();
console.log("标准改写结果", standardResult.data.text);
// 4. 加强文本改写
const proResponse = await fetch("https://hd.xjwk888.vip/model/pro", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
text: "这是一段需要更强改写效果的论文正文内容,长度至少 20 字。",
language: 1,
platform: 1,
rewriteType: 1
})
});
const proResult = await proResponse.json();
console.log("加强改写结果", proResult.data.text);
// 5. 默认文件改写
const fileInput = document.querySelector("#fileInput");
const defaultFormData = new FormData();
defaultFormData.append("file", fileInput.files[0]);
defaultFormData.append("language", "1");
defaultFormData.append("platform", "1");
defaultFormData.append("rewriteType", "1");
const defaultFileResponse = await fetch("https://hd.xjwk888.vip/file-model/default", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY"
},
body: defaultFormData
});
const defaultFileResult = await defaultFileResponse.json();
console.log("默认文件任务", defaultFileResult.data.jobId);
// 6. 标准文件改写
const standardFormData = new FormData();
standardFormData.append("file", fileInput.files[0]);
standardFormData.append("language", "1");
standardFormData.append("platform", "1");
standardFormData.append("rewriteType", "1");
const fileResponse = await fetch("https://hd.xjwk888.vip/file-model/standard", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY"
},
body: standardFormData
});
const fileResult = await fileResponse.json();
console.log("文件任务", fileResult.data.jobId);
// 7. 查询任务状态
const jobResponse = await fetch("https://hd.xjwk888.vip/open/jobs/" + fileResult.data.jobId, {
headers: {
"Authorization": "Bearer YOUR_API_KEY"
}
});
const jobResult = await jobResponse.json();
console.log("任务状态", jobResult.data.status);
if (jobResult.data.status === "done") {
console.log("下载地址", jobResult.data.result.downloadUrl);
}
默认、标准和加强的区别主要在路径与命中的模型通道:
/model/default、/model/standard、/model/pro。文件改写同理切到 /file-model/default、/file-model/standard 或 /file-model/pro,调用密钥统一放请求头里。Python 调用示例
import requests
BASE_URL = "https://hd.xjwk888.vip"
API_KEY = "YOUR_API_KEY"
# 1. 获取支持项编号
supported = requests.get(BASE_URL + "/supported").json()
print("支持项", supported["data"])
# 2. 默认文本改写
default_payload = {
"text": "这是一段需要改写的论文正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1,
}
default_result = requests.post(
BASE_URL + "/model/default",
headers={"Authorization": "Bearer " + API_KEY},
json=default_payload,
).json()
print("默认改写结果", default_result["data"]["text"])
# 3. 标准文本改写
standard_payload = {
"text": "这是一段需要改写的论文正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1,
}
standard_result = requests.post(
BASE_URL + "/model/standard",
headers={"Authorization": "Bearer " + API_KEY},
json=standard_payload,
).json()
print("标准改写结果", standard_result["data"]["text"])
# 4. 加强文本改写
pro_payload = {
"text": "这是一段需要更强改写效果的论文正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1,
}
pro_result = requests.post(
BASE_URL + "/model/pro",
headers={"Authorization": "Bearer " + API_KEY},
json=pro_payload,
).json()
print("加强改写结果", pro_result["data"]["text"])
# 5. 默认文件改写
with open("demo.docx", "rb") as file_handle:
default_file_result = requests.post(
BASE_URL + "/file-model/default",
headers={"Authorization": "Bearer " + API_KEY},
files={"file": ("demo.docx", file_handle)},
data={"language": "1", "platform": "1", "rewriteType": "1"},
).json()
print("默认文件任务", default_file_result["data"]["jobId"])
# 6. 标准文件改写
with open("demo.docx", "rb") as file_handle:
file_result = requests.post(
BASE_URL + "/file-model/standard",
headers={"Authorization": "Bearer " + API_KEY},
files={"file": ("demo.docx", file_handle)},
data={"language": "1", "platform": "1", "rewriteType": "1"},
).json()
print("文件任务", file_result["data"]["jobId"])
# 7. 查询任务状态
job_result = requests.get(
BASE_URL + "/open/jobs/" + file_result["data"]["jobId"],
headers={"Authorization": "Bearer " + API_KEY},
).json()
print("任务状态", job_result["data"]["status"])
if job_result["data"]["status"] == "done":
print("下载地址", job_result["data"]["result"]["downloadUrl"])
如果你把调用放在服务端,推荐把
API_KEY 放在环境变量里,不要直接写进浏览器代码。cURL 调用示例
# 1. 获取支持项编号
curl https://hd.xjwk888.vip/supported
# 2. 默认文本改写
curl -X POST https://hd.xjwk888.vip/model/default \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"text": "这是一段需要改写的论文正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1
}'
# 3. 标准文本改写
curl -X POST https://hd.xjwk888.vip/model/standard \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"text": "这是一段需要改写的论文正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1
}'
# 4. 加强文本改写
curl -X POST https://hd.xjwk888.vip/model/pro \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"text": "这是一段需要更强改写效果的论文正文内容,长度至少 20 字。",
"language": 1,
"platform": 1,
"rewriteType": 1
}'
# 5. 默认文件改写
curl -X POST https://hd.xjwk888.vip/file-model/default \
-H 'Authorization: Bearer YOUR_API_KEY' \
-F "file=@/path/to/demo.docx" \
-F "language=1" \
-F "platform=1" \
-F "rewriteType=1"
# 6. 标准文件改写
curl -X POST https://hd.xjwk888.vip/file-model/standard \
-H 'Authorization: Bearer YOUR_API_KEY' \
-F "file=@/path/to/demo.docx" \
-F "language=1" \
-F "platform=1" \
-F "rewriteType=1"
# 7. 查询任务状态
curl https://hd.xjwk888.vip/open/jobs/job_xxx \
-H 'Authorization: Bearer YOUR_API_KEY'
# 6. 下载结果文件
curl -L https://hd.xjwk888.vip/open/files/file_xxx/download \
-H 'Authorization: Bearer YOUR_API_KEY' \
-o result.docx
联调时先跑
/supported,再调用标准或加强接口,最后按 jobId 查询文件任务状态。错误码
常见错误
对接时最常见的错误基本都在下面这几种里。
400
VALIDATION_ERROR
请求参数不完整或格式不正确。
401
MISSING_SECRET_KEY
未在 Authorization 请求头中正确传入调用密钥。
401
INVALID_SECRET_KEY
调用密钥无效,或者已经失效。
403
APP_DISABLED
当前项目已被停用。
400
MISSING_FILE
缺少上传文件,请传入 .txt 或 .docx 文件。
400
FILE_TOO_SHORT
文件可检测正文过短,无法发起调用。
400
INVALID_FILE
文件解析失败,或上传的文档不是有效的 .txt / .docx。
502
REWRITE_FAILED
模型通道调用失败,请稍后重试。
410
FILE_EXPIRED
文件改写结果已超过 24 小时保留期,需重新发起任务。
503
AIGC_DETECTOR_NOT_CONFIGURED
本地 AIGC 检测模型未配置或尚未就绪。
502
AIGC_DETECT_FAILED
AIGC 检测调用失败,请稍后重试。
完整参数映射可以随时调用
GET /supported;账号登录、创建项目和密钥管理继续在 /portal/apps 完成。