mcpField
A
aliyun-docmind-extract

aliyun-docmind-extract

github.com/cinience文档处理39656 次安装11 周前更新
代码仓库

关于 aliyun-docmind-extract

通过 Alibaba Cloud DocMind Node.js SDK 提取文档结构、文本和版面信息的技能。适用于需要异步提交文档处理任务并轮询结果的场景,支持 URL 和本地文件提交。

主要功能

  1. 01异步提交文档结构提取任务
  2. 02轮询任务直至完成
  3. 03通过 URL 提交文件
  4. 04通过本地文件流提交

适用场景

  1. 01提取 PDF 的文本与结构
  2. 02处理公开可访问 URL 中的文档
  3. 03将本地文件提交给 DocMind

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-docmind-extract

安装后在 Claude Code 中输入/aliyun-docmind-extract确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
sources.md
scripts/
quickstart.js

详细介绍

Category: provider

Document Mind (DocMind) — Node.js SDK

使用 DocMind 通过异步作业提取文档结构、文本和版面信息。

前置条件

  • 安装 SDK:
    • npm install @alicloud/docmind-api20220711 @alicloud/tea-util @alicloud/credentials
  • 通过标准 Alibaba Cloud 环境变量提供凭据:
    • ALIBABACLOUD_ACCESS_KEY_ID
    • ALIBABACLOUD_ACCESS_KEY_SECRET
    • ALIBABACLOUD_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.ALIBABACLOUD_REGION_ID ||
  process.env.ALIBABA_CLOUD_REGION_ID ||
  process.env.ALICLOUD_REGION_ID ||
  'cn-hangzhou'; // Example default; choose/ask if unset.
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);

  // Poll every 10s until completed.
  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/aliyun-docmind-extract/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。
  • 每隔约 10s 轮询一次;最长处理时间为 120 分钟。
  • 使用 URL 提交时,请确保文件可公开访问。

错误处理

  • UrlNotLegal:URL 无法公开访问或格式错误。
  • DocProcessing:作业仍在运行;请继续轮询。
  • Fail:检查 message 和错误代码以查明根本原因。

验证

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

通过标准:命令以 0 退出,且生成了 output/aliyun-docmind-extract/validate.txt。

输出和证据

  • 将产物、命令输出和 API 响应摘要保存到 output/aliyun-docmind-extract/。
  • 在证据文件中包含关键参数(区域/资源 ID/时间范围),以便复现。

工作流

  1. 确认用户意图、区域、标识符,以及操作是只读还是会修改数据。
  2. 先运行一个最精简的只读查询,以验证连通性和权限。
  3. 使用明确参数和有限范围执行目标操作。
  4. 验证结果并保存输出/证据文件。

参考资料

  • DocMind Node.js SDK:@alicloud/docmind-api20220711

  • 来源列表:references/sources.md

评论

支持 Markdown