================ Excel アドイン編 ================ 本章では、ChatGPT を例に、Nuorium Optimizer Excel アドインの設定手順を自動生成する方法を解説します。 **基本的な考え方**: LLM は「構造ルール( ``nuorium_excel_addin_llm.txt`` )」+「実データ(Excel ファイル)」+「意味(PySIMPLE コード)」の3点が揃って初めて正しく動作します。どれか1つが欠けると誤答率が大幅に上がります。 1. ファイルを準備する ====================== 以下の3つのファイルを用意します。 .. list-table:: :header-rows: 1 :widths: 10 30 60 * - # - ファイル - 役割 * - 1 - PySIMPLE コード(例: ``sample.py`` ) - モデルの意味(集合・パラメータ・変数・制約の定義)を伝える * - 2 - Excel ファイル(例: ``data.xlsx`` ) - 実際のデータ配置とセル構造を伝える * - 3 - ``nuorium_excel_addin_llm.txt`` - アドインの入出力ルール(次元定義・範囲選択制約・操作手順)を伝える .. warning:: 3つ揃わないと正しく解釈されません。特に ``nuorium_excel_addin_llm.txt`` は構造ルールを与える役割であり、これがないと LLM は範囲選択の制約(連続矩形、隣接列等)を把握できません。 .. raw:: latex \newpage 2. 生成AIサービスにアップロードする ==================================== 1. ChatGPT で新しいチャットを開始する 2. ファイルアップロードボタンをクリックし、上記3ファイルを **すべて** アップロードする .. raw:: latex \newpage 3. プロンプトを入力する ======================== 以下のプロンプトをそのまま入力します。 **プロンプトテンプレート** .. code-block:: text 添付ファイル(PySIMPLEコードとExcelと設定ガイド)をもとに、 Excelアドインの設定方法を説明してください。 以下の条件を守ってください: - 「添字 → 入力 → 出力」の順で説明する - 各ステップで操作手順を番号付きで書く - 必ずセル範囲(例:A1:B10)を明示する - なぜその順序になるのかも簡潔に説明する - 初心者でも再現できる粒度で書く .. raw:: latex \newpage 4. 出力内容を確認する ====================== 生成AIの回答をそのまま使わず、以下のチェックリストで確認します。 .. list-table:: :header-rows: 1 :widths: 5 55 40 * - # - チェック項目 - 不備の例 * - 1 - セル範囲が具体的に書かれているか - 「適切な範囲を選択」のような曖昧な記述 * - 2 - 2D(表)が「行ラベル+列ラベル+値」になっているか - 値セルだけを選択し、見出しが含まれていない * - 3 - 1D が「添字+値の2列」になっているか - 値列だけ、または添字列だけの選択 * - 4 - 添字が最初に設定されているか - パラメータ登録が添字登録より先になっている .. raw:: latex \newpage 5. 注意事項 ============ .. warning:: 生成AIの回答は必ずしも正しいとは限りません。最終的な設定は必ず人間が確認してください。 生成AIが誤る代表的なケース: - **Excel 構造の解釈ミス** — セル結合や空行の存在を見落とし、範囲がずれる - **添字と値の対応の取り違え** — 行と列の添字を逆に解釈する - **範囲選択の制約の無視** — 非連続列の選択や、見出し行の省略を提示する .. raw:: latex \newpage ベストプラクティス =================== 共通ガイドラインについては PySIMPLE 編の :ref:`共通ガイドライン ` を参照してください。 以下は Excel アドイン固有のガイドラインです。 Excel アドイン固有ガイドライン ------------------------------- 1. **3ファイルを必ずセットでアップロード**: PySIMPLE コード・Excel ファイル・ ``nuorium_excel_addin_llm.txt`` のどれが欠けても誤答率が上がる 2. **添字は必ずデータより先に登録**: 入力データ・出力データの登録前に、使用する添字(集合)を全て登録する 3. **次元を数式モデルと正確に対応させる**: 添字なし → 0D、添字1つ → 1D、添字2つ → 2D 4. **範囲選択は必ず連続矩形・隣接列**: 非連続列の選択は不可。1D は添字列と値列が隣接していること 5. **見出し行/列を範囲に含める**: ラベル行・列を選択範囲に含めること 6. **出力範囲の添字順をモデル定義と一致させる**: 行見出し・列見出しの添字がモデル側の定義順と同じであること 7. **生成AIの出力は必ず人間が検証する**: セル範囲・次元・添字順が正しいか、最終確認は人間が行う