← 添削アプリへ戻る

手書き対応の初回設定

この設定はアプリを管理する人が最初に1回行います。以後はiPadのいつものアプリで使います。今ある配置・添削文・手書きペンの保存形式は引き継ぎます。

手書き読み取りにはMicrosoft Azureを使います。指定した元の答案ページの画像をCloudflare経由でAzureへ送信し、文字と位置を取得します。利用量・プランによって料金が発生します。読める精度は実際の答案で確認してください。自動で採点を判断する機能ではありません。

1 Azureの読み取りサービスを用意する

  1. Azureの管理画面を開く。Microsoftアカウントでログインし、Azureの利用登録をします。
  2. 画面上部の検索で Document Intelligence を探し、そのリソースを作成します。リージョン・料金プランは自分の利用条件に合わせて選び、料金と利用上限を確認してください。サービス名がFoundry内に表示される場合も、Document Intelligenceのリソースを選びます。
  3. 作成したリソースの「キーとエンドポイント / Keys and Endpoint」を開きます。KEY 1 と Endpoint を、この後のCloudflare設定へコピーします。

Endpointは https://リソース名.cognitiveservices.azure.com/ の形です。キーとEndpointは同じリソースのものを使います。

APIキーをチャット・添削文・公開ファイルへ貼り付ける必要はありません。次のCloudflareの暗号化設定へ直接入力します。

2 アプリの利用パスワードを作る

このパスワードを知る人だけが手書き読み取りを実行できます。AzureのAPIキーとは別のものです。

20〜128文字の英数字・ハイフン・アンダーバーが使えます。

この値はCloudflareと、iPadの添削アプリの両方で使います。パスワード管理アプリなど、自分で見返せる場所へ保管してください。この画面を閉じると表示は消えます。

3 Cloudflareに3つの値を登録する

  1. 添削アプリのCloudflare管理画面を開きます。
  2. Settings → Variables and Secrets → Add を開きます。環境は Production を選びます。
  3. 下の3項目を1つずつ登録します。値を入れたら Encrypt / Secret を選び、保存してください。
変数名(そのままコピー)入力する値
AZURE_DOCUMENT_ENDPOINTAzureのEndpoint
AZURE_DOCUMENT_KEYAzureのKEY 1
HANDWRITING_PASSWORD上で自分用に作った利用パスワード

ここまで保存した後、Create deployment → Production で今回の pdf_comment_placer_mobile.zip を選び、Save and Deploy を押します。ZIPは展開せず使います。すでにZIPを反映済みでも、設定を追加した後はもう一度反映してください。

このZIPには、Cloudflareで動く読み取り用プログラムも入っています。ZIPだけで更新でき、パソコンへ新しい開発ツールを入れる必要はありません。

4 iPadで1件試す

  1. いつもの添削アプリを開き直し、上部の v33 を確認します。ホーム画面への追加はやり直しません。
  2. 「4 指示から自動で赤線を引く」の「文字の読み取り方法」を 手書き対応で読む に切り替えます。
  3. 利用パスワードを入力し、「設定を確認」を押します。答案を送らず、Azureのモデル情報の取得で接続先・キーの利用を確認します。答案の読み取りは実行しません。
  4. 最初は答案の1ページにある指摘だけを貼り付けます。送信・料金の確認にチェックし、「指示から赤線を作る」を押します。
  5. 配置済み/未配置の理由と実際の線の位置を確認し、よければ他のページも処理します。最後に「PDFを保存」を押します。

判読確度が93%未満、位置が不明、同じ語句が複数、文字が傾いている、余白が足りない箇所は線を引きません。APIが高い確度を返しても、読み間違いの可能性はあるので仕上がりを確認してください。

同じ答案の結果はアプリを開いている間だけ再利用します。画面を開き直す・別の答案を選ぶ・読取結果を消すと、次回は再読取になります。利用パスワードはこのタブ内で保持し、次の答案と再読み込みにも引き継ぎます。「保持した利用パスワードを消す」で削除できます。配置設定や料金記録には書き出しません。

