推しアイデア
Hitode Chatbotは、画像を自然言語で検索できるシステムです。質問に対する回答とともに、その根拠として引用された画像がチャットUI上に並べて表示されます。
Hitode Chatbotは、画像を自然言語で検索できるシステムです。質問に対する回答とともに、その根拠として引用された画像がチャットUI上に並べて表示されます。
チームとしてLLM, 検索技術について理解を深めたかったため。
Amazon Bedrock の Knowledge Base 機能をフル活用。 AI SDKとSSEをフル活用し、チャットのぬるぬる感を演出。
当初、私たちは動画をインデックスしてAIに質問できるシステムの構築を目指していた。しかし、チームが結成されたばかりの野良チームであることに加え、開発期間がわずか2日間という制約を踏まえると、動画を多段階的に前処理するパイプラインを安定的に構築・完成させることは現実的に難しいと判断した。そこで、比較的前処理がシンプルな画像をインデックスする設計へと方針を転換し、限られたリソースの中で完成度を高める戦略を選択した。 また、短期間での開発を乗り切るための方針として、サーバーレスアーキテクチャとOSSをフル活用する方針を採用した。インフラの運用管理に割くリソースを最小化しつつ、すでに実績のあるOSSを積極的に取り入れることで、限られた時間の中でも本質的な機能の実装に集中できる環境を整えた。 実際の開発では、 1、フロントエンドと検索ロジックの構築 2、CDKを使ったインフラの整備 3、アップロードされた画像ファイルのS3への保存とイベント発火 4、Bedrockによるインデックス処理 5、開発体験を整備するDevOps という形でパイプライン・処理ごとに役割を明確に分担し、最終日の1日で各コンポーネントの繋ぎ込みを行うギリギリのスケジューリングで実装を進めた。各メンバーがそれぞれ異なる強みの領域を持っていたことが功を奏し、各々が自律的に自分の役割を推進できたことで、分業体制が自然かつ効果的に機能した。そして、コンポーネント同士を繋ぎ合わせる最終フェーズでは密なコミュニケーションが不可欠であり、チーム全員が同じ空間に集まってオフラインで開発していたことが、迅速な意思疎通と問題解決に大きく貢献した。
Hitode ChatBot は、Amazon Bedrock の Knowledge Base 機能を活用して構築された画像検索が可能なAI チャットボットです。Vercel AI SDKをベースにしたNext.js フロントエンドと、AWS CDK によるインフラストラクチャで、モダンでスケーラブルなアーキテクチャを実現しています。
hitode/ ├── web/ # Next.js アプリケーション(Vercel AI Chatbot ベース) │ ├── app/ # Next.js App Router │ ├── components/ # React コンポーネント │ ├── lib/ # ユーティリティとビジネスロジック │ ├── public/ # 静的ファイル │ ├── package.json # 依存関係 │ └── README.md # アプリの詳細 │ ├── infra/ # AWS CDK インフラストラクチャ │ ├── lib/ # CDK スタック定義 │ │ ├── constructs/ # 再利用可能な Construct │ │ └── stacks/ # CDK スタック │ ├── bin/ # CDK エントリーポイント │ ├── test/ # テストファイル │ ├── package.json # 依存関係 │ └── README.md # インフラの詳細 │ ├── doc/ # ドキュメント │ └── architecture.dio.svg # システム構成図 │ └── README.md # このファイル