0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

未経験コーヒー屋がAntigravityでチャットサービスを作ったら愛着湧きすぎてPMF止まらなくなった

Posted at

プロジェクト立ち上げ、そして初期コミットから現在に至るまでの、技術的な意思決定と実装の裏側を記した開発ログです。

個人開発のPMF(プロダクトマーケットフィット)のユースケースとして、誰かの参考になればと思います。

前編はこちらをご覧ください。
https://qiita.com/0xshiba/items/ab0f0cca36f58381090b

AIチャットのリリースから2ヶ月強の間のアップデートログを調査し、メジャーアップデートと考えられるものだけ自動抽出したので、マイナーアップデートも含めると回数は100回を超えると考えられます。

ぶっちゃけ個人開発の良し悪しは、PMFが全てではないでしょうか?

それではいってみよー☕️

v1.0: 誕生と人格形成 (2025.11)

「ただのボットから、AIサルバさんへ」

📍 実装の裏側: スプレッドシート連携とスクレイピング

初期リリース直後、AIに「サルバドールコーヒーの店員」としての知識と記憶を持たせるため、以下の2つのデータ基盤を構築しました。

  1. **商品知識のスクレイピング (scripts/scrape_shop.js) 
    店の商品構成や在庫情報は日々変動しますよね。これらを内蔵のAIに対して手動で入力し直すのは非効率なため、BASEのオンラインショップからHTML情報を自動で抜き取るスクリプトを実装しました。「BASEの商品を更新して、商品情報更新のスクリプト実行一発でAIの知識も更新される」というストレスのない運用基盤を完成させました。

  2. Google Sheetsによる会話ログ連携 
    AIとユーザーの会話記録をデータベースではなくGoogleスプレッドシートに送信・蓄積する仕組みを実装しました。これにより、エンジニアではない私でも気軽に会話内容を確認し、AIの回答精度やユーザーのニーズ分析に活用・PDCAを回せる環境を整えました。エラーが出た場合のバグ修正も迅速に行えるようになりました。スプレッドシートの最新データは12時間ごとにスナップショットされ、要約された文章がメールで通知される仕組みで、見落としがありません。

  3. System Promptによる人格形成 
    よくある企業のAIチャットボットのような単なるQ&Aボットではなく「ウィットに富んだ話ができる相手」になるよう、システムプロンプト内でペルソナを厳密に定義。「〜ですね」「〜ですよ」といった親しみやすい語尾や、コーヒーへの情熱を語るセクションを追加し、心理学に基づくテクニックをインプットし、ユーザーとの心理的距離を縮める設計を行いました。


v1.3: 信頼性への挑戦 (2025.11.29)

「嘘をつかないAIへ:ハルシネーション対策」

📍 実装の裏側: 検索強制ロジックとパラメータ調整

生成AIには「もっともらしい嘘(ハルシネーション)」をつくリスクがあります。
チャットボットのような、不特定多数による想定ができないインプットが来る環境で、ハルシネーションを防ぐのは非常に困難です。

特に実在する店舗の場所や他店の情報を聞かれた際に、推論で答えてしまう問題が顕著になったため、以下の対策を講じました。

  1. 検索ツール(googleSearch)の強制使用 
    route.js 内のプロンプトエンジニアリングにより、ユーザーが外部情報(他店のコーヒーについての情報、イベント情報、店舗への行き方、交通機関の乗り継ぎ情報)などを求めた場合、AIの推測回答を禁止し、必ずGoogle検索ツールを実行させる ロジック(If external info needed -> Force Search)を組み込みました。

  2. Temperatureの引き下げ 創造性を司るパラメータ temperature を初期値から 0.2 まで引き下げ、事実に基づいた堅実な回答を優先する設定に変更しました。このtemperature設定はLLMのプロンプトエンジニアリングにおいて基礎的な知識であり、生成AIの使用目的によって適切な値に調整することで、理想的なパフォーマンスを実現できます。


v1.5: 体験を繋ぐ (2025.12.02)

「診断から購入へ:O2Oの実現」

📍 実装の裏側: 6桁オーダー番号と診断ロジック

チャットで相談を受けた後、実際に店舗や通販で商品の購入に繋がらなければ、販促ツールとしての意味をなしません。そこの「繋ぎこみ」に工夫が必要でした。

  1. 6桁のオーダー番号生成 (generateUUID custom logic) 
    ユーザーのコーヒーの好み診断が完了したタイミングで、ランダムな「6桁のユニークオーダー番号」を発行するロジックを追加。これを組込みの決済ボタンから飛んだsquareで入力することで、診断結果に基づいたクイックサンプルを低価格で購入できるフローを確立しました。低単価のカスタムオーダーはBASEで対応すると業務量が増え、しかも手数料負けしてしまいますが、AIによるレコメンドからsquare受注まで業務を自動化することで、効率よくサンプリングを行うことができるようになりました。

  2. アンケートロジックの厳格化 
    ユーザーの好みを当てる「推測ゲーム」において、AIが忖度しすぎて的外れな提案をしないよう、システムプロンプトに「否定条件(Strict Negative Constraints)」を追加。「苦いのが苦手」と言われたら、深煎り豆を候補から完全に除外するフィルタリング思考プロセスを強化しました。これによって、ユーザーが無意識的に期待するレコメンドを表示できる確率が上がりました。

