Repolode
pguso

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 の数値は毎日更新されます。

関連プロジェクト