👁️ 480
👍 154
📅 2026-06-13 收录
🔄 2026-06-13 更新
Alicloud Ai Text Document Mind

Alicloud Ai Text Document Mind

🤖 Alicloud Ai Text Document Mind

正文内容

类别:provider

文档智能(DocMind)—— Node.js SDK

使用 DocMind 异步提交任务,提取文档的结构、文本及版式信息。

前置条件

  • 安装 SDK:

    • npm install @alicloud/docmind-api20220711 @alicloud/tea-util @alicloud/credentials
  • 通过标准 Alibaba Cloud 环境变量提供凭据:

    • ALICLOUD_ACCESS_KEY_ID
    • ALICLOUD_ACCESS_KEY_SECRET
    • ALICLOUD_REGION_ID(可选,默认值;若未设置,应选择最适配当前任务的地域,或向用户询问)

快速开始(提交 + 轮询)

const Client = require('@alicloud/docmind-api20220711');
const Credential = require('@alicloud/credentials');
const Util = require('@alicloud/tea-util');

const cred = new Credential.default();
const regionId = process.env.ALICLOUD_REGION_ID || 'cn-hangzhou'; // 示例默认值;若未设置,需选择或询问用户。
const client = new Client.default({
  endpoint: `docmind-api.${regionId}.aliyuncs.com`,
  accessKeyId: cred.credential.accessKeyId,
  accessKeySecret: cred.credential.accessKeySecret,
  type: 'access_key',
  regionId,
});

async function submitByUrl(fileUrl, fileName) {
  const req = new Client.SubmitDocStructureJobRequest();
  req.fileUrl = fileUrl;
  req.fileName = fileName;
  const resp = await client.submitDocStructureJob(req);
  return resp.body.data.id;
}

async function pollResult(jobId) {
  const req = new Client.GetDocStructureResultRequest();
  req.id = jobId;
  const resp = await client.getDocStructureResult(req);
  return resp.body;
}

(async () => {
  const jobId = await submitByUrl('https://example.com/example.pdf', 'example.pdf');
  console.log('jobId:', jobId);

  // 每 10 秒轮询一次,直至完成。
  for (;;) {
    const result = await pollResult(jobId);
    if (result.completed) {
      console.log(result.status, result.data || result.message);
      break;
    }
    await new Promise((r) => setTimeout(r, 10000));
  }
})();

脚本快速启动

DOCMIND_FILE_URL="https://example.com/example.pdf" \\
node skills/ai/text/alicloud-ai-text-document-mind/scripts/quickstart.js

支持的环境变量:

  • DOCMIND_FILE_URL
  • DOCMIND_FILE_NAME(可选)
  • DOCMIND_POLL_INTERVAL_MS(可选,默认为 10000)
  • DOCMIND_MAX_POLLS(可选,默认为 120)

本地文件上传

const fs = require('fs');
const advanceReq = new Client.SubmitDocStructureJobAdvanceRequest();
advanceReq.fileUrlObject = fs.createReadStream('./example.pdf');
advanceReq.fileName = 'example.pdf';
const runtime = new Util.RuntimeOptions({});
const resp = await client.submitDocStructureJobAdvance(advanceReq, runtime);

针对 Claude Code / Codex 的注意事项

  • DocMind 为异步服务:需先提交任务,再轮询结果,直至 completed=true
  • 建议每约 10 秒轮询一次;最大处理窗口为 120 分钟。
  • 使用 URL 提交时,请确保文件可被公网访问。

错误处理

  • UrlNotLegal:URL 非法(不可公开访问或格式错误)。
  • DocProcessing:任务仍在执行中;请继续轮询。
  • Fail:请检查 message 字段及错误码以定位根本原因。

验证

mkdir -p output/alicloud-ai-text-document-mind
for f in skills/ai/text/alicloud-ai-text-document-mind/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/alicloud-ai-text-document-mind/validate.txt

通过标准:命令退出码为 0,且成功生成 output/alicloud-ai-text-document-mind/validate.txt 文件。

输出与证据

  • 所有产物(包括命令输出、API 响应摘要等)均须保存至 output/alicloud-ai-text-document-mind/ 目录下。
  • 证据文件中需包含关键参数(如地域、资源 ID、时间范围等),以保障可复现性。

工作流

1) 明确用户意图、目标地域、相关标识符,并确认操作是否为只读或变更类操作。  
2) 首先执行一个最小化的只读查询,用于验证连接性与权限配置。  
3) 在明确参数与作用域限制的前提下,执行目标操作。  
4) 验证执行结果,并保存输出及证据文件。

参考资料

  • DocMind Node.js SDK:@alicloud/docmind-api20220711
  • 源列表:references/sources.md