
Aliyun Docmind Extract
- 47 installs
- 396 repo stars
- Updated July 18, 2026
- cinience/alicloud-skills
Extract document structure, text, and layout with Alibaba Cloud DocMind by submitting async parsing jobs and polling results via the Node.js SDK.
About
Uses the Alibaba Cloud Document Mind (DocMind) Node.js SDK to submit async document-parsing jobs and poll for extracted structure, text, and layout. A developer uses it for document-understanding workflows over PDFs and files.
- Submit-and-poll flow using @alicloud/docmind-api20220711
- Supports file-URL document structure extraction jobs
Aliyun Docmind Extract by the numbers
- 47 all-time installs (skills.sh)
- Ranked #375 of 688 Office & Documents skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-docmind-extractAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 47 |
|---|---|
| repo stars | ★ 396 |
| Last updated | July 18, 2026 |
| Repository | cinience/alicloud-skills ↗ |
What it does
Extract document structure, text, and layout with Alibaba Cloud DocMind by submitting async parsing jobs and polling results via the Node.js SDK.
Files
Category: provider
Document Mind (DocMind) — Node.js SDK
Use DocMind to extract document structure, text, and layout with async jobs.
Prerequisites
- Install SDKs:
npm install @alicloud/docmind-api20220711 @alicloud/tea-util @alicloud/credentials- Provide credentials via standard Alibaba Cloud env vars:
ALIBABACLOUD_ACCESS_KEY_IDALIBABACLOUD_ACCESS_KEY_SECRETALIBABACLOUD_REGION_ID(optional default; if unset, choose the most reasonable region for the task or ask the user)
Quickstart (submit + poll)
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));
}
})();Script quickstart
DOCMIND_FILE_URL="https://example.com/example.pdf" \\
node skills/ai/text/aliyun-docmind-extract/scripts/quickstart.jsEnvironment variables:
DOCMIND_FILE_URLDOCMIND_FILE_NAME(optional)DOCMIND_POLL_INTERVAL_MS(optional, default 10000)DOCMIND_MAX_POLLS(optional, default 120)
Local file upload
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);Notes for Claude Code/Codex
- DocMind is async: submit a job, then poll until
completed=true. - Poll every ~10s; max processing window is 120 minutes.
- Keep files publicly accessible when using URL submission.
Error handling
UrlNotLegal: URL not publicly accessible or malformed.DocProcessing: job still running; keep polling.Fail: checkmessageand error code for root cause.
Validation
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.txtPass criteria: command exits 0 and output/aliyun-docmind-extract/validate.txt is generated.
Output And Evidence
- Save artifacts, command outputs, and API response summaries under
output/aliyun-docmind-extract/. - Include key parameters (region/resource id/time range) in evidence files for reproducibility.
Workflow
1) Confirm user intent, region, identifiers, and whether the operation is read-only or mutating. 2) Run one minimal read-only query first to verify connectivity and permissions. 3) Execute the target operation with explicit parameters and bounded scope. 4) Verify results and save output/evidence files.
References
- DocMind Node.js SDK:
@alicloud/docmind-api20220711
- Source list:
references/sources.md
interface:
display_name: "Alibaba Cloud AI Text Document Mind"
short_description: "Document parsing and text AI workflows"
default_prompt: "Use $aliyun-docmind-extract to complete this ai/text task on Alibaba Cloud."
官方文档来源(用于后续更新) ============================
- https://example.com/example.pdf
const Client = require('@alicloud/docmind-api20220711');
const Credential = require('@alicloud/credentials');
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const fileUrl = process.env.DOCMIND_FILE_URL;
const fileName = process.env.DOCMIND_FILE_NAME || 'example.pdf';
const regionId = process.env.ALIBABACLOUD_REGION_ID || process.env.ALIBABA_CLOUD_REGION_ID || process.env.ALICLOUD_REGION_ID || 'cn-hangzhou';
const pollIntervalMs = Number(process.env.DOCMIND_POLL_INTERVAL_MS || 10000);
const maxPolls = Number(process.env.DOCMIND_MAX_POLLS || 120);
if (!fileUrl) {
console.error('Missing env var: DOCMIND_FILE_URL');
process.exit(1);
}
(async () => {
const cred = new Credential.default();
const client = new Client.default({
endpoint: 'docmind-api.cn-hangzhou.aliyuncs.com',
accessKeyId: cred.credential.accessKeyId,
accessKeySecret: cred.credential.accessKeySecret,
type: 'access_key',
regionId,
});
const submitReq = new Client.SubmitDocStructureJobRequest();
submitReq.fileUrl = fileUrl;
submitReq.fileName = fileName;
const submitResp = await client.submitDocStructureJob(submitReq);
const jobId = submitResp.body.data.id;
console.log('jobId:', jobId);
const resultReq = new Client.GetDocStructureResultRequest();
resultReq.id = jobId;
let polls = 0;
for (;;) {
const result = await client.getDocStructureResult(resultReq);
if (result.body.completed) {
console.log(result.body.status, result.body.data || result.body.message);
break;
}
polls += 1;
if (polls >= maxPolls) {
console.error('Polling timed out.');
process.exit(1);
}
await sleep(pollIntervalMs);
}
})();