node-llama-cppでローカルLLMを使い、Function Callingやメモリ、ReActを学ぶ実践的なエージェント構築チュートリアル。
pguso/rag-from-scratch
ローカルLLMを使い、クラウドAPIに頼らずJavaScriptでRAGを一から段階的に学べるプロジェクト。
- スター
- 1,646
- フォーク
- 205
- 未解決の Issue
- 1
- 最終コミット
- 7 か月前
これは何?
RAG from Scratchは、開発者がRetrieval-Augmented Generationを手作業で組み立てながら学べるプロジェクトです。フレームワークに頼るのではなく、ドキュメントの読み込みと分割、embeddingの生成、ベクトルの保存、コンテキストの検索、検索したコンテキストをローカルLLMに渡して根拠のある回答を生成するまで、各段階をコメント付きの短いJavaScriptの例で実装します。
各例ではパイプライン全体を決まった順序で扱います。まず70行未満の最小構成のRAGフローから始め、インメモリのベクトルストア、コサイン類似度、メタデータフィルタリングへと進みます。さらに、クエリの前処理、BM25を使ったキーワード検索とベクトル検索のハイブリッド検索、reciprocal rank fusionによる複数クエリ検索、ヒューリスティックまたはnode-llama-cpp経由のローカルQwenモデルを使ったクエリ書き換えを扱う例もあります。
リポジトリには、src/以下に再利用可能なライブラリも含まれています。ローダー(テキスト、PDF、ディレクトリ)、テキストスプリッター、embeddingとキャッシュのラッパー、LanceDBやQdrantを含むベクトルストア、retriever、chainを備えています。reranking、評価指標、ストリーミングなど、今後追加予定のトピックも挙げられています。
主な機能
- 01embeddingから生成まで、RAGを段階的に組み立てるサンプル
- 02node-llama-cppによるローカルLLMの推論に対応し、クラウドAPIは不要
- 03近傍検索とメタデータフィルタリングに対応したインメモリのベクトルストア
- 04ベクトル類似度検索とBM25によるキーワードスコアリングを組み合わせたハイブリッド検索
- 05reciprocal rank fusionと重複排除を使った複数クエリ検索
- 06ローダー、テキストスプリッター、LanceDBまたはQdrantのストアを備えた再利用可能なライブラリ
ユースケース
- 検索、embedding、プロンプト拡張がどのように連携するかを学ぶ
- 完全オフラインで動作するドキュメント質問応答フローを試作する
- ベクトル検索、キーワード検索、ハイブリッド検索などの検索方式を比較する
- より大規模なフレームワークを導入する前に、チームでRAGの内部構造を学ぶ
トピック
よくある質問
- rag-from-scratch とは?
- ローカルLLMを使い、クラウドAPIに頼らずJavaScriptでRAGを一から段階的に学べるプロジェクト。 RAG from Scratchは、開発者がRetrieval-Augmented Generationを手作業で組み立てながら学べるプロジェクトです。フレームワークに頼るのではなく、ドキュメントの読み込みと分割、embeddingの生成、ベクトルの保存、コンテキストの検索、検索したコンテキストをローカルLLMに渡して根拠のある回答を生成するまで、各段階をコメント付きの短いJavaScriptの例で実装します。
- rag-from-scratch は無料で使えますか?ライセンスは?
- rag-from-scratch は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- rag-from-scratch は今もメンテナンスされていますか?
- 半年以上コミットなし。rag-from-scratch の最終コミットは 2026年3月11日 です。
- rag-from-scratch は何に使えますか?
- 検索、embedding、プロンプト拡張がどのように連携するかを学ぶ 完全オフラインで動作するドキュメント質問応答フローを試作する ベクトル検索、キーワード検索、ハイブリッド検索などの検索方式を比較する より大規模なフレームワークを導入する前に、チームでRAGの内部構造を学ぶ
- rag-from-scratch はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/pguso/rag-from-scratch
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Rustコアを備えたPython製の差分データパイプライン。AIエージェントやRAGアプリ向けに、ベクトルインデックスや知識グラフを更新します。
LangGraphを使った、階層型インデックスや会話メモリ、質問の明確化に対応するモジュール式Agentic RAGチュートリアル。
書籍『AI Agents: The Definitive Guide』の関連コードリポジトリ。エージェントのパターン、ツール、評価、メモリ、セキュリティを扱うJupyterノートブックを収録。
開発者やチーム向けに、ワークフロー自動化ソフトウェアやAIエージェント基盤、学習リソースを厳選したリストです。
LLMエージェントのメモリ技術を扱う、30本の実行可能なJupyterノートブックを収録した学習用リポジトリ。