Mimicord
System Architecture
pgvectorとOpenAIを活用した、Discord会話履歴のRAG検索アプリケーション。
ベクトル検索技術による「文脈を理解する」検索体験と、要約生成機能を提供します。
System Architecture
個人的なDiscordコミュニティに蓄積された約50万件の会話ログを処理するRAGシステム。 dbtとMotherDuckでチャットデータのクレンジングと構造化を行い、キーワード検索では拾えない「文脈」をベクトル検索で抽出・要約します。
データフロー
- dbtとMotherDuckで約50万件のログをクリーニング・正規化
- embeddingを付与してpgvectorに格納
- ユーザーが質問を入力 → pgvectorで関連コンテキストを検索
- OpenAI APIを使用して回答を生成し、ユーザーに提示
技術スタック
- Next.js + Hono (Backend)
- BetterAuth (Authentication)
- PostgreSQL + pgvector (Vector Database)
- OpenAI API (Embeddings & Completion)
会話履歴の要約 (RAG)
Discordの膨大な会話ログを、LLM (OpenAI) が文脈を理解して要約。過去の議論を瞬時に振り返ることが可能です。
ベクトル検索の実装
PostgreSQL + pgvector を用いて会話内容をベクトル化。キーワード一致だけでなく、意味的な類似性による高度な検索を実現。
OpenAPI Schema
Hono + Zod OpenAPI により、APIリファレンスを自動生成。実装とドキュメントの乖離を防ぎ、メンテナンスコストを最小化します。
Design Documents
設計・仕様に関するドキュメント
個人開発のプロジェクトでも、このプロジェクトにジョインすることになる新人がスムーズに開発に移れるよう、システムの説明やクイックスタートガイド、開発ガイドラインなどを書くようにしています。
Project Overview
プロジェクトの概要、機能一覧、セットアップ手順などの全体像。
Technical Spec
技術要件・アーキテクチャ設計書。Webアプリ全体の設計思想。
API Design & Standards
API設計ガイドラインとHono実装標準。バージョニング戦略含む。
API Reference
ScalarによるインタラクティブなAPIリファレンス。エンドポイントの仕様確認と実行テストが可能。
CI/CD & Testing
GitHub ActionsによるCI/CD運用ガイドラインとテスト戦略。
Data Pipeline (dbt)
MotherDuck + pgvector によるRAG用データ構築フロー。
Key Engineering Features
RAGアプリケーションを支える技術要素
RAG Implementation
pgvectorを用いたベクトル検索とOpenAIのEmbeddingを組み合わせ、文脈を考慮した高精度な回答生成を実現。
Lightweight Backend
Web標準に準拠したHono.jsを採用し、エッジ環境でも動作可能な軽量かつ高速なバックエンドAPIを構築。
Secure Authentication
BetterAuthを採用し、Githubアカウント連携を含むセキュアでモダンな認証フローを実装。
Robust Data Pipeline
dbtを用いたデータ変換プロセスにより、生データから分析・検索に適した形式への変換を効率化。
Technology Stack
Mimicordで採用している主要技術
Frontend
React Server Componentsによる効率的なデータフェッチとSEO最適化。
最新のReact機能(Actions, useOptimistic等)を活用したモダンなUI構築。
Backend & Data
tRPCではなくOpenAPI準拠を選択。モバイルアプリ等からのアクセスを想定し、言語非依存のAPI仕様を優先。RPC機能でWeb側の型安全性も確保。
リレーショナルデータとベクトルデータを単一のDBで効率的に管理。
TypeScriptファーストなORMによる型安全なDB操作。
AI & Pipeline
Embedding(ベクトル化)およびChat Completion(回答生成)に使用。
データの加工・変換(ELT)を行うための高速な分析用データベース。
約50万件のチャットログに含まれるスラング、URL、スタンプ等を正規化し、LLMが処理しやすい形式に変換。
DevOps
フロントエンドおよびEdge関数のホスティングプラットフォーム。
サーバーレスPostgreSQL。開発・本番環境の分離とスケーリングが容易。
RAG Process Flow
質問から回答生成までの処理フロー
User Input
ユーザーからの質問・検索
- Discord風のUIから自然言語で質問を入力
- 入力内容をOpenAI Embedding APIへ送信
- 質問文をベクトル表現に変換
Vector Search
関連情報の検索
- pgvectorを用いてコサイン類似度検索を実行
- 過去の会話ログから関連性の高いチャンクを抽出
- 類似度の高い順にコンテキストを取得
Context Generation
プロンプト構築
- 検索された会話コンテキストをプロンプトに注入
- LLMへの指示(システムプロンプト)と結合
- トークン数制限を考慮した最適化
LLM Response
回答の生成と返却
- OpenAI Chat Completion APIへリクエスト送信
- 文脈を踏まえた回答をストリーミングで生成
- UIへリアルタイムに表示
Contact
技術的な詳細、ソースコードの確認、または採用に関するお問い合わせはこちらから受け付けています。
このフォーム自体も、上記のアーキテクチャ(tRPC + Edge + Notion API連携)で動作しています。