目次

目次

LibreChatベースのサービス開発で学んだRAGとRAG API入門

アバター画像
岩田
アバター画像
岩田
最終更新日2025/12/05 投稿日2025/12/11

はじめに

この記事はレコチョク Advent Calendar 2025 の11日目の記事となります。 

私は最近、社内で利用しているAIチャットサービスの開発に参加することになりました。
このサービスでは、LibreChat(ChatGPTのようなチャットインターフェースを提供できるOSS)をベースに開発を行っています。
さて、LibreChatで使用されている技術の1つである「RAG API」をご存知でしょうか?

本記事では、「RAG APIって何?」という疑問から始まった私の学びを同じ疑問を持つ方に向けてわかりやすく解説します。

RAG APIとは

RAG APIとは、RAG技術を利用するためのAPIのことです。
「RAGとは何か」を理解していないと意味がわからないので、最初にRAGについて説明します。

RAGとは

RAG(Retrieval-Augmented Generation)とは、データベースから必要な情報を検索し、それをもとに精度の高い回答を生成する技術のことです。日本語では「検索拡張生成」と呼ばれます。
検索(Retrieval)機能を拡張(Augmented)し、質の高い回答を生成(Generation)可能にすることから、それぞれの頭文字を取って「RAG」と呼ばれています。

イメージが湧きやすいように具体例を挙げて説明します。
例えば、LLM(Large Language Model)に「今年一番聞いたアーティストを教えて」と質問しても回答は返ってきません。なぜなら、LLMはユーザーが聞いている音楽の情報を保持していないからです。
そこで、RAGを用いて自分の音楽履歴データベース(例:音楽アプリの再生履歴)の情報をLLMが使用できるようにします。
そして再度LLMに「今年一番聞いたアーティストを教えて」と質問すると、RAGが音楽履歴データベースから関連する情報を検索してLLMに渡し、LLMは「今年最も再生したアーティストは〇〇です」と正確な回答を返します。

このように、LLMが学習していない情報を活用できるようにすることで回答の精度を向上させる技術がRAGです。

RAGの仕組み

前述の「今年一番聞いたアーティスト」の例から、RAGがLLMの回答にどのように関わっているのか、仕組みを説明します。

RAGがない場合

RAGがない場合の図
  1. ユーザーが「今年一番聞いたアーティストを教えて」と質問
  2. LLMが質問をもとに回答を生成し、ユーザーに返却

結果: 正確な回答は返却されない(LLMは個人の音楽履歴を持っていないため)

RAGがある場合

RAGがある場合の図
  1. ユーザーが「今年一番聞いたアーティストを教えて」と質問
  2. RAGが音楽履歴データベースにアクセスし、質問に関連するデータを検索
  3. RAGが検索結果を取得
  4. 取得したデータとユーザーの質問をLLMへ渡す
  5. 渡された情報をもとにLLMが回答を生成し、ユーザーに返却

結果: 正確な回答が返却される(「今年最も再生したアーティストは〇〇です」)

RAGの強み

RAGの強みは、LLMが学習していない情報を補うことで精度の高い回答を得られるようになることです。
個人の音楽履歴や会社の社内文書、最新の情報など、LLMが知り得ない情報にRAGを通じてアクセス可能にすることで、より身近で精度の高い回答が可能になります。
また、LLMの学習後に更新された最新情報にも対応できるため、常に最新のデータを基にした回答が得られるようになります。

ただし、セキュリティには注意が必要です。
RAGがアクセスできる情報の範囲を適切に制限し、機密情報が不適切に共有されないように管理することが重要です。

LibreChatのRAG APIとは

ここまでRAGについて詳しく解説してきました。RAGが理解できるとRAG APIも理解できると思います。
次に、本題であるLibreChatのRAG APIとは何かを説明します。

LibreChatの公式ドキュメントには、RAG APIについて以下のように記載されています。

原文
The RAG (Retrieval-Augmented Generation) API is a powerful tool that integrates with LibreChat to provide context-aware responses based on user-uploaded files.
日本語訳
RAG(Retrieval-Augmented Generation)APIは、LibreChatと連携する強力なツールであり、ユーザーがアップロードしたファイルに基づいてコンテキストに応じた応答を提供します。

つまり、LibreChatにおけるRAG APIは、ユーザーがアップロードしたファイルをRAGの検索対象として利用し、LLMの回答精度を向上させる仕組みです。

RAG APIの動作は具体的に以下のような流れになります。イメージはRAGの仕組みで示した図と同じです。

  1. ユーザーがファイル(PDF、テキストなど)をLibreChatにアップロード
  2. アップロードされたファイルをDBに保存
  3. ユーザーが質問を送信
  4. RAG APIがDBに保存されたファイルから質問に関連する情報を検索
  5. 検索結果と質問をLLMに渡し、精度の高い回答を生成

一般的なRAGでは予め用意されたデータベースにアクセスしますが、LibreChatのRAG APIではユーザーがアップロードしたファイルが検索対象になる点が特徴的です。
仕組みの本質は同じRAG技術ですが、データの提供方法が異なるというわけです。

まとめ

本記事では、RAGとRAG APIについて具体例を交えながら解説してきました。
最後に、本記事のポイントを整理します。

RAGとは

  • データベースから必要な情報を検索し、それをもとに精度の高い回答を生成する技術
  • LLMが学習していない情報を活用できるため、個人データや社内文書など身近な情報にも対応可能

RAG APIとは

  • RAG技術を利用するためのAPI

LibreChatのRAG API

  • ユーザーがアップロードしたファイルをRAGの検索対象として利用し、LLMの回答精度を向上させる仕組み

おわりに

この記事が、私と同じように「RAG APIって何?」と疑問に思った方の理解の助けになれば幸いです。
ちなみに、私が今年一番聞いたアーティストは「swetty」でした!「I JUST」という曲がおすすめなのでぜひ聞いてみてください!

最後までお読みいただき、ありがとうございました!

明日の レコチョク Advent Calendar 2025 は12日目「AppleScriptとHammerspoonを使用して、ロック解除時にアプリケーションを自動的に開く仕組みを作成してみた」です。お楽しみに!

参考文献

アバター画像

岩田

目次