pgvector

command
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

README

pgvector — RAG с PostgreSQL + pgvector

Интерактивный RAG-чат с pgvector как постоянным векторным хранилищем. Схема БД создаётся автоматически при первом запуске через MigratePGVector (идемпотентно).

Быстрый старт

1. Запустите PostgreSQL с pgvector:

docker compose up -d

2. Запустите пример:

cd examples/pgvector && cp .env.example .env && go run .

Для mock-режима этого достаточно. Для реального LLM задайте LLM_PROVIDER=ollama|openai|anthropic и соответствующие ключи.

Переменные окружения

Переменная По умолчанию Описание
LLM_PROVIDER mock LLM провайдер (mock, ollama, openai, anthropic)
EMBEDDING_DIM 1536 Размерность векторов (должна совпадать с моделью)
PGVECTOR_DSN Обязательно. DSN для подключения к PostgreSQL
TABLE_NAME draftrag_chunks Имя таблицы для хранения чанков

Для LLM_PROVIDER=ollama:

Переменная По умолчанию Описание
OLLAMA_HOST http://localhost:11434 URL Ollama
OLLAMA_EMBED_MODEL nomic-embed-text Модель эмбеддингов
OLLAMA_LLM_MODEL llama3.2 LLM модель

Для LLM_PROVIDER=openai:

Переменная По умолчанию Описание
OPENAI_API_KEY Обязательно. API ключ
OPENAI_BASE_URL https://api.openai.com Базовый URL
OPENAI_EMBED_MODEL text-embedding-3-small Модель эмбеддингов
OPENAI_LLM_MODEL gpt-4o-mini LLM модель

Для LLM_PROVIDER=anthropic:

Переменная По умолчанию Описание
ANTHROPIC_API_KEY Обязательно. API ключ
ANTHROPIC_LLM_MODEL claude-3-5-sonnet-latest LLM модель

Размерность векторов

Размерность должна соответствовать используемой модели эмбеддингов:

Модель EMBEDDING_DIM
text-embedding-ada-002 1536
text-embedding-3-small 1536
text-embedding-3-large 3072
nomic-embed-text (Ollama) 768

Если размерность изменилась после первого запуска — нужно пересоздать таблицу или использовать другое TABLE_NAME.

Миграции

MigratePGVector создаёт таблицу и индекс при первом запуске. Повторный запуск безопасен — миграции идемпотентны.

Для production рекомендуется применять SQL-миграции отдельным шагом деплоя:

psql $PGVECTOR_DSN -f pkg/draftrag/migrations/pgvector/0000_pgvector_extension.sql
psql $PGVECTOR_DSN -f pkg/draftrag/migrations/pgvector/0001_chunks_table.sql
psql $PGVECTOR_DSN -f pkg/draftrag/migrations/pgvector/0002_metadata_and_indexes.sql

Локальный режим (Ollama)

ollama pull nomic-embed-text
ollama pull llama3.2

PGVECTOR_DSN="postgres://draftrag:draftrag@localhost:5432/draftrag?sslmode=disable" \
EMBEDDING_DIM=768 \
LLM_PROVIDER=ollama \
OLLAMA_HOST=http://localhost:11434 \
go run ./examples/pgvector/

Documentation

Overview

@sk-task docs-and-examples#T2.2: pgvector example — RAG-чат с PostgreSQL + pgvector (AC-001). Использует публичный API draftrag напрямую. Shared только для mock/print.

Быстрый старт с Docker:

docker compose up -d
PGVECTOR_DSN="postgres://draftrag:draftrag@localhost:5432/draftrag?sslmode=disable" \
  go run ./examples/pgvector/

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL