llamaparse について
llamaparse は、LlamaParse で PDF、DOCX、PPTX、XLSX などを解析し、テキスト、Markdown、画像を抽出するスキルです。依頼内容に応じた TypeScript スクリプトを作成し、許可を得てから実行します。
主な機能
- 01PDF、DOCX、PPTX、XLSX の解析
- 02テキスト、Markdown、画像の抽出
- 03文書の複雑さに応じた解析ティアの選択
- 04返却内容と解析オプションの設定
- 05TypeScript スクリプトの生成と実行
活用シーン
- 01複雑なレイアウトの文書から内容を抽出
- 02文書を Markdown に変換
- 03ページ単位のテキストや構造化結果を取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ run-llama/ llamaparse-agent-skills --skill llamaparseインストール後、Claude Code で/llamaparseを入力して読み込まれたか確認します。
同梱ファイルscripts/example.ts
詳細
LlamaParse スキル
LlamaParse を使用して非構造化ドキュメント(PDF、DOCX、PPTX、XLSX など)を解析し、その内容(テキスト、Markdown、画像など)を抽出します。
初期設定
このスキルが呼び出されたら、次のように応答します。
I'm ready to use LlamaParse to parse files. Before we begin, please confirm that:
- `LLAMA_CLOUD_API_KEY` is set as environment variable within the current environment
- `@llamaindex/llama-cloud@latest` is installed and available within the current Node environment
If both of them are set, please provide:
1. One or more files to be parsed
2. Specific parsing options, such as tier, API version, custom prompt, processing options...
3. Any requests you might have regarding the parsed content of the file.
I will produce a Typescript script to run the parsing job and, once you approved its execution, I will report the results back to you based on your request.
その後、ユーザーの入力を待ちます。
ステップ 0 — llama-cloud をインストールする(任意)
ユーザーが @llamaindex/llama-cloud パッケージをインストールしていない場合は、次を実行して現在の環境に追加します。
npm install @llamaindex/llama-cloud@latest
ステップ 1 — TypeScript スクリプトを作成する
ユーザーが環境変数の設定を確認し、解析ジョブに必要な詳細を提供したら、TypeScript スクリプトを作成します。
TS スクリプトの正確な情報源として、次を参照できます。
- LlamaParse に必要な設定のほとんどを網羅している example.ts スクリプトを参照します
- LlamaParse のドキュメント全体を参照し、
https://developers.llamaindex.ai/python/cloud/llamaparse/api-v2-guide/ページを取得します。
スクリプト作成のベストプラクティス
スクリプトを生成するときは、次のガイドラインに従います。
1. 常にトップレベルの LlamaCloud クライアントを使用する
すべての解析操作に LlamaCloud(API クライアント)を使用します。
import LlamaCloud from "@llamaindex/llama-cloud";
// Define a client
const client = new LlamaCloud({
apiKey: process.env["LLAMA_CLOUD_API_KEY"], // This is the default and can be omitted
});
2. 2 段階のアップロード → 解析パターン
最初に必ずアップロードしてファイル ID を取得し、そのファイル ID を使用して解析します。未加工のファイルバイト列を parse() に直接渡してはいけません。
import { readFile, writeFile } from "fs/promises";
import { basename } from "path";
// 1. Convert the file path into a File object
const buffer = await readFile(filePath);
const fileName = basename(filePath);
const file = new File([buffer], fileName);
// 2. Upload the file to the cloud
const fileObj = await client.files.create({
file: file,
purpose: "parse",
});
// 3. Get the file ID
const fileId = fileObj.id;
// 4. Use the file ID to parse the file
const result = await client.parsing.parse({
tier: "agentic",
version: "latest",
file_id: fileId,
...
});
ユーザーがすでにファイル ID(以前のアップロードで取得したものなど)を持っている場合は、アップロードの手順を省略し、その ID を直接使用します。
3. 適切なティアを選択する
| ティア | 使用する場面 |
|---|---|
fast | 速度を優先する場合。単純なドキュメント向け |
cost_effective | コストを重視する場合。簡単なテキスト抽出向け |
agentic | 複雑なレイアウト、表、混在コンテンツ向け(デフォルトの推奨設定) |
agentic_plus | 高度な分析、最高精度が必要な場合 |
ユーザーから別の指定がある場合や、ドキュメントが単純な場合を除き、デフォルトで agentic を使用します。
4. expand パラメーターを必ず指定する
expand パラメーターは、返されるコンテンツを制御します。省略すると、最小限のデータのみが返されます。必要な項目を必ず正確に指定します。
| 値 | 返される内容 |
|---|---|
text_full | result.text_full によるプレーンテキスト |
markdown_full | result.markdown_full による Markdown |
items | ページ単位の JSON(result.items.pages) |
text_content_metadata | ページ単位のテキストメタデータ |
markdown_content_metadata | ページ単位の Markdown メタデータ |
items_content_metadata | ページ単位の項目メタデータ |
images_content_metadata | 署名付き URL を含む画像リスト |
output_pdf_content_metadata | 出力 PDF のメタデータ |
xlsx_content_metadata | Excel 固有のメタデータ |
署名付き URL またはページ単位の詳細が必要な場合に限り、メタデータの *_content_metadata バリアントを要求します。これらを指定するとペイロードサイズが大きくなります。
5. 結果が None の場合に備えて適切に処理する
result.text_full、result.markdown_full、および result.items は、失敗時に undefined になる場合があります。必ず次のようにチェックします。
const text = result.text_full ?? "";
const markdown = result.markdown_full ?? "";
6. 高度な設定には構造化オプションを使用する
正しいネストされたキーを使ってオプションをまとめます。
const result = await client.parsing.parse({
tier: "agentic",
version: "latest",
file_id: fileId,
input_options: {
presentation: {
skip_embedded_data: false,
},
},
output_options: {
images_to_save: ["screenshot"],
markdown: {
tables: { output_tables_as_markdown: true },
annotate_links: true,
},
},
processing_options: {
specialized_chart_parsing: "agentic",
ocr_parameters: { languages: ["de", "en"] },
},
agentic_options: {
custom_prompt:
"Extract text from the provided file and translate it from German to English.",
},
expand: [
"markdown_full",
"images_content_metadata",
"markdown_content_metadata",
],
});
ユーザーが抽出方法(翻訳、要約、構造化抽出など)を指定したい場合は、agentic_options.custom_prompt を使用します。
7. 画像のダウンロードには httpx と認証が必要
images_content_metadata が expand に含まれている場合は、Bearer 認証を使用し、署名付き URL から画像をダウンロードします。
if (result.images_content_metadata) {
for (const image of result.images_content_metadata.images) {
if (image.presigned_url) {
const response = await fetch(image.presigned_url, {
headers: {
Authorization: `Bearer ${process.env["LLAMA_CLOUD_API_KEY"]}`,
},
});
if (response.ok) {
const content = await response.bytes();
await writeFile(image.filename, content);
}
}
}
}
8. Node の shebang を使用する
生成するすべてのスクリプトに Node の shebang を含めます。
#!/usr/bin/env node
ステップ 2 — TypeScript スクリプトを実行する
TypeScript スクリプトを作成したら、次の手順に従います。
- スクリプトをユーザーに提示し、実行する許可を求めます(現在の権限設定に応じて判断します)。
- 実行許可を得たら、スクリプトを実行します。
- ユーザーの要望に沿って、結果を確認します。
TypeScript スクリプトの実行には、
npx tsx script.tsの使用を強く推奨します。