关于 aliyun-docmind-extract
通过 Alibaba Cloud DocMind Node.js SDK 提取文档结构、文本和版面信息的技能。适用于需要异步提交文档处理任务并轮询结果的场景,支持 URL 和本地文件提交。
主要功能
- 01异步提交文档结构提取任务
- 02轮询任务直至完成
- 03通过 URL 提交文件
- 04通过本地文件流提交
适用场景
- 01提取 PDF 的文本与结构
- 02处理公开可访问 URL 中的文档
- 03将本地文件提交给 DocMind
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-docmind-extract安装后在 Claude Code 中输入/aliyun-docmind-extract确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/sources.mdscripts/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_IDALIBABACLOUD_ACCESS_KEY_SECRETALIBABACLOUD_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_URLDOCMIND_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/时间范围),以便复现。
工作流
- 确认用户意图、区域、标识符,以及操作是只读还是会修改数据。
- 先运行一个最精简的只读查询,以验证连通性和权限。
- 使用明确参数和有限范围执行目标操作。
- 验证结果并保存输出/证据文件。
参考资料
-
DocMind Node.js SDK:
@alicloud/docmind-api20220711 -
来源列表:
references/sources.md
评论
支持 Markdown