家計診断AIのプロンプト最適化に挑戦──Difyの月間API上限に到達するまでの開発記録

家計診断Pro

今回の開発ブログでは、家計診断アプリ(総合評価AI) のプロンプトチューニングを数日かけて行い、Dify Sandbox の API 上限に到達し、診断が停止する ところまでの記録をまとめました。


評価ロジックの再設計から開始

まず最初に取り組んだのは、総合評価プロンプトの「採点ルール」を厳密化することでした。

  • 収入の判定基準(年齢×10倍以上 → A など)
  • 住居費・借入・支出などのP/L項目
  • 現金・流動資産・負債などのB/S項目

特にこだわったのが、
**「summary_markdown の記述が必ず per_metric と一致する」**という整合性ルール。

AIは意外とズレた説明を書きやすいため、
強制的に一致させるルールをSYSTEMに組み込みました。


評価テーブルの総再構築(UIと完全連動)

次に、UI側のテーブル項目と完全一致させるために、以下を実装。

  • 年齢・家族構成の追加
  • stats(賃上げ率、物価変動率、期待利回り)
  • イベント行の追加(イベントが無い年も必ず表示)
  • 固定資産・教育費などの「基準のない項目」も必ず表示
  • 無担保長期負債・負債合計などの新規項目を評価対象化

最終的に、WebとPDFで表の並び順を揃えるところまで到達。


FP相談コメントの条件分岐も完全自動化

FP相談コメントについても

  • A → 表示しない
  • B → ご検討ください
  • C → お勧めします

という微妙な表現の違いにも対応。

さらに、
「FPや金融機関」→「FPや専門家」
とするなど、ユーザー目線への調整も実施しました。


PDF側の整形(Markdown → HTML変換)を完全刷新

PDFでは

  • 表の罫線が出ない
  • リストが崩れる
  • 下に余計な表が出る

といった問題が発生していたため、

  • window.marked.parse() を採用
  • <table> のborder追加
  • 余計なper_metric表をPDFから除外

といったフロント側の改善も行いました。

結果、印刷物として通用するレベルのPDFに。


しかし…Dify Sandbox の「月3000リクエスト上限」に到達

最終調整の段階で突然診断が動作しなくなり、
以下の通知が届きました。

Monthly API Rate Limit for the Sandbox Plan (limit: 3000) has been exceeded.

つまり:

  • $3.62しかOpenAI費用は使っていないのに
  • Dify側の「月間リクエスト回数」だけが制限に達した

という状態。

開発段階で何度も診断を走らせたため、
3000 回を超えてしまったようです。


今後の方針:OpenAI API の「直叩き」に移行

DifyのSandboxはとても便利ですが、

  • 月3000回まで
  • 超えるとAPIが停止
  • 開発フェーズには厳しすぎる

という課題が見えてきました。

そこで次回は、
OpenAI APIを WordPress から直接叩く方式に移行します。

コメント