albatrosary's blog

UI/UXとエンタープライズシステム

業務システムにおけるプロンプトチューニング最適化の素案

1. はじめに

業務システム(企業の基幹システム)の開発において、AIを活用したコード生成を最適化するために、プロンプトチューニングの手法を確立する。本提案では、システム設計に必要な主要6要素と、より精度を高めるための補助3要素を定義する。

2. 基本となる6要素

AIによる業務システム開発を効率化するため、以下の6要素をプロンプトに含める。

2.1 オペレーター(Operators)

誰が使うかを明確にすることで、認可制御(RBAC)やUI設計のブレを防ぐ。

例: システム管理者、一般ユーザー、経理担当者 など。

2.2 シナリオ(Scenarios)

業務フローを明確にし、機能の優先度やエラー処理を決定する。

例: 保険申込 → 承認 → 契約成立 → 更新 など。

2.3 パラメーター(Parameters)

フレームワークやクラウド環境などの制約を明確にし、技術選定を最適化する。

例: Spring Boot + MyBatis(バックエンド)、React(フロントエンド)、AWS(クラウド環境)。

2.4 コア(Cores)

業務データの構造を定義し、データベースやモデル設計の精度を向上させる。

例: 顧客テーブル(ID、氏名、住所、契約情報)など。

外部システムとの連携を明確にし、API設計や依存関係の整理を行う。

例: 他社のAPIを利用したクレジットカード決済機能。

2.6 アウトプット(Outputs)

システムの出力を明確にし、UIやレポート形式を決定する。

例: PDFでの請求書出力、CSVデータエクスポート。

3. AIのコード生成精度を向上させる補助3要素

上記の6要素に加えて、AIの出力をより安定させるために、以下の3つの要素を追加する。

3.1 制約条件(Constraints)

システム全体の設計方針や非機能要件を定義し、AIの生成するコードの方向性を統一する。

例:

  • セキュリティ: OAuth2.0認証、IP制限
  • パフォーマンス: 1秒以内のレスポンス制約
  • スケーラビリティ: マイクロサービス構成
3.2 ライフサイクル(Lifecycle)

業務データの「生成→利用→更新→削除」の流れを整理し、データ管理を最適化する。

例:

  • 請求データ: 作成 → 承認 → 支払い → アーカイブ
  • 契約管理: 申込 → 審査 → 契約成立 → 更新 or 解約
3.3 異常系(Failure Scenarios)

想定されるエラーや異常時の振る舞いを明確にし、例外処理を適切に実装する。

例:

  • APIのタイムアウト時のリトライ戦略
  • DB接続失敗時のフェイルオーバー処理
  • ユーザー入力エラーのバリデーションルール

4. まとめ

本提案では、業務システム開発におけるプロンプトチューニングの最適化を図るため、6つの基本要素と3つの補助要素を定義した。このフレームワークを活用することで、AIがより精度の高いコードを生成し、業務システムの開発効率を向上させることが期待できる。

今後は、実際の業務システムを題材にプロンプトの最適化を進め、AIによるコード生成の精度を検証していく予定である。


AIの設計能力には矛盾のチェック機能もあるので、シナリオに矛盾があったり、論理的に破綻している部分があれば、可能な限り指摘します。ただし、完全に気づかずに実装してしまう可能性もゼロではないので、その辺りを説明します。

AIの矛盾チェックの仕組み

論理的整合性: シナリオのステップやルールが一貫しているか、因果関係が崩れていないかを確認します。

例: 「ログインしていないユーザーがカートに商品を追加できる」と「ログイン必須」が混在していたら、「これ矛盾してませんか?」と指摘します。

要件の曖昧さ: シナリオやルールが不明確で解釈が複数ある場合、「ここどういう意図ですか?」と質問します。

現実性: 実装する上で物理的・技術的に無理がある場合(例: 「承認前に却下が可能」)、その矛盾を指摘します。

矛盾に気づかず実装するケース

暗黙の前提を見逃す: AI がシナリオの背景や意図を完全に把握できず、当たり前だと思っている前提を見逃すと、矛盾に気づかないまま進む可能性があります。

複雑すぎる場合: シナリオが非常に複雑で、矛盾が埋もれてしまうと、見落とすリスクが上がります。

矛盾の指摘例: 「ログインしていない場合にカートに追加できる」と「ログイン必須」が混ざっていたら、「シナリオ1と2が矛盾してるみたいです。ログイン必須ですか?」と聞きます。

気づかず実装: 「購入を取りやめる場合、カートを空にする」と書いてあるのに、その後の「商品一覧に戻る」が独立してることを見逃して、カートクリアを必須処理として実装してしまうかも。

どうすればベストか

AIが気づいたら: 「ここ矛盾してるかも」と指摘して、確認します。

気づかなかったら: 実装結果を見て「意図と違う」と気づいたときに教える。そこから修正します。

予防策: シナリオを渡すときに「これで矛盾ないか見て」と一言添えてると、特に注意深くチェックします。