alicloud-ai-text-document-mind
Use Document Mind (DocMind) via Node.js SDK to submit document parsing jobs and poll results. Designed for Claude Code/Codex document understanding workflows.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-alicloud-ai-text-document-mind
Repository
Skill path: skills/cinience/alicloud-ai-text-document-mind
Use Document Mind (DocMind) via Node.js SDK to submit document parsing jobs and poll results. Designed for Claude Code/Codex document understanding workflows.
Open repositoryBest for
Primary workflow: Analyze Data & AI.
Technical facets: Full Stack, Data / AI.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install alicloud-ai-text-document-mind into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding alicloud-ai-text-document-mind to shared team environments
- Use alicloud-ai-text-document-mind for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: alicloud-ai-text-document-mind
description: Use Document Mind (DocMind) via Node.js SDK to submit document parsing jobs and poll results. Designed for Claude Code/Codex document understanding workflows.
version: 1.0.0
---
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)
```js
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
```bash
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
```js
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
```bash
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
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`
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### references/sources.md
```markdown
官方文档来源(用于后续更新)
============================
- https://example.com/example.pdf
```
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### _meta.json
```json
{
"owner": "cinience",
"slug": "alicloud-ai-text-document-mind",
"displayName": "Alicloud Ai Text Document Mind",
"latest": {
"version": "1.0.2",
"publishedAt": 1773221902320,
"commit": "https://github.com/openclaw/skills/commit/164c60e2b650dc1ebfb02a1e5ba33caf36a81075"
},
"history": [
{
"version": "1.0.1",
"publishedAt": 1770768467638,
"commit": "https://github.com/openclaw/skills/commit/03526dca7ac3a699f079f0e975350edc98f8cff1"
}
]
}
```
### scripts/quickstart.js
```javascript
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.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);
}
})();
```