LangChainを使わずRAGをゼロから自作。Markdown/PDF/テキストを投入するとローカルLLM(Ollama)で質問応答できる。luy869.netに自己紹介Botとして実運用中。
LangChain / LlamaIndex 等のフレームワークに一切頼らず、RAGの各レイヤー(チャンキング・ベクトル検索・LLM生成)をゼロから設計・実装したセルフホスト型プラットフォーム。Markdown / PDF / テキストを投入するとローカルLLM(Ollama)で質問応答でき、luy869.net に自己紹介チャットBotとして実運用している。
| レイヤー | 技術 |
|---|---|
| バックエンド | Python 3.12 + FastAPI |
| ベクトルDB | ChromaDB(コサイン距離) |
| LLM(Primary) | Ollama(Qwen3) |
| LLM(Fallback) | Gemini API |
| フロントエンド | React + TypeScript + Vite + Tailwind CSS |
| インフラ | 自宅サーバー + Cloudflare Tunnel + Workers |
heading_path(例: エピソード集 > エピソード1 > 課題)をメタデータとして保持。固定長分割より文脈精度が向上したhnsw:space: cosine を明示指定して修正ollama.AsyncClient に変更してSSEストリーミングを実現system_prompt フィールドから外部注入できる脆弱性(高)を優先修正think=False で1〜2秒に改善(約30〜50倍高速化)3日間でRAGエンジン本体・管理フロントエンド・チャットウィジェット・Cloudflare構成をすべて完成・公開。本番デプロイ時に発生した29件のトラブルを「原因→解決→学び」の形で記録し、技術判断を言語化する習慣が身についた。