alicloud-ai-text-document-mind について
Alibaba Cloud DocMind の Node.js SDK を使い、文書のテキスト、構造、レイアウトを抽出するスキルです。非同期処理に対応し、URL送信とローカルファイルのアップロード例を含みます。
主な機能
- 01文書のテキスト・構造・レイアウト抽出
- 02非同期処理ジョブの送信
- 03ジョブ完了までのポーリング
- 04URLまたはローカルファイルの送信
- 05結果とエビデンスファイルの保存
活用シーン
- 01PDFの構造抽出
- 02公開アクセス可能な文書URLの処理
- 03ローカルファイルからの文書抽出
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill alicloud-ai-text-document-mindインストール後、Claude Code で/alicloud-ai-text-document-mindを入力して読み込まれたか確認します。
同梱ファイル
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 環境変数を使用して認証情報を設定します:
ALICLOUD_ACCESS_KEY_IDALICLOUD_ACCESS_KEY_SECRETALICLOUD_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.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/alicloud-ai-text-document-mind/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/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
合格条件:コマンドが 0 で終了し、output/alicloud-ai-text-document-mind/validate.txt が生成されます。
出力とエビデンス
- 成果物、コマンド出力、API レスポンスの概要を
output/alicloud-ai-text-document-mind/に保存します。 - 再現性を確保するため、エビデンスファイルに主要なパラメーター(リージョン/リソース ID/時間範囲)を含めます。
ワークフロー
- ユーザーの意図、リージョン、識別子、操作が読み取り専用か変更を伴うかを確認します。
- 接続と権限を確認するため、まず最小限の読み取り専用クエリを 1 つ実行します。
- 明示的なパラメーターと限定された範囲を指定して、対象の操作を実行します。
- 結果を検証し、出力/エビデンスファイルを保存します。
参考資料
-
DocMind Node.js SDK:
@alicloud/docmind-api20220711 -
ソース一覧:
references/sources.md
コメント
Markdown 対応