この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。OpenAIのStructured Outputsに関する公式情報を確認し、旧版の「計算過程をLLMへ書かせる」方式を、ルール・計算・出力を分離する設計へ見直しました。検証ステータス:📘 公式情報確認済み/個別料金ルールでの計算検証は未実施
割引、会員ランク、キャンペーン、税、端数処理が重なると、自然言語だけで計算ルールを運用するのは危険です。LLMは条件整理に使えても、金額の最終計算は決定的なコードへ寄せます。
3つに分ける
| 層 | 役割 |
|---|---|
| 決定表 | どの条件で何を適用するか固定 |
| 計算コード | 順序・丸め・税計算を実行 |
| 構造化出力 | 適用ルールと結果を機械可読に返す |
先に決定表を作る
| rule_id | condition | operation | order |
| R01 | coupon=true | 10% discount | 10 |
| R02 | rank=gold | 5% discount | 20 |
| R03 | taxable=true | add tax | 30 |
適用順序や端数処理までルールとして管理し、LLMの都度判断にしません。
LLMは入力整形と説明に使う
ユーザーの自然言語を決定表の入力値へ変換したり、適用されたrule_idを人向けに説明したりする用途へ分けます。最終金額は計算コードの結果を正本とします。
まとめ
複雑な計算では、思考過程を長く出力させるより、ルールを決定表に固定し、計算をコードに任せ、結果だけを構造化して受け渡す方が検証しやすくなります。
公式情報・一次情報
この記事の更新履歴
- 2026-09-13 追加:決定表・計算コード・構造化出力の3層分離を追加。
- 2026-09-13 変更:LLM計算中心から決定的な計算処理中心へ変更。
- 2026-09-13 削除:内部メタ情報、本文H1、CoT出力、固定税率を含む未検証例を削除。

