diff --git a/fr.json b/fr.json
index bde31dccfd..59e5f87281 100644
--- a/fr.json
+++ b/fr.json
@@ -389,6 +389,13 @@
"fr/api/assistant/get-page-content"
]
},
+ {
+ "group": "Deslop",
+ "icon": "sparkles",
+ "pages": [
+ "fr/api/deslop/check"
+ ]
+ },
{
"group": "Analytics",
"icon": "chart-line",
diff --git a/fr/api/deslop/check.mdx b/fr/api/deslop/check.mdx
new file mode 100644
index 0000000000..8bfc9de7cc
--- /dev/null
+++ b/fr/api/deslop/check.mdx
@@ -0,0 +1,30 @@
+---
+title: "Vérifier une page pour détecter la prose de style IA"
+openapi: /admin-openapi.json POST /v1/deslop/{projectId}
+keywords: ["deslop", "détection ia", "humanisation", "qualité de la prose"]
+
+---
+
+Ce point de terminaison analyse une page MDX ou Markdown à la recherche de prose qui semble générée par IA et renvoie les passages signalés avec leurs plages de lignes, ainsi que des suggestions optionnelles de réécriture au style humain. Utilisez-le pour repérer le contenu rédigé par IA avant qu'il n'atteigne la production, ou pour exécuter les mêmes vérifications que la CLI [`mint deslop`](/fr/cli/commands#mint-deslop) depuis un pipeline CI ou un outil interne.
+
+Le frontmatter, les blocs de code délimités et le code en ligne sont supprimés avant l'évaluation, de sorte que seule la prose est analysée.
+
+
+
+Chaque page évaluée consomme 1 crédit IA du pool partagé de crédits IA également utilisé par l'assistant. Les pages de moins de 50 mots sont ignorées gratuitement (`skipped: "too_short"`) avant la vérification des crédits.
+
+
+
+```bash
+curl -X POST https://api.mintlify.com/v1/deslop/{projectId} \
+ -H "Authorization: Bearer mint_xxxxx" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "path": "docs/guide.mdx",
+ "content": "# Getting started\n\nWelcome to our platform..."
+ }'
+```
diff --git a/fr/cli/commands.mdx b/fr/cli/commands.mdx
index ea8a3d2f15..6d21b3397f 100644
--- a/fr/cli/commands.mdx
+++ b/fr/cli/commands.mdx
@@ -426,6 +426,8 @@ mint deslop --fix-whitespace
`--format json` écrit un unique objet JSON sur stdout avec un tableau `results` (une entrée par fichier, indexée par `path`) et un bloc `summary`. Les erreurs sont signalées par fichier et comptabilisées dans `summary.errors`. Ce format est conçu pour les agents qui bouclent : vérifier, réécrire les passages signalés, puis relancer jusqu'à ce que la commande se termine avec `0`.
+La CLI appelle le même service de détection que celui exposé par l'Admin API. Utilisez le point de terminaison [vérifier une page pour détecter la prose de style IA](/fr/api/deslop/check) si vous devez exécuter ces vérifications depuis un pipeline CI ou un outil interne sans passer par la CLI.
+
---
diff --git a/zh.json b/zh.json
index e3837dd2f5..097f6c830b 100644
--- a/zh.json
+++ b/zh.json
@@ -384,6 +384,13 @@
"zh/api/assistant/get-page-content"
]
},
+ {
+ "group": "Deslop",
+ "icon": "sparkles",
+ "pages": [
+ "zh/api/deslop/check"
+ ]
+ },
{
"group": "数据分析",
"icon": "chart-line",
diff --git a/zh/api/deslop/check.mdx b/zh/api/deslop/check.mdx
new file mode 100644
index 0000000000..e28f4ee897
--- /dev/null
+++ b/zh/api/deslop/check.mdx
@@ -0,0 +1,30 @@
+---
+title: "检查页面中的 AI 风格文案"
+openapi: /admin-openapi.json POST /v1/deslop/{projectId}
+keywords: ["deslop", "ai 检测", "人性化改写", "文案质量"]
+
+---
+
+此端点会扫描 MDX 或 Markdown 页面中读起来像 AI 生成的文案,并返回按行号定位的被标记段落,同时可选地给出人类风格的改写建议。可用于在内容上线前捕获 AI 起草的内容,或从 CI 流水线或内部工具中运行与 [`mint deslop`](/zh/cli/commands#mint-deslop) CLI 相同的检查。
+
+评分前会去除 frontmatter、围栏代码块和行内代码,因此仅对文案本身进行分析。
+
+
+ ## 积分
+
+
+每次对一个页面评分会从与 AI 助手共享的 AI 积分池中扣除 1 个 AI 积分。少于 50 个词的页面会在积分检查之前被免费跳过 (`skipped: "too_short"`)。
+
+
+ ## 使用方法
+
+
+```bash
+curl -X POST https://api.mintlify.com/v1/deslop/{projectId} \
+ -H "Authorization: Bearer mint_xxxxx" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "path": "docs/guide.mdx",
+ "content": "# Getting started\n\nWelcome to our platform..."
+ }'
+```
diff --git a/zh/cli/commands.mdx b/zh/cli/commands.mdx
index f68dd1b732..2a0c07e0c6 100644
--- a/zh/cli/commands.mdx
+++ b/zh/cli/commands.mdx
@@ -426,6 +426,8 @@ mint deslop --fix-whitespace
`--format json` 会向 stdout 写入一个 JSON 对象,其中包含一个 `results` 数组(每个文件一个条目,以 `path` 为键)和一个 `summary` 块。错误会按文件分别报告,并计入 `summary.errors`。这种结构专为循环运行的代理设计:检查、改写被标记的段落,然后重新运行,直到该命令以 `0` 退出。
+该 CLI 调用的是与 Admin API 相同的检测服务。如果你需要在 CI 流水线或内部工具中运行这些检查而不调用 CLI,请使用 [检查页面中的 AI 风格文案](/zh/api/deslop/check) 端点。
+
---
From 133c4c76e98414b74d533d58e950bb4ad4b31327 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 17 Jul 2026 23:50:10 +0000
Subject: [PATCH 4/4] docs: translate deslop OpenAPI operation to es, fr, and
zh
---
es/admin-openapi.json | 196 ++++++++++++++++++++++++++++++++++++++++++
fr/admin-openapi.json | 196 ++++++++++++++++++++++++++++++++++++++++++
zh/admin-openapi.json | 196 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 588 insertions(+)
diff --git a/es/admin-openapi.json b/es/admin-openapi.json
index 993c9242d0..3cdb07c4f4 100644
--- a/es/admin-openapi.json
+++ b/es/admin-openapi.json
@@ -395,6 +395,202 @@
}
}
},
+ "/v1/deslop/{projectId}": {
+ "post": {
+ "summary": "Analizar página en busca de prosa con apariencia de IA",
+ "description": "Escanea una página MDX en busca de prosa con apariencia de IA y devuelve pasajes marcados asignados a líneas, con sugerencias opcionales de reescritura con estilo humano. Las páginas con menos de 50 palabras se omiten sin costo. Cada página analizada consume 1 crédito de IA del grupo compartido de créditos de IA que utiliza el asistente.\n\nAutentícate con una clave de API de administrador.",
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "El ID de tu proyecto. Puedes copiarlo desde la página de [API keys](https://dashboard.mintlify.com/settings/organization/api-keys) en tu dashboard."
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": ["path", "content"],
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "description": "Identificador de la página que se está analizando. Se devuelve en la respuesta y se utiliza como clave de los resultados cuando se analizan varias páginas."
+ },
+ "content": {
+ "type": "string",
+ "maxLength": 1000000,
+ "description": "Contenido MDX o Markdown sin procesar de la página. El frontmatter, los bloques de código y el código en línea se eliminan antes de la puntuación para analizar únicamente la prosa."
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Página analizada correctamente. `skipped` es `null` para las páginas puntuadas, o una cadena con la razón (por ejemplo, `too_short`) cuando la página no se puntuó. Las páginas puntuadas incluyen las fracciones de contenido escrito por IA, los pasajes marcados por ventana con sus rangos de líneas y cualquier sugerencia de reescritura.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "Eco del `path` de la solicitud."
+ },
+ "skipped": {
+ "type": "string",
+ "nullable": true,
+ "description": "Razón por la que la página se omitió sin puntuación, como `too_short` cuando la página tiene menos de 50 palabras. `null` cuando la página fue puntuada."
+ },
+ "predictionShort": {
+ "type": "string",
+ "description": "Etiqueta corta del veredicto general. Uno de `Human`, `AI-Assisted`, `Mixed` o `AI`.",
+ "enum": ["Human", "AI-Assisted", "Mixed", "AI"]
+ },
+ "fractionAi": {
+ "type": "number",
+ "description": "Fracción de la prosa (0-1) que se lee como completamente escrita por IA."
+ },
+ "fractionAiAssisted": {
+ "type": "number",
+ "description": "Fracción de la prosa (0-1) que se lee como asistida por IA."
+ },
+ "fractionHuman": {
+ "type": "number",
+ "description": "Fracción de la prosa (0-1) que se lee como escrita por humanos."
+ },
+ "windows": {
+ "type": "array",
+ "description": "Pasajes marcados con rangos de líneas de la página original y sugerencias opcionales de reescritura.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "El pasaje marcado tal como aparece en la página."
+ },
+ "label": {
+ "type": "string",
+ "description": "Veredicto a nivel de pasaje (por ejemplo, `AI` o `AI-Assisted`)."
+ },
+ "aiAssistanceScore": {
+ "type": "number",
+ "description": "Puntuación (0-1) que indica qué tan escrita por IA está el pasaje."
+ },
+ "confidence": {
+ "oneOf": [
+ { "type": "string" },
+ { "type": "number" }
+ ],
+ "description": "Confianza del detector para este pasaje."
+ },
+ "startLine": {
+ "type": "integer",
+ "description": "Línea inicial (indexada desde 1) del pasaje en la página original."
+ },
+ "endLine": {
+ "type": "integer",
+ "description": "Línea final (indexada desde 1) del pasaje en la página original."
+ },
+ "rewrites": {
+ "type": "array",
+ "description": "Candidatos opcionales de reescritura con estilo humano.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Prosa de reemplazo sugerida."
+ },
+ "rationale": {
+ "type": "string",
+ "description": "Explicación breve de por qué la reescritura se lee como más humana."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "creditsCharged": {
+ "type": "integer",
+ "description": "Créditos de IA cobrados por esta solicitud. `1` para páginas puntuadas, `0` para páginas omitidas."
+ }
+ }
+ },
+ {
+ "type": "object",
+ "description": "Forma de la respuesta cuando la página se omitió sin puntuación.",
+ "properties": {
+ "path": { "type": "string" },
+ "skipped": {
+ "type": "string",
+ "description": "Razón por la que la página se omitió (por ejemplo, `too_short`)."
+ },
+ "creditsCharged": {
+ "type": "integer",
+ "description": "Siempre `0` para las páginas omitidas."
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Cuerpo de la solicitud no válido. Los campos `path` y `content` son obligatorios.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "402": {
+ "description": "Tu organización se ha quedado sin créditos de IA. Recarga créditos o mejora tu plan y vuelve a intentarlo.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "429": {
+ "description": "Se superó el límite de solicitudes.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "503": {
+ "description": "El servicio de detección de prosa con IA o el servicio de cuota no está disponible temporalmente. No se cobran créditos. Reintenta con retroceso.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/v2/agent/{projectId}/job": {
"post": {
"summary": "Crear trabajo del agente",
diff --git a/fr/admin-openapi.json b/fr/admin-openapi.json
index 99d7e253c5..f51874023a 100644
--- a/fr/admin-openapi.json
+++ b/fr/admin-openapi.json
@@ -395,6 +395,202 @@
}
}
},
+ "/v1/deslop/{projectId}": {
+ "post": {
+ "summary": "Vérifier la présence de prose au style IA sur une page",
+ "description": "Analyse une page MDX pour détecter la prose au style IA et renvoie les passages signalés avec leur plage de lignes, ainsi que des suggestions optionnelles de réécriture au style humain. Les pages de moins de 50 mots sont ignorées gratuitement. Chaque page vérifiée débite 1 crédit IA du pool de crédits IA partagé utilisé par l’assistant.\n\nAuthentifiez-vous avec une clé d'API administrateur.",
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "L’ID de votre projet. Vous pouvez le copier depuis la page [API keys](https://app.mintlify.com/settings/organization/api-keys) de votre Dashboard."
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": ["path", "content"],
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "description": "Identifiant de la page en cours de vérification. Il est renvoyé tel quel dans la réponse et sert de clé pour les résultats lors de la vérification de plusieurs pages."
+ },
+ "content": {
+ "type": "string",
+ "maxLength": 1000000,
+ "description": "Contenu MDX ou Markdown brut de la page. Le frontmatter, les blocs de code et le code en ligne sont supprimés avant l’analyse afin que seule la prose soit évaluée."
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Page vérifiée avec succès. `skipped` vaut `null` pour les pages évaluées, ou une chaîne indiquant la raison (par exemple, `too_short`) lorsque la page n’a pas été évaluée. Les pages évaluées incluent les fractions de texte rédigées par IA, les passages signalés par fenêtre avec leurs plages de lignes, ainsi que d’éventuelles suggestions de réécriture.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "Reprise du champ `path` de la requête."
+ },
+ "skipped": {
+ "type": "string",
+ "nullable": true,
+ "description": "Raison pour laquelle la page a été ignorée sans être évaluée, comme `too_short` lorsque la page fait moins de 50 mots. `null` lorsque la page a été évaluée."
+ },
+ "predictionShort": {
+ "type": "string",
+ "description": "Libellé court du verdict global. L’une des valeurs suivantes : `Human`, `AI-Assisted`, `Mixed` ou `AI`.",
+ "enum": ["Human", "AI-Assisted", "Mixed", "AI"]
+ },
+ "fractionAi": {
+ "type": "number",
+ "description": "Fraction de la prose (0-1) qui semble entièrement rédigée par IA."
+ },
+ "fractionAiAssisted": {
+ "type": "number",
+ "description": "Fraction de la prose (0-1) qui semble assistée par IA."
+ },
+ "fractionHuman": {
+ "type": "number",
+ "description": "Fraction de la prose (0-1) qui semble rédigée par un humain."
+ },
+ "windows": {
+ "type": "array",
+ "description": "Passages signalés avec leurs plages de lignes dans la page d’origine et suggestions optionnelles de réécriture.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Le passage signalé tel qu’il apparaît dans la page."
+ },
+ "label": {
+ "type": "string",
+ "description": "Verdict au niveau du passage (par exemple, `AI` ou `AI-Assisted`)."
+ },
+ "aiAssistanceScore": {
+ "type": "number",
+ "description": "Score (0-1) indiquant à quel point le passage semble rédigé par IA."
+ },
+ "confidence": {
+ "oneOf": [
+ { "type": "string" },
+ { "type": "number" }
+ ],
+ "description": "Confiance du détecteur pour ce passage."
+ },
+ "startLine": {
+ "type": "integer",
+ "description": "Ligne de début du passage dans la page d’origine (indexée à partir de 1)."
+ },
+ "endLine": {
+ "type": "integer",
+ "description": "Ligne de fin du passage dans la page d’origine (indexée à partir de 1)."
+ },
+ "rewrites": {
+ "type": "array",
+ "description": "Candidats optionnels de réécriture au style humain.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Prose de remplacement suggérée."
+ },
+ "rationale": {
+ "type": "string",
+ "description": "Courte explication de la raison pour laquelle la réécriture semble plus humaine."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "creditsCharged": {
+ "type": "integer",
+ "description": "Crédits IA débités pour cette requête. `1` pour les pages évaluées, `0` pour les pages ignorées."
+ }
+ }
+ },
+ {
+ "type": "object",
+ "description": "Structure de la réponse lorsque la page a été ignorée sans être évaluée.",
+ "properties": {
+ "path": { "type": "string" },
+ "skipped": {
+ "type": "string",
+ "description": "Raison pour laquelle la page a été ignorée (par exemple, `too_short`)."
+ },
+ "creditsCharged": {
+ "type": "integer",
+ "description": "Toujours `0` pour les pages ignorées."
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Corps de requête invalide. Les champs `path` et `content` sont obligatoires.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "402": {
+ "description": "Votre organisation n’a plus de crédits IA. Rechargez vos crédits ou passez à un forfait supérieur, puis réessayez.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "429": {
+ "description": "Limite de débit dépassée.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "503": {
+ "description": "Le service de détection de prose IA ou le service de quotas est temporairement indisponible. Aucun crédit n’est débité. Réessayez avec un backoff.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/v2/agent/{projectId}/job": {
"post": {
"summary": "Créer une tâche d’agent",
diff --git a/zh/admin-openapi.json b/zh/admin-openapi.json
index 072720c9c2..26d780f41a 100644
--- a/zh/admin-openapi.json
+++ b/zh/admin-openapi.json
@@ -395,6 +395,202 @@
}
}
},
+ "/v1/deslop/{projectId}": {
+ "post": {
+ "summary": "检查页面中类 AI 语气的文本",
+ "description": "扫描 MDX 页面中类 AI 语气的文本,并返回带行号映射的被标记段落,以及可选的更贴近人类风格的改写建议。少于 50 词的页面将被免费跳过。每次检查一个页面会从助手所使用的共享 AI 额度池中扣除 1 个 AI 额度。\n\n使用管理员 API 密钥进行身份验证。",
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "你的项目 ID。可从你的控制台中的 [API keys](https://app.mintlify.com/settings/organization/api-keys) 页面复制。"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": ["path", "content"],
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "description": "被检查页面的标识符。会在响应中原样返回,并在检查多个页面时用作结果的键。"
+ },
+ "content": {
+ "type": "string",
+ "maxLength": 1000000,
+ "description": "页面的原始 MDX 或 Markdown 内容。在评分之前会移除 frontmatter、代码块和内联代码,因此仅分析正文文本。"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "页面检查成功。对于已评分的页面,`skipped` 为 `null`;当页面未被评分时,则为一个原因字符串(例如 `too_short`)。已评分的页面包含 AI 撰写的比例、带行号范围的每个窗口的被标记段落,以及任何改写建议。",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "原样回显请求中的 `path`。"
+ },
+ "skipped": {
+ "type": "string",
+ "nullable": true,
+ "description": "页面未被评分而跳过的原因,例如页面少于 50 词时为 `too_short`。当页面已被评分时为 `null`。"
+ },
+ "predictionShort": {
+ "type": "string",
+ "description": "整体判定的简短标签。为 `Human`、`AI-Assisted`、`Mixed` 或 `AI` 之一。",
+ "enum": ["Human", "AI-Assisted", "Mixed", "AI"]
+ },
+ "fractionAi": {
+ "type": "number",
+ "description": "读起来完全由 AI 撰写的正文比例(0-1)。"
+ },
+ "fractionAiAssisted": {
+ "type": "number",
+ "description": "读起来由 AI 辅助撰写的正文比例(0-1)。"
+ },
+ "fractionHuman": {
+ "type": "number",
+ "description": "读起来由人类撰写的正文比例(0-1)。"
+ },
+ "windows": {
+ "type": "array",
+ "description": "带原始页面行号范围的被标记段落,以及可选的改写建议。",
+ "items": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "被标记段落在页面中的原文。"
+ },
+ "label": {
+ "type": "string",
+ "description": "段落级别的判定(例如 `AI` 或 `AI-Assisted`)。"
+ },
+ "aiAssistanceScore": {
+ "type": "number",
+ "description": "表示该段落 AI 撰写程度的评分(0-1)。"
+ },
+ "confidence": {
+ "oneOf": [
+ { "type": "string" },
+ { "type": "number" }
+ ],
+ "description": "检测器对该段落的置信度。"
+ },
+ "startLine": {
+ "type": "integer",
+ "description": "段落在原始页面中的起始行号(从 1 开始)。"
+ },
+ "endLine": {
+ "type": "integer",
+ "description": "段落在原始页面中的结束行号(从 1 开始)。"
+ },
+ "rewrites": {
+ "type": "array",
+ "description": "可选的人类风格改写候选。",
+ "items": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "建议的替换文本。"
+ },
+ "rationale": {
+ "type": "string",
+ "description": "对为何该改写更像人类风格的简短说明。"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "creditsCharged": {
+ "type": "integer",
+ "description": "本次请求扣除的 AI 额度。已评分的页面为 `1`,被跳过的页面为 `0`。"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "description": "当页面未评分而被跳过时的响应结构。",
+ "properties": {
+ "path": { "type": "string" },
+ "skipped": {
+ "type": "string",
+ "description": "页面被跳过的原因(例如 `too_short`)。"
+ },
+ "creditsCharged": {
+ "type": "integer",
+ "description": "对于被跳过的页面始终为 `0`。"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "请求体无效。`path` 和 `content` 字段为必填项。",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "402": {
+ "description": "你的组织 AI 额度已用尽。请充值额度或升级套餐后重试。",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "429": {
+ "description": "超出速率限制。",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "503": {
+ "description": "类 AI 文本检测服务或额度服务暂时不可用。不会扣除任何额度。请使用退避策略重试。",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/v2/agent/{projectId}/job": {
"post": {
"summary": "创建代理任务",