4 ポイント 投稿者 chlrhdmltkfkd 2026-04-02 | 3件のコメント | WhatsAppで共有

こんにちは。大手オープンマーケットで次々と出てくる返品ノートPCを見るたびに、実際のスペックを正確に確認し、Danawaの最安値と比較することに大きな負担を感じていました。

これを解決するため、分散したECプラットフォームのノートPC特価情報とDanawaの膨大なデータベースをAIで統合・可視化する「返品ラップトップ(Banpoom Laptop)」を開発しました。

Link: https://banpoomlaptop.com

1. 使用技術スタック (Tech Stack)

フロントエンドからデータパイプラインまで、全体構成を新たに構築しました。

  • Frontend: Next.js 16 (App Router), React 19, Tailwind CSS v4, Zustand

  • Backend / Database: Node.js, Next API Routes, MongoDB (Aggregation Pipeline), Redis

  • Crawling / Pipeline: Python (curl_cffi), Puppeteer, PM2 (バックグラウンドデーモン)

  • AI / Data Matcher: OpenRouter API (Qwen 3.5), BM25 (類似度検索アルゴリズム)

2. 開発過程における主な高難度ポイント

今回のプロジェクトを進める中で、単純なWeb開発にとどまらず、データ収集と整形パイプラインの区間でさまざまな難しい課題に直面しました。

A. 非構造化データの正規化と異種プラットフォーム間のクロスマッピング

最大の難関は、「オープンマーケットの返品ノートPCに付けられたばらばらな商品名」と「Danawaの複雑なスペック名」をマッチングすることでした。表記法がベンダーごとに異なるため、一般的なDB Joinや正規表現では限界が明確でした。
これを解決するため、2-Step AIパイプラインを構築しました。

  1. BM25テキスト類似度アルゴリズムを使って、膨大なDanawa DBから一次候補モデルを先に抽出します。
  2. 検索された候補群をQwen 3.5ベースのLLM(大規模言語モデル)のコンテキストウィンドウに渡して文脈を解釈させ、正確な固有派生モデル(pcode)を見つけ出すよう設計しました。さらに、Danawaの長文スペックをLLMがリアルタイムでJSONに構造化する作業までバックグラウンドワーカーに委任しました。

B. 高度化したメインランキングアルゴリズム (Hidden Score) 推論ロジックの適用

オープンマーケットのデータは基本的に「割引率」が最も大きく見えますが、年式の古い不良在庫が多い点が問題でした。
これを解決するため、MongoDBのAggregationパイプライン内部で スコア = 割引率 + (性能数値 / 現在価格) - 年式ペナルティ を計算する「ヒドゥンスコア」システムを組み込みました。単なる条件フィルタリングで終わらせず、2022年式以前のモデルには-50点のペナルティ、2025〜2026年式の最新モデルには+20点の重みを付与し、上部シェルフ(Shelf)に本当にコスパの高い機材だけが優先表示されるよう処理しました。

3. まとめ

フロントエンドは、ZustandとNext.jsのパラメータ連携を通じて、数十種類の複合スペックフィルター(パネル、メーカー、重量、TGPなど)が即座に滑らかに反応するよう最適化してあります。
LLMを単なるチャットボット用途ではなく、バックグラウンドパイプライン内の「非構造化データ正規化パーサー」および「スマートマッチャー」として本格導入してみたことが、エンジニアとして最も意義深い経験でした。データクローリング、AIマッチング、あるいはNextの開発環境に関心のある方々との意見交換やフィードバックを歓迎します。

3件のコメント

 
cnaa97 2026-04-02

欲しいですね..

 
runableapp 2026-04-02

いいですね、便利なサイトです。
個人的な意見としては、デザインが少しショッピングモールっぽすぎて、色使いが目に負担をかけるように感じます。
アルゴリズムだけでも十分そうですが、LLMが特に必要だった点はどのあたりでしょうか?

 
kurthong 2026-04-02

モバイル環境(Galaxy S25 Plus)では、AIチャットウィンドウの「会話を送信」ボタンと閉じるボタン(X)が重なっています。