本記事はこちらのブログを参考にしています。
翻訳にはアリババクラウドのModelStudio(Qwen)を使用しております。
現代のデータ駆動型社会において、光学式文字認識(OCR)は画像やスキャンされた文書からテキストを自動的に抽出する上で重要な役割を果たしています。請求書、レシート、フォーム、その他の種類の文書に関わる作業であっても、OCRは非構造化データを構造化され、機械で読み取り可能な形式に変換することでワークフローを大幅に効率化できます。このブログ記事では、QWEN VL、アリババクラウドのModel Studio、およびFunction Computeを使用してOCRソリューションを展開する方法について説明します。
ステップ1
このリンクを使用して、無料でModel Studioを有効化してください。次にAPIキーを作成します。
ステップ2
APIキーの作成と取得
- ページの右上にある
にカーソルを合わせ、「API-KEY」を選択します。
- 左側のナビゲーションペインで「すべてのAPIキー」または「マイAPIキー」を選択し、APIキーを表示または作成します。「マイAPIキーを作成」または「既存のAPIキーを表示」をクリックします。
注意
「すべてのAPIキー」ページは、アリババクラウドアカウントを使用している場合のみ利用可能です。アリババクラウドアカウントはすべてのRAMユーザーのAPIキーを取得できますが、RAMユーザーは自身のAPIキーしか取得できません。APIキーは安全に保管し、不正使用によるセキュリティリスクや財務損失を避けてください。APIキーは重要な資産です。必ず安全に保管してください。「操作」列の「削除」をクリックして既存のAPIキーを削除した場合、そのキーを使用してModel Studioサービスを利用することはできなくなります。このキーに関連付けられたすべてのアプリケーションやサービスは動作しなくなります。
ステップ3
OCRサンプルアプリケーションのデプロイ
前提条件
- nodejsバージョン22をインストール (LinuxにNode.js v22をインストールするためのステップバイステップガイド)
- npmをインストール
- serverless devをインストールおよび設定 (クイックスタート - Function Compute - アリババクラウドドキュメントセンター)
手順
- このGitHubリポジトリからサンプルコードをダウンロードします。
- コードを解凍します。
-
s.yaml
ファイル内のコードを変更します。yaml
edition: 3.0.0
name: fc3-example
access: default
resources:
fcDemo:
component: fc3
props:
region: ap-southeast-5
handler: handler
role: acs:XXXX:role/aliyunfcdefaultrole # XXXXにメインアカウントUIDを入力
disableOndemand: false
description: OCR
timeout: 120
diskSize: 512
internetAccess: true
customRuntimeConfig:
port: 9000
command:
- python3
- app.pylogConfig: # slsでログプロジェクトを定義してFCのログを有効にする
enableRequestMetrics: true
enableInstanceMetrics: true
logBeginRule: DefaultRegex
project: serverless-ap-southeast-5-xxx
logstore: default-logs
functionName: ocr-qwen
runtime: custom.debian10
cpu: 1
instanceConcurrency: 100
memorySize: 1024
environmentVariables:
PATH: >-
/var/fc/lang/python3.10/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin:/opt/bin:/code:/code/bin
PYTHONPATH: /opt/python_disabled:/code/python_disabled:/code
OSS_BUCKET: yourossbucket # あなたのOSSバケット名を入力
TZ: Asia/Jakarta
USER_PASSWORD: # ログインページを有効にする場合に使用
DASHSCOPE_API_KEY: sk-xxx # ここにAPIキーを入力するか、FC設定 -> 環境変数に設定
USER_NAME: # ログインページを有効にする場合に使用
OSS_ENDPOINT: https://oss-ap-southeast-1.aliyuncs.com # OSSシンガポールエンドポイント
ENABLE_LOGIN: false
code: ./ocr-qwen
triggers:
- triggerConfig:
methods:
- GET
- POST
- PUT
- DELETE
authType: anonymous
disableURLInternet: false
triggerName: httpTrigger
description:
qualifier: LATEST
triggerType: http
変更が必要なコード:
10行目:role: acs:ram::XXXX:role/aliyunfcdefaultrole # XXXXにメインアカウントUIDを入力
36行目:OSS_BUCKET: yourossbucket # あなたのOSSバケット名を入力
39行目:DASHSCOPE_API_KEY: sk-xxx # ここにAPIキーを入力するか、FC設定 -> 環境変数に設定
- サーバーレスデプロイを使用してコードをデプロイします:bash
s deploy s.yaml
デプロイ成功時の結果:bash
[2025-03-14 12:24:59][WARN][s_cli] rootユーザーとしてコマンドを実行することは推奨されません。(node:46363) [DEP0060] DeprecationWarning: util._extend
APIは非推奨です。代わりにObject.assign()を使用してください。(詳細を表示するにはnode --trace-deprecation ...
を使用してください)
⌛ [deploy] のステップ [fc3-example]
Downloading[/v3/packages/fc3-domain/zipball/0.0.26]...
Download fc3-domain successfully
(node:46363) [DEP0040] DeprecationWarning: punycode
モジュールは非推奨です。代わりにユーザーランドの代替を使用してください。ヒント:
s info
を使用するとさらに詳細を確認できます。
✔ [fcDemo] completed (9.51s)
🚀 [deploy] の結果 [fc3-example]
region: ap-southeast-5
cpu: 1
customRuntimeConfig:
command:
- python3
- app.py
port: 9000
description: OCR
diskSize: 512
environmentVariables:
DASHSCOPE_API_KEY: sk-xxx
ENABLE_LOGIN: false
OSS_BUCKET: yourossbucket
OSS_ENDPOINT
ドメインの追加とアプリケーションのテスト
Qwen-VL を OCR に使用し、Model Studio と Function Compute をサーバーレス実行環境として組み合わせることで、さまざまなビジネスニーズに合わせた拡張性があり、効率的でコスト効果の高い OCR ソリューションを構築できます。このアプローチは、Qwen-VL と Function Compute の強みを活用し、最小限のインフラ管理で堅牢な OCR システムを提供します。