comandosai/m-make-skills

rag-pgvector

Собирает «умную базу знаний» (RAG) на Supabase pgvector для micro-SaaS в модуле M·MAKE, Часть 2 «Движок».

Ver código-fonte

Como usar

  1. Copie o comando e verifique o pacote antes de instalar no seu ambiente de agente.
  2. Consulte no original as ferramentas, credenciais e ambientes necessários.
  3. Descreva os dados de entrada e a entrega esperada; confira a saída com as fontes.
npx skills add https://github.com/comandosai/m-make-skills --skill rag-pgvector

Antes de começar

  • A instalação não inclui assinatura de modelo, franquia API ou acesso aos seus arquivos.
  • Estrelas e instalações indicam atividade, não um teste independente de qualidade ou segurança.
Documento original do Skill

Renderizado do repositório de origem, preservando títulos, exemplos, código, tabelas, links e imagens.

Навык: База знаний на pgvector (RAG) — модуль M·MAKE, Часть 2

Как запустить: «сделай базу знаний» / «чтобы отвечал по моим документам».

Сначала различи два уровня (не путать):

  • Уровень 1 — простой справочник. Вопрос→ответ, материал→норматив, правило→действие. Это обычные таблицы Postgres, приложение читает нужную строку. AI и RAG НЕ нужны. Если у человека так — скажи прямо и не строй вектор.
  • Уровень 2 — RAG (этот навык). Нужен, когда AI должен отвечать по ТВОИМ документам, не выдумывая. Только тогда векторная база.

Модель RAG: документы → режем на куски (чанки) → превращаем в эмбеддинги (числовые отпечатки смысла) → храним в pgvector → на вопрос находим похожие куски → отдаём их модели как контекст → модель отвечает только из найденного (меньше галлюцинаций).


⚙️ Рецепт (по нему строит агент через Supabase MCP)

1. Нарезка (chunking) — самое важное

  • Режь по структуре: заголовки → абзацы → предложения. НЕ по N символов вслепую (иначе ответы плывут).
  • Размер куска ~400–500 токенов, перекрытие ~10–15% (~50 токенов), не разрывать предложения.
  • Каждый кусок начинать с названия раздела (сохраняем контекст).

2. Эмбеддинги — через OpenAI (ключ на сервере)

  • Дефолт `text-embedding-3-small` (1536). Нужно лучше по русскому — `text-embedding-3-large` (3072).
  • НЕ `gte-small` (она только английская).
  • ⚠️ Правило: размерность колонки `vector` = размерности модели. 3-small = 1536, 3-large = 3072. Сменил модель → пересоздай колонку/индекс и переэмбедди всю базу заново.

3. Хранение и поиск (Supabase)

  • Таблица, напр. documents: id, content text, metadata jsonb (источник, владелец), embedding vector(1536).
  • Индекс HNSW по embedding (когда документов много).
  • SQL-функция `match_documents(query_embedding, match_count, filter)` — косинусное сходство (<=>), возвращает топ-N.
  • Для точности можно гибрид (смысл + полнотекст), но начни с чистого векторного.

4. Два потока в Edge Functions

  • Индексация: загрузил документ → Edge Function режет на чанки → делает эмбеддинги (OpenAI, ключ из Deno.env.get) → пишет строки в documents.
  • Ответ: вопрос → эмбеддинг вопроса → match_documents топ-5 → собрать найденные куски в контекст → chat completion с инструкцией: «Отвечай ТОЛЬКО из этого контекста. Если ответа нет — так и скажи, не выдумывай» → показать ответ + источники.

🔒 Правила и грабли

  1. Ключ OpenAI — только на сервере (Edge Function secrets), в чат не проси. По ключам зови навык secrets-policy (Проводник за руку).
  2. Изоляция: если база знаний персональная — фильтруй по владельцу (RLS / metadata), иначе человек увидит чужие документы.
  3. Грабли: нарезка вслепую · забыть HNSW-индекс · рассинхрон размерности · не поставить фильтр доступа.
  4. Строишь через Supabase MCP (миграции, функция, Edge Functions). Аддитивно к живому — не ломай рабочие трубы.
  5. Код по месту генерит родной агент; навык задаёт рецепт, параметры и правила.

✅ Определение готовности

Загрузил документ → задал вопрос по нему → получил верный ответ со ссылкой на источник; задал вопрос НЕ по базе → модель честно говорит «не знаю».

Источники рецепта

Supabase Semantic Search (supabase.com/docs/guides/ai/semantic-search), Generate embeddings, Vector indexes; OpenAI embeddings (text-embedding-3-*); практики нарезки RAG 2025–2026 (Firecrawl, Weaviate).