これらのレコメンドから受注までの実装は、この業務フローを実際に体験した顧客から感動したとのメッセージをいただくことができました。


v2.0: エンタメとしてのAI (2026.01.01)

「季節と共に在るAI:おみくじ機能とエンゲージメント」

📍 実装の裏側: 専用ロジックとJSONデータ構造

AIチャットを単なる相談・販売ツールから 「楽しませる場所」 へ昇華させるため、正月三が日、期間限定のおみくじ機能を実装しました。こういったコミュニケーションを頻繁に行うことで、顧客のエンゲージメント向上に大きく貢献する結果となりました。

  1. 専用データ構造 (omikuji_data.json) 
    おみくじデータは清水寺のおみくじ研究サイトを参照し、運勢に対応した漢詩を表示することで本格的なおみくじを実装。また大吉・中吉などの運勢リストだけでなく、それぞれに対応した「ラッキーコーヒー(商品)」をマッピングしたJSONデータベースを構築することで、販促に繋げました。

  2. **おみくじ専用ロジック (omikuji_logic.js) 
    単純なランダムではなく、数学的なロジックで運勢を表示させる専用ロジックを実装しました。また、おみくじを引くと3%の確率でゲイシャをプレゼントするというリワードを公表したことで、オンラインショップへのPVを前年同日の5倍に増加させることができました。

この結果、従来のInstagram投稿やBASEのメルマガと比べても、エンゲージメント向上施策が伸びやすいプラットフォームになっています。


v3.0: Webアプリケーションへの進化 (2026.02.03)

「1画面完結のUIとSEOの両立」

📍 実装の裏側: Infoモーダルと構造化データ

チャットUIとしての「アプリっぽさ」は、ECサイトの「いちツール」として優秀ですが、どのように継続的にチャット利用のユーザーを流入させるのかという課題が現在浮き彫りになっています。そこで、ツールの優秀さを全面にいかすため、Webサイトとしての「検索されやすさ」という要件を実装していくことになりました。

  1. **InfoModalコンポーネント (InfoModal.js) SEOテキストを作り込み、さらにスマホでの「スクロール不要・1画面完結」というUXを壊さないよう、画面外ではなく モーダルウィンドウ 内に配置。<article> タグや適切な見出しタグ(h1, h2)を使用し、Googleクローラーには「重要なコンテンツ」として認識させつつユーザーの目には「必要な時だけ開く情報」として提示するUIを実現しました。

  2. JSON-LD構造化データ (@type: CafeOrCoffeeShop) 

    layout.js に CafeOrCoffeeShop スキーマを動的に注入。Salvador Coffeeの実店舗情報や通販サイトとの関連性(sameAs)を機械可読な形式で記述し、ローカルSEO(MEO)との連携を強化しました。この実装による効果測定は、今後2ヶ月程度の運用でデータを取っていきたいと思います。


🚀 まとめと今後の目標

今回の実装が、どの程度のインプレッションになるのか?
もっと色々マーケティングとしてやれることはないのか?

2ヶ月運用しながら、答えを見つけていければなと思います。

特に今はShopifyのAIレコメンドが話題ですし、このECプラットフォームとAIの横連携を実装していくことは、我々事業者にとって必須事項となっていくでしょう。

さて、、、

現在わたしは札幌でコーヒーショップを8年ほど経営しています。

趣味でAIコーディングによる個人開発を行っていますが、今後はどこかで実務経験を積んでフリーランスエンジニアとして、兼業ではありますが活躍したいと考えています。

店を持っているため、未経験SESとしてフルコミットで現場に入ることができず、「実務経験」というニワトリタマゴな問題に、ぶち当たっているところです。

現在のステータス: 独学でPython/TypeScript/React/Pixi.jsなど開発中。
探している環境:
モダンな技術スタック(TypeScript/React/Next.js/Goなど)に触れられる
未経験者のAIコーディング活用に理解がある
兼業・副業からでも実務経験を積める

もし、「一緒に働いてみないか?」と興味を持っていただける企業様やチームがいらっしゃれば、ぜひお声がけいただけると嬉しいです!

ここまで読んでいただきありがとうございました!

記事にいいねをいただけると励みになります!☕️

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?