Upstage Dp Synpro Withweave Part1
Captured source
source ↗upstage.ai
⚡️ 日本語性能で国内トップLLM「Syn Pro」を体験 Learn more → ⚡️ 日本語性能で国内トップLLM「Syn Pro」を体験 Learn more →
Solutions
Resources
Company
Pricing
Try demo Try demo Contact us
近年、生成AIは実業務の中に浸透し、「AIを用いた業務改善」は特別なものではなくなりました。一方で、実務での活用にはまだ課題も残っています。 多くの生成AI(LLM)はテキスト情報を前提としている 画像を扱える生成AI(VLM)はコストが高い 業務ドキュメントには、コピー・スキャンなどテキスト化されていない資料が多い
これらのギャップにより、生成AIを業務にうまく組み込めていないケースも少なくありません。 本ブログでは、業務ドキュメントを 「AIが読みやすい形」に変換することで、生成AIがどのような処理・活用が可能になるのか を、具体例とともに説明していきます。
この記事はこんな方におすすめ 契約書・申請書・見積書など、ドキュメント処理を自動化したいエンジニア PythonとLLM APIに触れたことがあり、「Document AI × LLM × 評価」をどう組み合わせるか知りたい方 UpstageのDocument AIやWeaveに興味があり、まずは試しながら理解したい方
「Upstage DP x Syn Proを用いたドキュメント作業効率化シリーズ(with Weave)」を読み終えるとできるようになること Upstage Document Parse (DP) を使って、PDFやスキャン文書をLLMが扱いやすい構造化データ(HTML / Markdown)に変換できる Syn Pro(日本語特化 LLM) を活用し、 要約・項目抽出など のパイプラインを構築できる Weights & Biases Weaveを用いて、パイプライン全体のTrace(処理ステップの可視化) とEvaluation(自前テストデータによる自動評価)を回せるようになる
参考:GitHubリポジトリ fc_2025_upstage_handson(Fully Connected 2025 Tokyo ハンズオン用) 1. はじめに:なぜ「Document AI × LLM」が必要か 日本企業の現場では、いまだに紙・PDFベースの処理が大量にあります。 毎月、同じような申請書や見積書を“目で見て転記”している LLM / RAGを導入したが、紙データ → テキスト化の前処理が詰まっている 帳票のレイアウトが複雑で、通常の OCRではうまく扱えない
生成AIサービスが普及しても、現場にあるデータの多くは、 紙 スキャンPDF 表・図・段組を含む複雑帳票
といった 「そのままでは LLM が理解しづらい非構造データ」 です。 そこで本シリーズでは: DP:ドキュメント構造化・OCR Syn Pro:日本語 LLM による要約・抽出・質問対応 Weave:Trace / Evaluationによる可視化・評価
を組み合わせ 、「きちんと可視化&評価できるドキュメント処理パイプライン」 の構築を進めていきます。 2. Upstage Document Parse (DP) の役割 Upstage Document Parse(DP)は、PDFや画像のような非構造ドキュメントを構造化データへ変換します。 具体的には、 PDF / スキャン画像 / 表・段組を含むドキュメントを対象に 段落・見出し・表などのレイアウトを保持した状態で HTML / Markdown と言ったLLMが理解しやすい形式へ変換
を実施し、OCR(ドキュメントに含まれる文字情報を抽出)だけでなく、テーブル・グラフなどの情報抽出やその構造化を行います。 これにより LLMには以下の情報が伝わります: どこが見出しか どこが表か どんなColumn / Rowがあるか どこにチャートがあり、その意味は何か
そのため、構造を理解したうえで要約・抽出・質問対応ができるようになります。 Document AIの重要性については、Zenn記事 「Document AI が生成AI活用のカギ」 にも詳しい解説があります。 (例)2段落 + 複数表を含んだ「清掃見積もり概要ドキュメント」の構造化 DP を使うと、スマホで撮影した紙資料でも、段落構造・表構造を保持した HTML形式へと変換できます。詳細は fc_2025_upstage_handson:Step1 をご覧ください。 コード def upstage_document_parse(file_path: Annotated[str, Content]) -> str: "" " 📄 文書をHTMLに変換する関数
- Upstage Document AI API を利用
- ファイルを送信して OCR + HTML 化
" ""
Step 1. APIキーを環境変数から取得
api_key = os.environ.get( "UPSTAGE_API_KEY" ) if not api_key: raise ValueError( "❌ UPSTAGE_API_KEY が環境変数に設定されていません。" )
Step 2. 画像ファイルの読み込み
with open(file_path, 'rb' ) as file: files = { "document" : (os.path.basename(file_path), file, "image/jpeg" ) } data = { "model" : "document-parse-nightly" , "ocr" : "auto" , "output_formats" : "html" }
Step 3. APIリクエスト送信
response = requests.post( "https://api.upstage.ai/v1/document-ai/document-parse" , headers={ "Authorization" : f "Bearer {api_key}" }, files=files, data=data )
Step 4. 結果を JSON で取得してHTML部分を返す
result = response.json() return result.get( "content" , {}).get( "html" , "" )
======================================================
📁 1. 学習・テスト用のサンプル文書パスを設定
======================================================
SAMPLE_DOCUMENTS = [ "./demo_imgs/check/TEST_IMAGE.jpeg" , ]
part_1.md 2025 - 12 - 15
4 / 7 sample_file = SAMPLE_DOCUMENTS[ 0 ]
======================================================
🖼 2. HTML解析結果のプレビュー表示
======================================================
print( "# 🖼 HTML解析結果のプレビュー表示" ) display(HTML(html_result)) 入力(Before):スマホで撮影した清掃見積もり資料 2つの段落と複数の表が混在 照明や影が入った“実務でよくある紙文書” 一般的な OCRツールでは構造保持が難しいタイプ
出力(After):DPによるHTML構造化結果 DP に通すと、以下のようにLLMが理解しやすいHTML形式に自動変換されます。 段落構造が整理される 表(行・列)の構造がそのまま再現 テキストと表が正しい順序で並ぶ“LLM Ready”な状態へ
3. Syn Pro の役割 Syn Pro は、Upstage X KARAKURIが開発した 日本語特化の大規模言語モデル(LLM) です。日本語の文脈理解・文書処理タスクに最適化されており、DP(Document Parse)で構造化された文書と非常に相性が良いモデルです。 日本語特化の学習データで訓練されており、以下のようなタスクで高い性能を発揮します: 要約(Summarization) 情報抽出(Information Extraction) 質問対応(Classification) 業務文書の意図理解・項目推定(Question Answering)
(例)Syn Pro を用いた「文書タイプ説明」タスク コード def upstage_syn_pro(messages: list) -> str: "" " 🧠 LLMで応答を生成する関数
- Syn Pro モデルを使用
- messages には system / user ロールのプロンプトを含む
" ""
Step 1. APIキーを環境変数から取得
api_key = os.environ.get( "UPSTAGE_API_KEY" ) if not api_key: raise ValueError( "❌ UPSTAGE_API_KEY が環境変数に設定されていません。" )
Step 2. リクエストペイロードの構築
payload = {
part_1.md 2025 - 12 - 15
6 / 7 "model" : "syn-pro" , # "solar-pro2" , "messages" : messages, "temperature" : 0.7 , "max_tokens" : 16384 ,
"reasoning_effort" : "high" ,
}
Step 3. APIリクエスト送信
response = requests.post( "https://api.upstage.ai/v1/chat/completions" , headers={ "Authorization" : f "Bearer {api_key}" , "Content-Type" : "application/json" }, json=payload )
Step 4. 応答メッセージ部分のみを抽出して返す
result = response.json() return result[ "choices" ][ 0 ][ "message" ][ "content" ]
======================================================
📝 Step 1 LLMに渡すプロンプトを定義
------------------------------------------------------
- 文書全体をざっくりと要約して「どんな種類のドキュメントか」
を LLM に説明させるためのプロンプト
======================================================
PROMPT = "" " 文書内容を見て、どんなドキュメントかを1-2文で簡潔に説明してください。 " ""
======================================================
🧠 2. LLMに送信するメッセージの準備
------------------------------------------------------
- userロールで HTML内容とプロンプトを一緒に渡す
- HTMLは事前に upstage_document_parse() で取得済み
======================================================
explanation_messages = [ { "role" : "user" , "content" : f "# ドキュメント内容(HTML):\n{html_result}\n\n# プロンプト指 示:\n{PROMPT}" } ]
======================================================
☀ 3. Syn Pro による LLM 推論の実行
======================================================
print( "\n🧠 LLMの答え:" ) result = upstage_syn_pro(explanation_messages) print(result) 入力(Before):構造化された HTMLドキュメント DP(Upstage Document Parse)で変換済みのHTMLをLLMに渡します。 スマホ撮影した清掃見積もり資料を DP に通したHTML 2段落+複数表を含む「清掃見積もり概要ドキュメント」 ドキュメント説明に関するPROMPT
プロンプト(ドキュメント要約のための指示)
文書内容を見て、どんなドキュメントかを1-2文で簡潔に説明してください 出力(After):Syn Pro による文書内容の説明 このドキュメントは、建物清掃業務の見積金額を算定するための基準を示す資料です。 建物面積、機材使用、階数、作業日時、契約種別などに応じた基本料金、加算額、割引率を詳細に定めたもので、税抜・税込価格表や注意事項、事例を含む業界標準の料金体系を提供しています。 4. DP × Syn Pro で目指す世界観(まとめ) DP は 「生のドキュメントを整える職人」、Syn Pro は 「整った文書から意味を読み取る日本語エンジン」 です。 紙・スキャンPDF → DPで構造化(LLM Ready) → Syn Proで要約・抽出・質問対応 という流れが、実務で使えるドキュメントAIの基本形になります。 次のPart 2では、この組み合わせを使った要約・抽出・質問の具体例と、Weave Traceによる処理の可視化をご紹介します。 実際に「動くパイプライン」を見て理解を深めていきましょう。
Related posts
Browse all articles
Industry Upstage Team
保険毎日新聞:保険AI実装のリアル[Vol.5] AI-OCRから生成AIへ
Industry Upstage Team
保険毎日新聞:保険AI実装のリアル[Vol.5] AI-OCRから生成AIへ
Industry Upstage Team
AIはなぜ「業務に定着しない」のかローカルAI実装の課題とその現実解 - Yahoo! ニュース
Industry Upstage Team
AIはなぜ「業務に定着しない」のかローカルAI実装の課題とその現実解 -...
Excerpt shown — open the source for the full document.
Notability
notability 6.0/10Substantive post from Upstage AI