6b8989098a
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
69 lines
2.7 KiB
Markdown
69 lines
2.7 KiB
Markdown
---
|
||
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 інструменти]]
|