Files

69 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

---
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 інструменти]]