alicloud-ai-text-document-mind
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCategory: provider
Category: provider
Document Mind (DocMind) — Node.js SDK
Document Mind(DocMind)—— Node.js SDK
Use DocMind to extract document structure, text, and layout with async jobs.
使用DocMind通过异步任务提取文档结构、文本和布局。
Prerequisites
前提条件
- Install SDKs:
npm install @alicloud/docmind-api20220711 @alicloud/tea-util @alicloud/credentials
- Provide credentials via standard Alibaba Cloud env vars:
ALICLOUD_ACCESS_KEY_IDALICLOUD_ACCESS_KEY_SECRET- (optional default; if unset, choose the most reasonable region for the task or ask the user)
ALICLOUD_REGION_ID
- 安装SDK:
npm install @alicloud/docmind-api20220711 @alicloud/tea-util @alicloud/credentials
- 通过标准阿里云环境变量提供凭证:
ALICLOUD_ACCESS_KEY_IDALICLOUD_ACCESS_KEY_SECRET- (可选默认值;如果未设置,为任务选择最合理的区域或询问用户)
ALICLOUD_REGION_ID
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));
}
})();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.jsEnvironment variables:
DOCMIND_FILE_URL- (optional)
DOCMIND_FILE_NAME - (optional, default 10000)
DOCMIND_POLL_INTERVAL_MS - (optional, default 120)
DOCMIND_MAX_POLLS
bash
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 - (可选,默认值10000)
DOCMIND_POLL_INTERVAL_MS - (可选,默认值120)
DOCMIND_MAX_POLLS
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);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
针对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.
- DocMind是异步的:提交任务后,轮询直到。
completed=true - 每约10秒轮询一次;最长处理窗口为120分钟。
- 使用URL提交时,确保文件可公开访问。
Error handling
错误处理
- : URL not publicly accessible or malformed.
UrlNotLegal - : job still running; keep polling.
DocProcessing - : check
Failand error code for root cause.message
- :URL无法公开访问或格式错误。
UrlNotLegal - :任务仍在运行;继续轮询。
DocProcessing - :查看
Fail和错误代码以确定根本原因。message
References
参考资料
-
DocMind Node.js SDK:
@alicloud/docmind-api20220711 -
Source list:
references/sources.md
-
DocMind Node.js SDK:
@alicloud/docmind-api20220711 -
来源列表:
references/sources.md