エンドポイント・ネットワーク設定とは

エンドポイント=Azureの読み取り機能の接続先URLです。Azureの対象リソース →「キーとエンドポイント」にある https://リソース名.cognitiveservices.azure.com/ の値を使います。v33の「設定を確認」を押すと、アプリが使った接続先を「接続先と確認結果」で確認できます。

ネットワーク設定=Azureが、どこからの接続を許可するかです。このアプリはCloudflareのサーバーからAzureへ接続します。確認する場所は、Azureの対象リソース →「リソース管理」→「ネットワーク / Networking」です。

一般的な「通信に失敗」という表示だけで、この設定が原因だとは判断できません。まず下の接続確認を使い、結果に合う項目だけを確認してください。

接続できないときの確認

  1. 今回のZIPをProductionへ反映し、アプリ上部が v33 になっていることを確認します。
  2. 利用パスワードを入力し、設定を確認(答案は送らない) を押します。PDFは開かなくても確認できます。
  3. 成功したら、答案1ページの読み取りを試します。失敗したら 接続先と確認結果 → 確認結果をコピー の内容をチャットへ貼り付けてください。キー・利用パスワード・答案の内容は含みません。
確認結果確認する内容
キーに使えない文字
KEY_FORMAT
Azureの「キー1」の右にあるコピーを押し、Cloudflareの AZURE_DOCUMENT_KEY へ直接貼り付けます。伏せ字・利用パスワード・項目名は貼り付けません。
接続先URLの形式
ENDPOINT_FORMAT
Azureのエンドポイントを AZURE_DOCUMENT_ENDPOINT へコピーします。リソース管理画面のURLではありません。
キーを受け付けない
AZURE_AUTH / 401
同じDocument Intelligenceリソースのキーと接続先が対になっているか確認します。
ネットワークの接続制限
AZURE_NETWORK_RULE / 403
Azureから接続制限の理由が返された場合です。対象リソースの「ネットワーク」の現在の選択内容を確認します。設定を変更する前に、その画面を確認してください。
アクセス拒否
AZURE_FORBIDDEN / 403
アクセスが拒否されたことは確認できますが、権限・契約状態・ネットワーク制限のどれかはまだ確定していません。確認結果を使って調べます。
接続先が見つからない・暗号化通信・通信切断表示された接続先URLがAzure画面の値と同じか確認し、確認結果をコピーします。読み取り開始を連続で再実行しないでください。
AZURE_FETCH_FAILED通信処理で失敗していますが、原因は未特定です。確認結果をコピーしてください。ネットワーク設定を原因と決めつけません。

Cloudflareで接続設定を直した場合は、保存した後、同じv33のZIPを再びProductionへ反映します。利用パスワードが違う場合は、Azureのキーではなく自分で決めた利用パスワードをアプリへ入力します。

v33は、接続先・キーをコピーしたときに混じった空白・改行・見えない区切り文字を除去します。全角文字や伏せ字から元のキーを推測することはできないため、入力形式の問題として案内します。補正した場合は確認結果にも表示します。

APIの設定や通信が途中で失敗した場合、実行前の自動赤線・手書きは変更しません。画像送信を自動で再試行しません。接続確認の成功だけでは実際の答案の読み取り精度までは確認できません。

確認に使った公式資料:日本語・英語の手書き対応 / 読み取りAPI / Cloudflareの暗号化設定 / Azureのネットワーク設定 / ZIP更新と読み取り用プログラム / Azureの料金

返事待ちで時間切れになった場合

v33は画像送信後の受付を最大90秒待ちます。受付済みなら、この画面を閉じずに再実行すると画像を再送せず結果の取得を続けます。受付の返事自体が届かなかった場合は、自動再送を止めます。受付情報の削除・アプリの再読込・PDFの選び直しでは再送になる場合があり、追加料金の可能性があります。