AyumuOgasawara / receipt-scanner-model

家計簿アプリのレシート画像から合計金額、店名、出費カテゴリを出力するOCRモデル
0 stars 0 forks source link

pre-signed-urlを引数とし、レシートの詳細を返すAPIを作成 #38

Open AyumuOgasawara opened 16 hours ago

AyumuOgasawara commented 16 hours ago

概要

Next.jsの方で、pre-signed-urlを作成している。それをpythonに送って、pythonからは、レシートの詳細を返したい。 現在FastAPiでAPIを作っているため、そこに追加する。

エンドポイントは以下を考えている メソッド エンドポイント リクエスト リスポンス
POST /receipt-analyze {pre_signed_url: string} {receipt-detail : ReceiptDetail}
AyumuOgasawara commented 16 hours ago

現在、receipt-analyzeを合計金額とOCR結果を返すapiのエンドポイントと使用しているため、その名前をget-total-textにする。

AyumuOgasawara commented 13 hours ago

pydantic.errors.PydanticUserError: Please use typing_extensions.TypedDict instead of typing.TypedDict on Python < 3.12.

typedDictを使ったら以下のようなエラーが出たため、pytohon3.11.9から3.12.4にアップグレードした

AyumuOgasawara commented 13 hours ago

requestsを使って、プレサインURLをbytesに変換する

参考 https://atmarkit.itmedia.co.jp/ait/articles/2209/27/news035.html

AyumuOgasawara commented 13 hours ago

ReceiptAnalyzationResponseを返すことによって、エラーがあった際医にそれも変えるようにした。わからないエラーだけraiseするようにしている。


class PreSignedURL(BaseModel):
    pre_signed_url: str

class Error(BaseModel):
    code: int
    message: str

class ReceiptAnalyzationResponse(BaseModel):
    receipt_detail: analyze.ReceiptDetail | None
    error: Error | None