aliyun-docmind-extract について
Alibaba Cloud の DocMind Node.js SDK で、ドキュメントの構造、テキスト、レイアウトを抽出するスキルです。非同期ジョブの送信と結果のポーリングに対応し、URL とローカルファイルを指定できます。
主な機能
- 01非同期の文書抽出ジョブを送信
- 02完了までジョブをポーリング
- 03URL でファイルを送信
- 04ローカルファイルをストリームで送信
活用シーン
- 01PDF からテキストと構造を抽出
- 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詳細
カテゴリ:プロバイダー
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になるまでポーリングしてください。 - 約 10 秒ごとにポーリングしてください。最大処理時間は 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/時間範囲)を含めます。
ワークフロー
- ユーザーの意図、リージョン、識別子、および操作が読み取り専用か変更を伴うかを確認します。
- 接続性と権限を確認するため、最初に最小限の読み取り専用クエリを 1 つ実行します。
- 範囲を限定し、パラメーターを明示して対象の操作を実行します。
- 結果を検証し、出力/証跡ファイルを保存します。
参考資料
-
DocMind Node.js SDK:
@alicloud/docmind-api20220711 -
ソース一覧:
references/sources.md
コメント
Markdown 対応