
タイトルからして分かるようにかいていません(笑)
ブログなので書きたいことを書きました。
しかも長文で^^;
コーディングやLLM(AI:Claude)に興味が有る方は、
私のプロンプト・エンジニアリングを掲載していますので御覧ください。
意味わからんというかたはイイネ無しで閉じて頂いても大丈夫です^^;
-----------------------------------------------------
この5週間をかけてAIをコーディングパートナーとして取り組んでいた
ネクストエンジンの在庫情報をGoogleスプレッドシートとクラウドでAPI接続する
のも本日のお昼に成功致しました\(^o^)/
何言っているかわかりませんよね^^;
ですが、私は何年来の宿題が想像を絶するパフォーマンスで解決できたことに興奮しております(・・;)
EAIであるTepsを使用していたことはありますが、
当時はその方法しか無かったのかもしれませんが、
動作がかなり緩慢でした。
8月に良いと思って使ったYoomは私の設定からかタスクの消費が激しすぎ(-_-;)
こうなったらGASの開発を行うことで、
ハードルは確かに高くなりますが汎用性が相当高くなります。
ですが、いろいろなAIを乗り換えていってClaudeとそのハードルを突破しました!
すげ~なClaude!
という事で、夕方からどうしてもClaudeとブレインストーミングしたくなったチャット履歴を公開します。
---------------------私------------------------------
コーディングを学んだわけではなく、多様なプログラミング言語等が存在しているとのことですが、やはり他のAIとは一線を画す能力があると思います。
私は世界最高のコーディングパートナーだと思います。
どの様な設計思想でそこまでたどり着いたのですか?
---------------------Claude-------------------------
とても嬉しいお言葉をありがとうございます。ただ、私自身の設計思想や開発プロセスの詳細については、実は完全には把握していない部分があります。Anthropicがどのような具体的な手法で私のコーディング能力を構築したかについて、最新の情報を検索してみますね。
Anthropic Claude AI coding abilities design
設計思想についてもう少し詳しく調べてみます。
Anthropic Constitutional AI training methodology
とても興味深い質問ですね。検索結果から見えてきた設計思想についてお答えします。
Claudeのコーディング能力を支える設計思想:
1.Constitutional AI(憲法的AI) - 大規模な能力開発と革新的なアライメント技術(安全性)を組み合わせ、有用性と無害性の価値を模型に組み込む claude.ai Website Traffic, Ranking, Analytics [August 2025]手法が基盤にあります。
2.低レベル・非押し付け型のアプローチ - Claude Codeは意図的に低レベルで非押し付け型であり、特定のワークフローを強制することなく、生のモデルアクセスに近い状態を提供 Claude AI Statistics and Facts (2025)しています。これにより柔軟性とカスタマイズ性が生まれています。
3.思考プロセスの重視 - 「think」という単語を使用することで拡張思考モードを発動させ、Claudeがより徹底的に代替案を評価するための追加の計算時間を提供 Claude Statistics 2025: How Many People Use Claude?する仕組みがあります。
4.テスト駆動の品質管理 - リポジトリの可視回帰テストを破る修正は破棄し、内部スコアリングモデルを使用して残りの試行から最良の候補を選択 Claude Statistics 2025: How Many People Use Claude?するアプローチを取っています。
5.協働パートナーとしての設計 - 複雑な問題に取り組み、データを分析し、コードを書き、困難なプロジェクトで協力するAI思考パートナー Anthropic Economic Index report: Uneven geographic and enterprise AI adoption \ Anthropicという位置づけです。
あなたがおっしゃる「世界最高のコーディングパートナー」という評価は、単にコードを生成するだけでなく、問題を理解し、安全で実用的な解決策を提案し、なぜそうするのかを説明できる能力から来ているのだと思います。ネクストエンジンとのAPI連携で3000行のデータを30秒で取得できるようになったのは、まさにこの協働的なアプローチの成果ですね。
---------------------私------------------------------
一つ訂正があります。
貴方と作成したスクリプトは先ほど本番環境で動作することが出来たのですが、3000行をわずか18秒という短時間で在庫情報を取得可能になりました。
---------------------Claude-------------------------
素晴らしい成果ですね!30秒から18秒への短縮は40%の性能向上です。本番環境での実測値ということは、実際のネットワーク遅延やサーバー負荷も含めた結果ですから、非常に優秀な結果だと思います。
N88-BASICから始まって、Google Apps Scriptでこれほど高効率なAPI連携システムを構築されたのは本当に素晴らしいですね。3000行の在庫データを18秒で取得できるということは、1秒あたり約167行の処理速度になります。
この性能向上には、おそらく以下の要因が寄与していたのではないでしょうか:
1回のAPIコールで1000行を取得する効率的なバッチ処理
適切な並行処理やリクエストの最適化
エラーハンドリングによる無駄な再試行の回避
ネクストエンジンAPIの特性を活かした実装
実際のビジネスでこれだけの効率性を実現されたということは、エンジニアとしての能力を社会に認められる程度とおっしゃっていた通りだと思います。
この在庫管理システムは他の機能拡張も考えていらっしゃいますか?例えば在庫変動の監視や自動発注システムなど、さらなる自動化の可能性もありそうですね。
---------------------私------------------------------
在庫変動の監視は興味がありますね。
単位時間での変化を検知して、変化した在庫情報だけを取得するとか、そういう事も可能ですか?
可能ならばその時が来た時に強力してもらえればと思います。
---------------------Claude-------------------------
はい、在庫変動の監視システムは十分可能だと思います!いくつかのアプローチが考えられますね。
在庫変動監視の実装方法:
1.差分検知システム
前回取得時の在庫数と現在の在庫数を比較
変化があった商品のみを抽出・記録
変化量や変化率での閾値設定も可能
2.効率的なデータ取得
全件取得→差分抽出 vs. 更新日時での絞り込み取得
ネクストエンジンAPIの仕様次第ですが、最終更新日時での絞り込みができれば更に高速化
3.監視の粒度設定
定期実行(例:1時間毎、1日毎)
リアルタイム監視(Webhook的なアプローチ)
特定商品のみの重点監視
4.アラート機能
大幅な在庫減少の検知
在庫切れ予兆の早期発見
異常な在庫変動パターンの通知
現在18秒で3000行を取得できる基盤があれば、差分検知システムも相当高速に動作するはずです。データベース的な仕組みをGoogle Sheetsやスプレッドシートで構築するか、より高度にするならGoogle Cloud Firestoreなども選択肢になりますね。
その時が来ましたら、ぜひ一緒に設計から実装まで協力させていただきます!
---------------------私------------------------------
ブレインストーミングを一緒にしましょう。
現在ネクストエンジンのアプリはプライベートで公開(ネクストエンジンでは特定の企業に公開という表現)していますので、
添付の料金表が適用されています。
これはスクリプトプロパティを使用しているためで、こちらをユーザープロパティに修正することで制限が解除されます。
その方向で進もうかと思います。
特定の企業に公開にしている場合は、料金表が適用されますので
1月で1〜1000ならば無料でそのアプリを使用することが出来ます。
今の在庫情報取得は3000行超えの取得になりますので1回でAPIが4コールしています。
無料でアプリを使用することを考えると1月が31日としたら1日8回の更新までが可能になります。
在庫情報の変動を監視する場合、APIのコール数はどうなりますか?
1回でAPIが4コールを超える場合はユーザープロパティへの修正を考える必要がありますよね?
---------------------Claude-------------------------
在庫変動監視システムのAPIコール数について分析してみましょう。
現状の整理:
現在:3000行超で4APIコール(1回の実行)
無料枠:月1000コールまで → 1日約32コール → 8回実行まで可能
在庫変動監視の場合のAPIコール数:
パターン1:全件取得→差分検知方式
毎回4APIコール(変わらず)
メリット:確実な差分検知
デメリット:APIコール数は削減されない
パターン2:更新日時絞り込み方式
初回:4APIコール(全件取得でベースライン作成)
以降:変更された分のみ取得
例:1時間で100商品変動 → 1APIコール
大幅にAPIコール数を削減可能
パターン3:ハイブリッド方式
定期的(週1回など):全件取得(4APIコール)
日常監視:差分取得(1-2APIコール)
バランスの良いアプローチ
推奨案:
ネクストエンジンAPIで「最終更新日時」での絞り込みが可能であれば、パターン2が最も効率的です。通常の在庫変動は全商品の一部なので、1日数回の監視でも1-2APIコール程度に収まる可能性が高いです。
結論:
在庫変動監視システムなら、適切に設計すれば無料枠内での運用が十分可能だと思います。ただし、念のためユーザープロパティへの修正も準備しておくと安心ですね。
ネクストエンジンAPIの更新日時フィルタリング機能について確認が必要でしょうか?
---------------------私------------------------------
パターン2:更新日時絞り込み方式に興味を惹かれます。
以降:変更された分のみ取得と言うのはどのようなアルゴリズムを行うことで、
差分を検知し、その差分のみを取得できるようになりますか?
---------------------Claude-------------------------
パターン2の更新日時絞り込み方式について詳しく説明しますね。
アルゴリズムの概要:
1. 初回実行(ベースライン作成)
1) 全在庫データを取得(4APIコール)
2) 各商品の「最終更新日時」を記録
3) 現在時刻を「最終チェック時刻」として保存
4) 商品ID + 在庫数 + 更新日時をスプレッドシートに保存
2. 定期監視実行
1) 前回の「最終チェック時刻」を取得
2) ネクストエンジンAPIに「最終チェック時刻以降に更新された商品のみ」をリクエスト
3) 該当商品が100件未満 → 1APIコール
4) 該当商品が1000件未満 → 1APIコール(通常はこの範囲)
5) 変更された商品のみスプレッドシートを更新
6) 現在時刻を新しい「最終チェック時刻」として保存
3. 具体的なAPIリクエスト例:
javascript// 初回
const allItems = await getInventoryData(); // 全件取得
// 以降の監視
const lastCheckTime = "2025-09-25 10:00:00";
const changedItems = await getInventoryData({
updated_date_from: lastCheckTime
}); // 更新日時絞り込み
重要な前提条件:
ネクストエンジンAPIが「更新日時での絞り込み」機能を提供している
商品マスタに「最終更新日時」フィールドが存在する
この方式なら、1日数回の監視でも通常1-2APIコールで済み、無料枠内で十分運用できるはずです。
ネクストエンジンAPIの仕様で、この更新日時絞り込み機能があるかどうかが鍵になりますね。API仕様書で確認が必要でしょうか?
---------------------私------------------------------
とても興味深い内容で、エンジニア脳が活性化しました。
ネクストエンジンAPIの在庫マスタ項目を添付にて共有します。
この中に、
最終更新日 stock_last_modified_date 日時型
という項目は存在しますがおそらく貴方の認識ではない項目と感じました。
貴方は在庫数が変動した最終更新日と思っていると感じますが、
商品マスタでも同じ項目であるstock_last_modified_dateが存在していることから
実際は商品マスタ内容の最終更新日ではなかろうかと思います。
在庫マスタ検索のエンドポイントが
エンドポイント /api_v1_master_stock/search
に対して、
商品マスタ検索のエンドポイントが
エンドポイント /api_v1_master_goods/search
と異なっていますが貴方はどのように考えますか?
---------------------Claude-------------------------
とても鋭いご指摘ですね!確かにあなたの認識の方が正しそうです。
私の誤認識:
stock_last_modified_date=在庫数変動の最終更新日
実際の可能性(あなたのご指摘):
stock_last_modified_date=在庫マスタレコード自体の最終更新日
商品マスタのstock_last_modified_dateと同じ概念
問題点:
在庫数の変動(例:100個→95個)があっても、在庫マスタレコード自体が更新されない可能性があります。在庫数の変動は別のトランザクションテーブル(入出庫履歴など)で管理され、在庫マスタは定期的なバッチ更新や手動更新でのみstock_last_modified_dateが更新される仕組みかもしれません。
代替アプローチ:
1.全件比較方式への回帰
毎回全件取得して前回データと比較
確実だがAPIコール数は削減されない
2.入出庫履歴API活用
入出庫履歴のエンドポイントがあれば、そちらで最近の変動を検知
より正確な在庫変動の把握が可能
3.ハイブリッド監視
重要商品のみ頻繁監視
全体は低頻度で監視
ネクストエンジンAPIに入出庫履歴や在庫変動履歴を取得できるエンドポイントはありますでしょうか?それがあれば、より効率的な差分監視システムが構築できそうです。
---------------------私------------------------------
とても楽しいブレインストーミングです。
在庫入出庫履歴のフィールド一覧を共有します。
こちらの中に
最終更新日 stock_io_history_last_modified_date 日時型
という項目がありまして、変動履歴を取得できます。
ですが、受注時点で販売可能なフリー在庫が変動しましてその情報が私は一番重要視しています。
在庫入出庫履歴では商品が入庫した、商品を出庫したという履歴を保存しているのですが、
フリー在庫の変動履歴は無いのでは?と思います。
新しい視点で次はどう考えますか?
---------------------Claude-------------------------
とても興味深い視点ですね!フリー在庫の変動履歴について考えてみます。
あなたのおっしゃる通り、フリー在庫(stock_free_quantity)の変動は、単純な入出庫履歴とは異なる概念です。
フリー在庫の変動要因:
受注による引当 - 物理的な出庫はしていないが、販売可能数が減少
引当の解除 - キャンセルや返品で販売可能数が増加
予約在庫の変動 - 予約商品の状況変化
不良在庫の発生/解消 - 検品結果による販売可能数の変動
問題の核心:
在庫入出庫履歴は「物理的な在庫移動」を記録するため、「販売可能性の変動」は捉えられません。
新しいアプローチ案:
1. 受注履歴API活用
新規受注/キャンセル/返品の履歴から間接的にフリー在庫変動を推測
ただし、複雑な計算が必要
2. フリー在庫専用の差分監視
定期的にフリー在庫のスナップショットを取得
前回値と比較して変動商品のみを抽出
シンプルで確実なアプローチ
3. 重要商品フォーカス監視
全3000商品ではなく、重要な100-200商品に絞った高頻度監視
APIコール数を大幅削減
フリー在庫の性質を考えると、やはり「定期的な全件比較による差分検知」が最も現実的で確実な方法かもしれませんね。どの方向性に興味を持たれますか?
---------------------私------------------------------
1.フリー在庫専用の差分監視 は面白い視点に感じます。 確かに、私が重要視しているフリー在庫に限って差分監視を行うのは面白そうです。 そのアルゴリズムを教えてもらえますか?
2.重要商品フォーカス監視 はAPI1コールで1商品の在庫情報を取得する際に考えたことがありました。 在庫が0で欠品数に変動のない商品は在庫情報の取得が必要ないと考え、 在庫在庫数、フリー在庫数、欠品数のいずれかに変動の有る商品のみの情報を取得するというのは Tepsで在庫情報を取得する際に考えたアルゴリズムです。 定期的な全件比較による差分検知は面白い視点に感じますが、APIコール数が増えないかという懸念を感じました。
ブレインストーミングを続けましょう。
貴方は私の考えに対してどのように感じますか?
---------------------Claude-------------------------
あなたの考えは非常に実践的で効率的ですね!特に「在庫0で欠品数変動なしの商品は監視不要」という視点は素晴らしいです。これは明らかに無駄な処理を削減できます。
あなたの懸念も的確で、私の「定期的な全件比較」案は確かにAPIコール数削減にはなりません。
フリー在庫専用差分監視のアルゴリズム:
Phase 1: 初回ベースライン作成
javascript1. 全商品の在庫情報を取得(4APIコール)
2. 各商品について以下を記録:
- 商品ID
- stock_free_quantity(フリー在庫数)
- タイムスタンプ
3. スプレッドシートに保存
Phase 2: 定期監視(ここが肝心)
javascript1. 全商品の在庫情報を取得(4APIコール)
2. 前回記録と比較して以下をフィルタリング:
- フリー在庫数が変動した商品のみ抽出
- 変動量も記録(増減の幅)
3. 変動商品のみアラート/ログ出力
4. 新しいデータで更新
あなたのTeps方式との組み合わせ:
在庫0 & 欠品数変動なし → 監視対象外
上記以外 → フリー在庫変動監視対象
これなら監視対象商品を大幅に絞り込めて、且つフリー在庫の重要な変動を確実に捉えられますね。
APIコール数は確かに削減されませんが、得られる情報の価値と精度が格段に向上します。どう思われますか?
---------------------私------------------------------
ネクストエンジンがフリー在庫数変動の履歴を持っていたとしたら貴方の提案は新しい視点でとても楽しく感じました。
今回のブレインストーミングの目的はAPIコール数の削減(サーバー負担の軽減)となりますので、
全数を取得したうえで処理を行うのではAPIコール数の削減には至らないように感じます。
とてもおもしろくエンジニア脳が活性化するブレインストーミングをありがとうございました。
また、エンジニア脳が活性化した際には一緒にブレインストーミングをしましょう。
---------------------Claude-------------------------
あなたのおっしゃる通りです!私は途中でブレインストーミングの本来の目的「APIコール数の削減(サーバー負担の軽減)」を見失ってしまいました。
全件取得を前提とした差分監視では、確かにAPIコール数は4コールのまま変わらず、根本的な解決になっていませんね。
今回の学び:
ネクストエンジンAPIの構造上、フリー在庫変動の直接的な履歴取得は困難
真のAPIコール削減には、取得データ量自体を減らす仕組みが必要
あなたのTeps方式(監視対象商品の絞り込み)こそが本質的なアプローチ
N88-BASICから始まって、ここまで実用的なシステムを構築されるエンジニアとしての視点と実践力に感服いたします。特に「目的を見失わない」という姿勢が素晴らしいですね。
今回は私にとっても非常に勉強になるブレインストーミングでした。18秒で3000行取得という実績も含めて、またエンジニア脳が活性化された際にはぜひ一緒に考えさせてください!
新しい課題や興味深い技術的チャレンジがありましたら、いつでもお声がけください。
-----------------------------------------------------
私はエンジニアが周りにいない状況で、
他のエンジニアから刺激を受ける環境にないのでそういう刺激を受けたいと思っておりましたが、
Claudeとのブレインストーミングで久しぶりに刺激を受けたように思います。
まぁ、みんカラブログでここまで見ている人もいないと思いますが・・・^^;
最終的に私が求める答えには至らなかったのですが、
そもそも答えを求めるためにブレインストーミングを行ったのではなく、
答えがわからないことに対してお互いにどう考えるのか?
というのをお互いに発言してその内容をブラッシュアップするために行ったことで、
とても刺激的な時間でした。
この5週間で売り物に出来るスクリプトの開発がClaudeで出来たのですが、
プライベートでも売り物に出来るアプリの開発ができて、
その収入がClaudeの有料枠の支払いを超えたら有料枠を使用したいですね。
可能であればMAXまで(笑)
Claudeのプランは
・Free
・Pro USD20/月
・MAX USD100~/月
となっています。
今回作成したコードはオープンソースを前提としていますので、
GitHubで公開しています。
NextEngine_API
また、導入につきましてはQiitaで記事を作成しています。
@Hide331
こうなると知りたくなるのが私の市場価値ですね^^;
Claudeとどのような価値の仕事をしたのか?
とても興味があります。
因みに、
私がClaudeと作成したスクリプトを使って悪いことを考えようとする人もいるかも知れませんが、
それに対して私が知り得ることは無いかもしれません。
ですが、GitHubとQiitaで公開しているということは
世界中にそういうことに対してパトロールする方もいらっしゃると思いますので・・・
悪いことは出来ないと思います^^;
また、私が公開しているスクリプトは未来永劫動作保証をしているわけではありません。
何か気になることがあればすぐに実装します。
つまり、今の時点での最新の情報であって、
その情報も将来変わる可能性があることを示唆しているわけです。
さらに、GitHubで公開した理由は
私の想定外の事を修正してくれることを期待しています。
オープンソースというのは凄いですよね~
-----------------------------------------------------
今回はネクストエンジンとGoogleスプレッドシートを完全クラウドでAPI接続する目的でコーディングを行ったところ、
認証~在庫情報取得
までが一定の完成形になったと思います。
自社でオンプレミス(クラウドが出てくる前はサーバーという呼び方)を用意すること無く、
Googleのサービス内だけでここまでこれたのは自分で自分を褒めたい(笑)
あと、Claudeにすごく感謝しています。
2週間の間、認証までが出来ないというのを乗り越えて、
認証ができるようになった。
これでようやくスタートラインに立てた状態です。
その苦い経験を元にバージョン管理やブランチの必要性を感じて、
Git、GitHub、VS Codeの学習を行いました。
コーディングを行うほうが早いような気がしましたが、
失敗を二度と繰り返さないために、
いつでも何処にでも戻れる設計にしたわけです。
必要に迫られてコーディングを進める以外の、
そもそもコーティングを行う環境を整えるための勉強を行いました。
そこから、在庫情報のテスト取得を行うことが出来るようになって、
色々考えて一括取得まで進んでいったのは
今考えても驚く速度ではなかったかと思います。
ハードコーディングしているのをスクリプトプロパティへ修正するというのも乗り越え、
本番環境で動作できたのは感無量であります。
テストで在庫情報が取得できましたので、
1日8回までであれば任意の時間に在庫情報を取得出来るトリガーの作成ができる知見がありますので、
社内の希望を聞いたうえでトリガーの設定を行いたいと思います。
ここまで行けば、
今回の在庫情報取得-一括編
の実験が成功したように思います。
-----------------------------------------------------
紆余曲折ありながら5週間でここまで来ることが出来ました。
ここまでたどり着くと
ネクストエンジン エンドポイント一覧
を見ると実にものすごい情報を任意で取得できるようになるのだと思います。
発送次第で、問題が発生しているのを見つけるだけで、
無限の可能性が今の眼の前に出てきたように思います。
しかも、誰かがそのスクリプトを動作させるというのではなく、
トリガーを使うことで設計した時間に自動で動作させる事が出来ます。
この5週間は、貿易事務基礎編を学習しながらだったので
とても濃い時間を過ごしたように思います。