mcpField
A
alicloud-ai-text-document-mind

alicloud-ai-text-document-mind

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

关于 alicloud-ai-text-document-mind

此技能通过 Alibaba Cloud DocMind 的 Node.js SDK 提取文档文本、结构和版面,适用于需要异步处理文档的场景,并提供 URL 提交和本地文件上传示例。

主要功能

  1. 01提取文档文本、结构和版面
  2. 02提交异步处理任务
  3. 03轮询任务完成状态
  4. 04提交 URL 或本地文件
  5. 05保存结果和证据文件

适用场景

  1. 01提取 PDF 文档结构
  2. 02处理可公开访问的文档 URL
  3. 03处理本地文件以提取内容

安装

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

$npx skills add https://github.com/cinience/alicloud-skills --skill alicloud-ai-text-document-mind

安装后在 Claude Code 中输入/alicloud-ai-text-document-mind确认已加载。

包含的文件

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

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

详细介绍

Category: 提供方

Document Mind(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'; // 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/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。
  • 每隔约 10s 轮询一次;最长处理时间为 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

评论

支持 Markdown