--- tags: [архітектура, база-даних, postgresql] created: 2026-07-14 --- # Модель даних База: `ai_memory` у **PostgreSQL 18, що працює окремим контейнером у stack'у проекту** (образ `pgvector/pgvector:pg18` — розширення pgvector вже в комплекті, лишається `CREATE EXTENSION vector;`). Див. [[Деплой на TrueNAS]]. ## Таблиці ### `projects` Логіка проектів за аналогією з project-agent. | Колонка | Тип | Примітка | |---------|-----|----------| | id | bigserial PK | | | name | text UNIQUE | kebab-case | | summary | text | опис проекту | | status | text | active / archived | | metadata | jsonb | розширювані атрибути (repo url тощо) | | created_at, updated_at | timestamptz | | ### `memories` Універсальні записи пам'яті. | Колонка | Тип | Примітка | |---------|-----|----------| | id | bigserial PK | | | project_id | bigint FK → projects, NULL | NULL = глобальний scope | | type | text | fact / note / session_state / document / entity / … | | title | text | | | content | text | markdown | | content_tsv | tsvector (generated) | FTS-індекс, конфіг simple+ukrainian | | embedding | vector(1024), NULL | заповнюється у фазі 2 (bge-m3) | | metadata | jsonb | теги, джерело, агент-автор тощо | | created_at, updated_at | timestamptz | | ### `memory_links` Граф зв'язків — аналог `[[wiki-посилань]]` Obsidian. | Колонка | Тип | Примітка | |---------|-----|----------| | source_id | bigint FK → memories | | | target_id | bigint FK → memories | | | link_type | text | related / parent / derived-from / … | | PK | (source_id, target_id, link_type) | | ### `sessions` Стан сесій проекту (аналог claude_memory у project-agent). | Колонка | Тип | Примітка | |---------|-----|----------| | id | bigserial PK | | | project_id | bigint FK → projects | | | session_summary | text | | | todo_json | jsonb | `{ tasks: [{ task, priority, note }] }` | | changes | text | | | bugs | text | | | architecture_notes | text | | | created_at | timestamptz | | ## Пошук - **Фаза 1:** FTS по `content_tsv` + фільтри (project, type, metadata) + ranking `ts_rank`. - **Фаза 2:** гібридний скоринг — cosine similarity (pgvector, HNSW-індекс) + FTS, об'єднання через RRF (Reciprocal Rank Fusion). Пов'язане: [[Огляд архітектури]], [[MCP інструменти]]