コンテンツへスキップ

PostgreSQL

濃紺の背景にデータベースの円筒シンボルがあり、周囲に金色の点と線でベクトルのクラスターを表した図

Django × pgvector でRAGを自前構築する

専用のベクトルDBを契約せず、すでに動いているPostgreSQLにpgvectorを入れてRAGを組む構成。次元数が後から変えられない理由、e5系のプレフィックス、HNSWとIVFFlatの選び分け、しきい値をギャップで切る方法、そして最も重い「埋め込みモデルを差し替える日」の入れ替え手順まで、Djangoの実コードで解説します。

左から流れてくる書類が中央の格子状フィルターで絞られ、一部だけが右へ通過する図

社内RAGで「他部署の資料が見えてしまう」問題の解き方

ベクトル検索は「意味が近いか」しか見ていないため、閲覧権限のない文書も平気で返してきます。社内RAGが本番直前に必ずぶつかるこの壁を、Django+pgvectorの事前フィルタでどう塞ぐか。後フィルタが破綻する理由、絞り込むと件数が足りなくなるHNSWの罠、そして実装後も残る3つの漏洩経路まで書きます。