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:
-
ALICLOUD_ACCESS_KEY_ID
-
ALICLOUD_ACCESS_KEY_SECRET
-
ALICLOUD_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.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/alicloud-ai-text-document-mind/scripts/quickstart.js
Environment variables:
-
DOCMIND_FILE_URL
-
DOCMIND_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 : check message and error code for root cause.
Validation
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
Pass criteria: command exits 0 and output/alicloud-ai-text-document-mind/validate.txt is generated.
Output And Evidence
-
Save artifacts, command outputs, and API response summaries under output/alicloud-ai-text-document-mind/ .
-
Include key parameters (region/resource id/time range) in evidence files for reproducibility.
Workflow
-
Confirm user intent, region, identifiers, and whether the operation is read-only or mutating.
-
Run one minimal read-only query first to verify connectivity and permissions.
-
Execute the target operation with explicit parameters and bounded scope.
-
Verify results and save output/evidence files.
References
DocMind Node.js SDK: @alicloud/docmind-api20220711
Source list: references/sources.md