それでは設定ファイルを修正します。
コンフィグファイルのcors_config.jsonにおいて、見積シミュレータを有効にしたいサイトの “handler” を “estimate” に、”price_json” を “data/price-sample.json” とします。(price_json の値は任意のパス/ファイル名で構いません)
cors_config.jsonのサンプル(最終的にこのような記述になっていればOKです)
{ "sites": [ { "token": "XXXXXXXXXXXX", "allowed_origin": "https://kaiza.jp", "daily_limit": 100, "handler": "estimate", "price_json": "data/price-kaiza.json", "extra_dir": "kaiza", "extra_files": [ { "filename": "company.txt", "url": "https://kaiza.jp/company/" } ] }, { "token": "ZZZZZZZZZZZZZZZZZ", "allowed_origin": "https://sample.com", "daily_limit": 1000, "handler": "estimate", "price_json": "data/price-sample.json", "extra_dir": "sample", "extra_files": [ { "filename": "company.txt", "url": "https://sample.com/company/" }, { "filename": "price.txt", "url": "https://sample.com/price/" } ] }, { ・・・ } ] }
次にエクセルで価格表を作ります。
こんな表になっているとAIが理解しやすい形式に変換しやすいです。
できあがったらそれをCSVとして保存します。
価格表CSVをChatGPTに放り込んで次のプロンプトを入力します。
このCSVデータは、各制作物に関する価格表です。このCSVをもとに、各制作物ごとに「質問項目(questions)」と「価格計算式(calculate)」を含んだJSON形式を構築してください。 ### ルール: 1. 各行は1つの制作物に対応しています。 2. 「質問項目」は、CSVに含まれる入力条件(列名)から導出してください。質問は `"key"`、`"label"`、`"type"`(int/bool/choice)で記述してください。 3. choice型の項目は、選択肢(choices)を `"choices"` フィールドで列挙してください。 4. 「calculate」には、質問項目を使って価格計算式をPython風に記述してください。三項演算子や if を使って条件分岐も可能です。 5. ライティング有無・タイプなどの項目は、ネストされたキー(例: `writing.enabled`)で表現してください。 ### 出力フォーマット: ```json { "制作物名": { "questions": [ {"key": "キー名", "label": "表示ラベル", "type": "int|bool|choice", "choices": ["選択肢A", "選択肢B"]}, ... ], "calculate": "計算式" }, ... }
すると体系化されたJSONデータを返してくれると思います。
最終的に以下のようなJSONファイルができあがれば完成です。(ちなみにこのサンプルは当社の価格表です)
{ "WordPressサイト": { "questions": [ {"key": "pages", "label": "デザイン・コーディングページ数", "type": "int"} ], "calculate": "(98000 + pages * 40000) * 1.1" }, "LLMO(AI最適化)": { "questions": [ {"key": "plan", "label": "対応内容", "type": "choice", "choices": ["構造化データ対応のみ", "構造化データ対応+ページ構成見直し"]}, {"key": "pages", "label": "ページ数", "type": "int"} ], "calculate": "(100 if plan == '構造化データ対応のみ' else 8000) * pages + 48000" }, "記事自動生成&WP自動反映": { "questions": [ {"key": "plan", "label": "ページ内容", "type": "choice", "choices": ["テキストのみ", "アイキャッチ画像1点付き", "段落ごとアイキャッチ画像付き"]}, {"key": "pages", "label": "ページ数", "type": "int"} ], "calculate": "((40 if plan == 'テキストのみ' else (400 if plan == 'アイキャッチ画像1点付き' else 800)) * pages + 48000)" } }
このJSONファイルを cors_config.json の price_json に設定したディレクトリにアップロードします。
次は、このJSONに書かれたルールをAIに渡し、ユーザーと対話して見積に必要な条件をヒアリングさせ、最後に function call で計算プログラムを呼び出して見積金額を計算する流れをつくります。