ハイブリット検索を実現するRAG実装に向けた Supabase の PostgreSQL 利用事例
NOT A HOTEL株式会社 / codehex
メンバー / フルスタックエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
利用プラン | 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|---|
Pro | Edge Function, PostgreSQL | 10名以下 | 2023年2月 | B to B B to C |
アーキテクチャ
![アーキテクチャ図](https://cdn.findy-tools.io/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBKdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--15e9be531f1c7fb23b39ddf6baba813f83ad61a5/hex%E6%A7%98.png?disposition=inline)
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- RAG を実装したく、AI に与える知識となるデータをどこに蓄積するか
- お客様とカスタマーサポート間のチャットメッセージを分析用途として、閲覧制限を設けながら BigQuery とも連携できるような DB を用意したかった
どのような状態を目指していたか
- RAG を実装して、お客様が求める情報を検索し回答できるチャットボットの提供及び、今後の開発方針を決定するための分析可能な土台の作成。
比較検討したサービス
GCP, Neon, Pinecone
比較した軸
利用したい機能が使えるかどうか
- RAG を実装のために当時少なかった、ベクトル検索エンジンとして pgvector 拡張機能が利用可能な PostgreSQL を使いたかった。Pinecone もあったが、ベクトルに特化した DB だったので、ベクトル検索以外の逃げ道も用意したかった
- やはりベクトル検索だけでは精度が悪かったので、ハイブリッドな検索を行えるように日本語の全文検索拡張機能がある PGroonga 拡張機能も Serverless PostgreSQL では Supabase しかなかった
選定理由
PGroonga の PostgreSQL 拡張機能と Edge Function
導入の成果
改善したかった課題はどれくらい解決されたか
RAG に関しては実験的なもの(ベータ版)としてリリースをしました。ちゃんと計測してませんが、何度も検証していた感覚として、当時知識がない状態でデータを作成したせいか、ベクトル検索に関して精度は良くありませんでした。しかし、PGroonga を利用した全文検索は比較的良かったと思います。
Supabase ならではだと思うのですが、アプリケーションを用意できるプラットフォーム故、PoC としてデータの蓄積方法を変更したアプリケーションもすぐに用意でき、検証を何度も重ねることができました。
チャットメッセージを分析用途として、GCP の Datastream を利用して BigQuery と上手く連携することができました。開発者とデータ分析チームのみ閲覧制限を設けられました。
導入時の苦労・悩み
Supabase 自体の利用方法や作法の学習
導入に向けた社内への説明
上長・チームへの説明
- Supabase を利用するとデータを PostgreSQL を使える
- BigQuery へ PostgreSQL からデータをほぼリアルタイムに同期できるので分析ができる
- 開発環境を用意するのが簡単
活用方法
よく使う機能
PostgreSQL, Edge Function
ツールの良い点
- ローカルで Supabase の環境を整えるのが簡単
- PostgreSQL で困ったことがあると、Supabase に問い合わせるだけで、調査もしてくれるし最適化の方法も提案してくれる。返答が早い。
- PostgreSQL のコネクションプーリングしてくれる Supavisor と呼ばれるプロキシも提供してくれるので、リクエストごとにコネクションを気軽に閉じることもできる
- 信頼のあるクラウドベンダー上で Edge Function が動いているため、Cloud Workers 上からアクセスできない REST API (DeepL など) もアクセスできる
ツールの課題点
まだ日本語での知見が少ない
ツールを検討されている方へ
サポートが非常に良いので、安心して使えるプラットフォームだと思います。
NOT A HOTEL株式会社 / codehex
メンバー / フルスタックエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
新卒で株式会社メルカリへ入社し、株式会社ベースマキナを経て 22年12月 NOT A HOTEL 参画。AIコンシェルジュをメインに開発中。
よく見られているレビュー
NOT A HOTEL株式会社 / codehex
メンバー / フルスタックエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
新卒で株式会社メルカリへ入社し、株式会社...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法