Aromarious Portfolio
HomeAbout
Projects
All ProjectsPortfolio SiteMimicord
SkillsExperienceContact
Zenn
Aromarious Portfolio
HomeAbout
Projects
All ProjectsPortfolio SiteMimicord
SkillsExperienceContact
Zenn
RAG Application Showcase

Mimicord
System Architecture

pgvectorとOpenAIを活用した、Discord会話履歴のRAG検索アプリケーション。
ベクトル検索技術による「文脈を理解する」検索体験と、要約生成機能を提供します。

Visit Website
View Source

System Architecture

個人的なDiscordコミュニティに蓄積された約50万件の会話ログを処理するRAGシステム。 dbtとMotherDuckでチャットデータのクレンジングと構造化を行い、キーワード検索では拾えない「文脈」をベクトル検索で抽出・要約します。

データフロー

  1. dbtとMotherDuckで約50万件のログをクリーニング・正規化
  2. embeddingを付与してpgvectorに格納
  3. ユーザーが質問を入力 → pgvectorで関連コンテキストを検索
  4. 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

プロジェクトの概要、機能一覧、セットアップ手順などの全体像。

GitHub

Technical Spec

技術要件・アーキテクチャ設計書。Webアプリ全体の設計思想。

GitHub

API Design & Standards

API設計ガイドラインとHono実装標準。バージョニング戦略含む。

GitHub

API Reference

ScalarによるインタラクティブなAPIリファレンス。エンドポイントの仕様確認と実行テストが可能。

Scalar

CI/CD & Testing

GitHub ActionsによるCI/CD運用ガイドラインとテスト戦略。

GitHub

Data Pipeline (dbt)

MotherDuck + pgvector によるRAG用データ構築フロー。

GitHub

Key Engineering Features

RAGアプリケーションを支える技術要素

RAG Implementation

pgvectorを用いたベクトル検索とOpenAIのEmbeddingを組み合わせ、文脈を考慮した高精度な回答生成を実現。

pgvectorOpenAI EmbeddingsCosine Similarity

Lightweight Backend

Web標準に準拠したHono.jsを採用し、エッジ環境でも動作可能な軽量かつ高速なバックエンドAPIを構築。

HonoZod OpenAPIEdge Compatible

Secure Authentication

BetterAuthを採用し、Githubアカウント連携を含むセキュアでモダンな認証フローを実装。

BetterAuthGitHub OAuthSecure Session

Robust Data Pipeline

dbtを用いたデータ変換プロセスにより、生データから分析・検索に適した形式への変換を効率化。

dbtData TransformationSQLPython

Technology Stack

Mimicordで採用している主要技術

Frontend

Next.js (App Router)

React Server Componentsによる効率的なデータフェッチとSEO最適化。

React

最新のReact機能(Actions, useOptimistic等)を活用したモダンなUI構築。

Backend & Data

Hono.js

tRPCではなくOpenAPI準拠を選択。モバイルアプリ等からのアクセスを想定し、言語非依存のAPI仕様を優先。RPC機能でWeb側の型安全性も確保。

pgvector & PostgreSQL

リレーショナルデータとベクトルデータを単一のDBで効率的に管理。

Drizzle ORM

TypeScriptファーストなORMによる型安全なDB操作。

AI & Pipeline

OpenAI API

Embedding(ベクトル化)およびChat Completion(回答生成)に使用。

MotherDuck (DuckDB)

データの加工・変換(ELT)を行うための高速な分析用データベース。

dbt (Data Build Tool)

約50万件のチャットログに含まれるスラング、URL、スタンプ等を正規化し、LLMが処理しやすい形式に変換。

DevOps

Vercel

フロントエンドおよびEdge関数のホスティングプラットフォーム。

Neon (PostgreSQL)

サーバーレスPostgreSQL。開発・本番環境の分離とスケーリングが容易。

RAG Process Flow

質問から回答生成までの処理フロー

Step 1

User Input

ユーザーからの質問・検索

  • Discord風のUIから自然言語で質問を入力
  • 入力内容をOpenAI Embedding APIへ送信
  • 質問文をベクトル表現に変換
Step 2

Vector Search

関連情報の検索

  • pgvectorを用いてコサイン類似度検索を実行
  • 過去の会話ログから関連性の高いチャンクを抽出
  • 類似度の高い順にコンテキストを取得
Step 3

Context Generation

プロンプト構築

  • 検索された会話コンテキストをプロンプトに注入
  • LLMへの指示(システムプロンプト)と結合
  • トークン数制限を考慮した最適化
Step 4

LLM Response

回答の生成と返却

  • OpenAI Chat Completion APIへリクエスト送信
  • 文脈を踏まえた回答をストリーミングで生成
  • UIへリアルタイムに表示

Contact

技術的な詳細、ソースコードの確認、または採用に関するお問い合わせはこちらから受け付けています。
このフォーム自体も、上記のアーキテクチャ(tRPC + Edge + Notion API連携)で動作しています。

Aromarious Portfolio

一緒に素敵なプロダクトを作りませんか?お気軽にお声がけください!

Made withandAromarious iconby a passionate engineer
© 2025-2026 Aromarious Portfolio. All rights reserved.

Contact Me

お仕事のご相談、技術メンタリング、その他お気軽にお問い合わせください

Get in Touch

GitHub

github.com/aromarious
Zenn

Zenn

zenn.dev/aromarious

X (Twitter)

@aromarious

Email

aromarious@gmail.com

Location

神奈川, 日本

Send Message

* は必須項目です

@

* 通常24時間以内にご返信いたします