OCR用AIプロバイダのマルチ登録・フェイルオーバー(Gemini/OpenAI/Anthropic) #11

Closed
opened 2026-09-27 10:32:09 +00:00 by joe · 1 comment
Owner

要望

Gemini APIがQuotaLimitや障害で使えないとき、他プロバイダへ自動フェイルオーバーしたい。最大3系統を登録可能にする。

設計

  • 環境変数: GEMINI_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY(設定されたもののみ有効)
  • 優先順位: Gemini(gemini-2.5-flash-lite)→ OpenAI(gpt-4o-mini)→ Anthropic(claude-haiku)
  • 1プロバイダがAPIエラー・JSONパース失敗・Quota超過で失敗したら次へ。全滅ならReceiptOCRError→手入力フォールバック(既存挙動)
  • スキャン画面に有効なプロバイダ一覧を表示
  • 依存追加: openai, anthropic

影響範囲

  • app/services/receipt_ocr.py — プロバイダdispatch層を追加
  • app/__init__.py — OPENAI_API_KEY/ANTHROPIC_API_KEYのconfig読み込み
  • app/routes/expenses.py, estimates.py — api_keys dictを渡す形に
  • スキャン画面テンプレート — 有効プロバイダ表示
## 要望 Gemini APIがQuotaLimitや障害で使えないとき、他プロバイダへ自動フェイルオーバーしたい。最大3系統を登録可能にする。 ## 設計 - 環境変数: `GEMINI_API_KEY` / `OPENAI_API_KEY` / `ANTHROPIC_API_KEY`(設定されたもののみ有効) - 優先順位: Gemini(`gemini-2.5-flash-lite`)→ OpenAI(`gpt-4o-mini`)→ Anthropic(`claude-haiku`) - 1プロバイダがAPIエラー・JSONパース失敗・Quota超過で失敗したら次へ。全滅ならReceiptOCRError→手入力フォールバック(既存挙動) - スキャン画面に有効なプロバイダ一覧を表示 - 依存追加: `openai`, `anthropic` ## 影響範囲 - `app/services/receipt_ocr.py` — プロバイダdispatch層を追加 - `app/__init__.py` — OPENAI_API_KEY/ANTHROPIC_API_KEYのconfig読み込み - `app/routes/expenses.py`, `estimates.py` — api_keys dictを渡す形に - スキャン画面テンプレート — 有効プロバイダ表示
Author
Owner

実装しました。mainにマージ済み。

仕様

  • 環境変数 GEMINI_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY(.envでも可)に設定されたものだけが有効
  • 呼び出し順: Gemini(gemini-2.5-flash-lite)→ OpenAI(gpt-4o-mini)→ Anthropic(claude-haiku-4-5)
  • Quota超過・APIエラー・不正JSONなど、いずれかの失敗で次のプロバイダへ自動フェイルオーバー。全滅時は従来どおり手入力フォームへフォールバック
  • スキャン画面に有効プロバイダを表示(例: 「Gemini → OpenAI」)
  • 領収書OCR・見積書OCRの両方に適用

追加依存: openai, anthropic。テスト55件パス。OpenAI/Anthropicのキーを.envに追加すれば即座にフェイルオーバー対象になります。

実装しました。`main`にマージ済み。 ## 仕様 - 環境変数 `GEMINI_API_KEY` / `OPENAI_API_KEY` / `ANTHROPIC_API_KEY`(`.env`でも可)に設定されたものだけが有効 - 呼び出し順: Gemini(`gemini-2.5-flash-lite`)→ OpenAI(`gpt-4o-mini`)→ Anthropic(`claude-haiku-4-5`) - Quota超過・APIエラー・不正JSONなど、いずれかの失敗で次のプロバイダへ自動フェイルオーバー。全滅時は従来どおり手入力フォームへフォールバック - スキャン画面に有効プロバイダを表示(例: 「Gemini → OpenAI」) - 領収書OCR・見積書OCRの両方に適用 追加依存: `openai`, `anthropic`。テスト55件パス。OpenAI/Anthropicのキーを`.env`に追加すれば即座にフェイルオーバー対象になります。
joe closed this issue 2026-09-27 10:34:02 +00:00
Sign in to join this conversation.
No labels
bug
cleanup
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joe/sougi#11
No description provided.