以下の内容はhttps://blog.studysapuri.jp/entry/2025/03/25/170000より取得しました。


イラストでわかるRAGを用いたbot開発~生成AIを使った開発の知識を深めよう~

こ〜んにちは〜!スタディサプリ小中高SREの@_a0iです。 先日RECRUIT TECH CONFERENCE 2025 プレイベントで「イラストでわかるRAGを用いたbot開発」と題してLTを行いました。 資料もアップされています。

speakerdeck.com (首痛いポーズがいいですね〜!)

資料を見ていただければ終わりではあるのですが、せっかくなのでブログで補足しながら説明しようと思います。

この分野についてちょっとでも気になる!という方に向けて改めて生成AI周りで登場する用語を整理してお伝えできればと思います。

なるべく平易な言葉を使うことで、開発者ではない方も含めて理解してもらえるようブログを書きました。

RAGとは

単なる検索システムを使う時より生成AIを組み合わせることのメリットとしては、自然言語で検索できるということがあげられます。

生成AIを使った開発に関連するキーワードのご紹介

生成AI開発に関連するキーワードの絵

ここでは「生成AIを使ってコードを書くためのツール・サービス」と「生成AIを使ったアプリケーションの開発」と二つに大別しています。

両方とも「生成AIを開発で使う」ことではありますが、今回後者のみについて詳しく説明します*1

生成AIを使ったアプリケーション開発の大きな要素

今回大きな要素として以下をあげました

  • ドキュメント検索bot
    • これは例としてアプリケーションを上げました
  • 生成AIプログラム(LangChain)
  • 検索システム(Google 検索、データベース検索、ベクター検索)
  • LLMのAPIを提供するサービス
  • LLM Observability

冒頭でも説明しましたが、このイラスト内の生成AIプログラム+検索システムをRAGと言います。

ではそれぞれについて詳しく説明していきましょう

LLMのAPIを提供するサービス

LLMのAPIを提供するサービスの概要図

生成AIを使ったアプリケーションではLLMのAPIを提供するサービスを経由してLLMを利用することが多いでしょう。

実際にアプリケーションを開発しない人でも、この概要図はぜひ参考にしていただければと思います。

API」「OpenAI API」「OpenAI」例えばこのように非常に似ているけれど微妙に意味しているところが違う、といったキーワードが頻出します。

ぜひこの図を参考に用語の整理を進めてもらえればと思います!!

この図から以下のことを理解してもらえたらと思います

  • LLMを使うためには"API提供サービス"を利用する
    • API提供サービスと使えるLLMの組み合わせは決まっている
    • 「今GCP使っているからGeminiでgpt-4o使おう!」←(2025年3月現在)できません
  • SaaSベンダーでは提携するLLM事業会社のモデルが使える

モデルの違い

API提供サービスと使えるLLMの組み合わせは決まっているなら自分が使っているSaaSにあわせてモデルを選べば良いか、というと必ずしもそうではありません。

使いたい用途などによってモデルによる性能の違いは大きいので、必要に応じて他のSaaSベンダーとも契約をすることになるでしょう。

生成AIプログラム(LangChain)

LLMのAPIを呼び出す方法は色々あります。一番簡単な方法として、shellでcurlを実行する方法でも呼び出せます。

しかし複雑なことをしたくなると、実装も複雑になります。

そこで利用されるのがLangChainというフレームワークです。LangGraphも合わせて使われることも多いです。

LLM Observability

Observability(可観測性)は一般のWebアプリケーションを運用するにあたって重要な指標だと言われていますが、生成AIを使ったアプリケーション開発でも重要です。

ただし生成AIを利用する部分はこれまでとは少し違うアプローチも含まれます。

他にも次のような指標は生成AIを使ったアプリケーション特有のメトリクスもありますね。

  • TTFT (Time to First Token):最初のトークンが表示されるまでの時間
  • TTLT (Time to Last Token):最後のトークンが表示されるまでの時間

これらを計測するためのツールをいくつか紹介します。

  • Datadog LLM Observability
    • Datadogを利用しているユーザーにとっては導入障壁が低いでしょう
    • Pythonライブラリを導入すると非常に楽でしたが、他の言語だと少し面倒です
  • LangSmith
    • LLM Observabilityにおいて最も機能が多いのではないでしょうか。その分少しお高いです
  • Langfuse
    • OSS版も存在します。LangSmithより安価な分機能は少ないですが、十分な機能が揃えられています

実践!Chat Bot開発

これまで紹介した技術を使ってスタディサプリではChat Botを開発しています。

具体的な設計や仕組みについては次の記事を参照してください。

blog.studysapuri.jp

上記ブログには記載していませんが、現在2つ目のChat BotAWSで開発中です。

それぞれ使っている技術についてご紹介します。

黄色い四角のパーツを二つ組み合わせることで「RAG」になります。

AWSでも黄色い四角のパーツがありますが、「Amazon Bedrock Knowledge Bases」を利用することで自動生成することができます。

AWSを使っている環境の方であれば、Amazon Bedrock Knowledge Basesを利用することが一番手っ取り早くRAGのシステムを構築できるでしょう。

このbotはまだ開発途中なので、完成した際にはまた詳細のブログを書きたいと思います。

BoltというSlack用のフレームワークを使うことで実装もかなりシンプルにできています。

開発中の課題と解決方法

まとめ

*1:スタディサプリの開発組織内では前者も絶賛活躍中です。以下のブログなど、今後もどんどん知見を共有できればと思っています。

blog.studysapuri.jp




以上の内容はhttps://blog.studysapuri.jp/entry/2025/03/25/170000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14