Архітектурні нотатки Obsidian: стек, модель даних, MCP інструменти, деплой, roadmap
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
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 інструменти]]
|
||||
Reference in New Issue
Block a user