🐥

【Streamlit×Azure Document intelligence】OCRができるwebアプリを作ってみる

2024/06/10に公開

やること

Azure Document intelligenceとStreamlitでOCRができるwebアプリを作ってみる

前提

  • Document intelligenceを構築済みであること

参考資料

https://zenn.dev/headwaters/articles/7865873c67b0ec
https://zenn.dev/headwaters/articles/8e23a752096c1e
https://zenn.dev/headwaters/articles/43b7f61006117c
https://zenn.dev/headwaters/articles/a3f87b54c25743

手順

  1. 以下のコマンドを実行する
mkdir streamlit
cd streamlit
python -m venv myenv
myenv\Scripts\activate
pip install streamlit openai azure-ai-formrecognizer azure-core
code .
  1. 以下のコードを書いたファイル(app.py)を作成
import streamlit as st
from azure.ai.formrecognizer import DocumentAnalysisClient
from azure.core.credentials import AzureKeyCredential

# Azureの設定を読み込み
endpoint = "<エンドポイント>"
api_key = "<APIキー>"

# クライアントを作成
client = DocumentAnalysisClient(endpoint=endpoint, credential=AzureKeyCredential(api_key))

# StreamlitのUI部分
st.title("OCR Webアプリ")

def analyze_document(file):
    with file:
        # 分析開始
        poller = client.begin_analyze_document("prebuilt-document", file)
        # 結果を取得
        result = poller.result()
    return result

# ファイルアップロード
uploaded_file = st.file_uploader("ファイルをアップロード", type=["pdf", "jpg", "png"])

# OCR開始ボタン
if st.button("OCRスタート") and uploaded_file is not None:
    result = analyze_document(uploaded_file)
    
    # 結果を表示
    for page in result.pages:
        st.write(f"ページ番号: {page.page_number}")
        for line in page.lines:
            st.write(line.content)
else:
    st.write("ファイルをアップロードして、OCRスタートボタンを押してください。")
  1. 以下のコマンドを実行
streamlit run app.py
  1. 以下にアクセスすると、Streamlitアプリが立ち上がることを確認
http://localhost:8501

  1. 以下の内容が書いたPDFをUpladをし、実行する
**ABC 株式会社 社内規定**
**第 1 章 総則**
第 1 条(目的)
本規定は、ABC 株式会社(以下、「会社」という)の業務運営および従業員の勤務に関する
基本的事項を定め、全従業員が規律を守り、業務の効率化と職場環境の向上を図ることを目
的とする。
第 2 条(適用範囲)
本規定は、会社に所属する全ての従業員に適用される。
**第 2 章 勤務**
第 3 条(勤務時間)
1. 会社の標準勤務時間は、午前 9 時から午後 6 時までとする。
2. 昼休みは午後 12 時から午後 1 時までの 1 時間とする。
3. 業務の都合により、上記の勤務時間を変更する場合がある。
第 4 条(休暇)
1. 年次有給休暇は、法定の基準に従い付与する。
2. その他の休暇(産前・産後休暇、育児休暇、介護休暇等)は、労働基準法および関連法令
に基づき付与する。
**第 3 章 業務遂行**
第 5 条(職務遂行)
1. 従業員は、職務に対し誠実に取り組み、業務遂行にあたっては効率と品質を重視するこ
と。
2. 会社の財産や機密情報を適切に管理し、不正利用を行わないこと。
第 6 条(報告義務)
従業員は、業務に関連する重要事項について速やかに上司に報告しなければならない。
**第 4 章 職場環境**
第 7 条(ハラスメント防止)
1. 会社は、職場におけるハラスメントを禁止し、全従業員が安心して働ける環境を提供す
る。
2. ハラスメントの疑いがある場合、従業員は速やかに上司または人事部に報告すること。
第 8 条(安全衛生)
1. 会社は、安全で健康的な職場環境を維持するために必要な措置を講じる。
2. 従業員は、安全衛生に関する規定を遵守し、事故防止に努めること。
**第 5 章 懲戒**
第 9 条(懲戒処分)
1. 従業員が本規定に違反した場合、会社はその行為の内容に応じて懲戒処分を行うことが
できる。
2. 懲戒処分の種類には、戒告、減給、停職、解雇などが含まれる。
**第 6 章 規定の改廃**
第 10 条(改廃手続)
本規定の改廃は、必要に応じて会社の経営会議の承認を経て行うものとする。
附則
本規定は、2024 年 5 月 18 日より施行する。
---
以上が ABC 株式会社の基本的な社内規定となります。この規定は、従業員が業務を円滑に
遂行し、健全な職場環境を維持するための指針として機能します。従業員は本規定を熟読し、
遵守することが求められます。

  1. 以下のようにOCRした結果が表示されることを確認


まとめ

さくっとOCRができるWebアプリを作成しました。
徐々にStreamlitを使えるようになってきてうれしい。

ヘッドウォータース

Discussion