feat: implement TTS, Document processing, and Memory Service /facts API

- TTS: xtts-v2 integration with voice cloning support
- Document: docling integration for PDF/DOCX/PPTX processing
- Memory Service: added /facts/upsert, /facts/{key}, /facts endpoints
- Added required dependencies (TTS, docling)
This commit is contained in:
Apple
2026-01-17 08:16:37 -08:00
parent a9fcadc6e2
commit 5290287058
121 changed files with 17071 additions and 436 deletions

296
DETAILED-DISK-ANALYSIS.md Normal file
View File

@@ -0,0 +1,296 @@
# 📊 Детальний аналіз використання диску
**Дата:** 2026-01-12
**Детальний розбір кожного джерела**
---
## 1. 🔍 Monero Blockchain: 91GB
### Що це таке?
**Monero** - це криптовалюта з фокусом на приватність. Blockchain - це база даних всіх транзакцій.
### Що займає місце?
**Розташування:** `~/.bitmonero/lmdb/data.mdb`
**Розмір:** 91GB - це один файл бази даних LMDB (Lightning Memory-Mapped Database)
**Що містить:**
- Всі блоки blockchain Monero (з моменту запуску)
- Всі транзакції
- Індекси для швидкого пошуку
- Метадані
### Чому так багато?
Monero blockchain росте постійно. Кожен блок містить:
- Транзакції (з обфускацією для приватності)
- Ring signatures (підписи кільця)
- Stealth addresses (приховані адреси)
- Range proofs (докази діапазону)
Це все займає більше місця ніж звичайний blockchain (наприклад, Bitcoin).
### Що робити?
**Варіант 1: Видалити (якщо не використовуєте Monero)**
```bash
rm -rf ~/.bitmonero
```
**Звільнить:** 91GB
**Варіант 2: Перенести на зовнішній диск**
```bash
# Зупинити Monero wallet
# Перенести
mv ~/.bitmonero /Volumes/ExternalDisk/
# Створити симлінк
ln -s /Volumes/ExternalDisk/.bitmonero ~/.bitmonero
```
**Варіант 3: Залишити (якщо використовуєте)**
- Blockchain продовжить рости
- Можна налаштувати pruned node (зменшує розмір, але втрачає повну історію)
---
## 2. 🔍 Cursor Worktrees: 2 моделі по 61GB
### Що це таке?
**Cursor worktrees** - це тимчасові копії проєкту, які створює Cursor IDE для роботи з AI.
### Що займає місце?
**Розташування:**
- `~/.cursor/worktrees/microdao-daarion/s4s0P/models/qwen3-vl-32b-instruct/qwen3-vl-32b-instruct-f16.gguf` - 61GB
- `~/.cursor/worktrees/microdao-daarion/6IOTQ/models/qwen3-vl-32b-instruct/qwen3-vl-32b-instruct-f16.gguf` - 61GB
**Всього:** 122GB (2 копії однієї моделі)
### Чому дві копії?
Cursor створює окремий worktree для кожної AI сесії або контексту. Можливо:
- Дві різні сесії роботи
- Два різні контексти
- Помилка (не видалився старий worktree)
### Що робити?
**Варіант 1: Видалити одну копію (рекомендовано)**
```bash
# Перевірити яка новіша
ls -lh ~/.cursor/worktrees/microdao-daarion/s4s0P/models/qwen3-vl-32b-instruct/
ls -lh ~/.cursor/worktrees/microdao-daarion/6IOTQ/models/qwen3-vl-32b-instruct/
# Видалити старішу (або обидві якщо не потрібні)
rm -rf ~/.cursor/worktrees/microdao-daarion/s4s0P
# АБО
rm -rf ~/.cursor/worktrees/microdao-daarion/6IOTQ
```
**Звільнить:** 61GB
**Варіант 2: Видалити обидві (якщо не потрібні)**
```bash
rm -rf ~/.cursor/worktrees/microdao-daarion/s4s0P
rm -rf ~/.cursor/worktrees/microdao-daarion/6IOTQ
```
**Звільнить:** 122GB
**Варіант 3: Перенести на зовнішній диск**
```bash
# Перенести моделі
mv ~/.cursor/worktrees/microdao-daarion/s4s0P/models /Volumes/ExternalDisk/
# Створити симлінк
ln -s /Volumes/ExternalDisk/models ~/.cursor/worktrees/microdao-daarion/s4s0P/models
```
---
## 3. 🔍 Docker.raw: 1.8TB
### Що це таке?
**Docker.raw** - це віртуальний диск, який використовує Docker Desktop для зберігання всіх даних Docker.
### Що займає місце?
**Розташування:** `~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw`
**Розмір:** 1.8TB (майже весь диск!)
**Що містить:**
- Docker образи (images)
- Контейнери (containers)
- Volumes (дані контейнерів)
- Build cache
- Networks
- Логи
### Чому так багато?
**Можливі причини:**
1. **Великі образи** - багато Docker образів накопичилось
2. **Volumes з даними** - контейнери зберігають дані в volumes
3. **Build cache** - кеш збірки образів
4. **Логи** - великі log файли
5. **Невикористовувані ресурси** - старі образи, зупинені контейнери
### Що робити?
**Крок 1: Очистити Docker (безпечно)**
```bash
# Перевірити що займає місце
docker system df
# Очистити все невикористовуване
docker system prune -a --volumes -f
# Перевірити результат
docker system df
```
**Крок 2: Зменшити розмір Docker.raw**
**Через Docker Desktop:**
1. Відкрити Docker Desktop
2. Settings → Resources → Advanced
3. Disk image size → зменшити до 128GB (або 256GB якщо потрібно більше)
4. Apply & Restart
**УВАГА:** Docker автоматично зменшить розмір файлу, але це може зайняти час.
**Крок 3: Перевірити volumes**
```bash
# Перевірити volumes
docker volume ls
docker volume inspect <volume-name>
# Видалити невикористовувані volumes
docker volume prune -f
```
---
## 4. ⚠️ Чи не вплине зменшення Docker.raw на НОДА2?
### Відповідь: НІ, не вплине (якщо правильно зробити)
### Чому безпечно?
1. **Docker.raw - це максимальний розмір, не фактичний**
- Docker.raw може бути 1.8TB, але фактично використовується менше
- Зменшення до 128GB просто обмежує максимальний розмір
2. **Docker автоматично очистить зайве**
- При зменшенні Docker видалить невикористовувані дані
- Активні контейнери та образи залишаться
3. **НОДА2 використовує тільки активні ресурси**
- Якщо контейнери працюють - вони залишаться
- Якщо образи використовуються - вони залишаться
### Що може статися?
**Проблема 1: Недостатньо місця після зменшення**
- Якщо фактично використовується більше 128GB
- Docker не зможе зменшити розмір
- Потрібно спочатку очистити
**Рішення:**
```bash
# Спочатку очистити
docker system prune -a --volumes -f
# Перевірити фактичне використання
docker system df
# Якщо менше 128GB - можна зменшувати
```
**Проблема 2: Втрата невикористовуваних даних**
- Старі образи можуть бути видалені
- Невикористовувані volumes можуть бути видалені
**Рішення:**
- Зробити backup важливих volumes перед очищенням
- Перевірити які образи потрібні
### Рекомендований план для НОДА2:
1. **Перевірити що працює:**
```bash
docker ps
docker images
docker volume ls
```
2. **Очистити невикористовуване:**
```bash
docker system prune -a --volumes -f
```
3. **Перевірити фактичне використання:**
```bash
docker system df
```
4. **Якщо менше 128GB - зменшити:**
- Через Docker Desktop Settings
- Disk image size → 128GB
5. **Перевірити що все працює:**
```bash
docker ps
curl http://localhost:9102/health
curl http://localhost:8890/health
```
---
## 📊 Підсумок
| Джерело | Розмір | Що робити | Вплив на НОДА2 |
|---------|--------|-----------|----------------|
| **Monero** | 91GB | Видалити/перенести | ❌ Не вплине |
| **Cursor models** | 122GB | Видалити одну копію | ❌ Не вплине |
| **Docker.raw** | 1.8TB | Очистити + зменшити до 128GB | ✅ Безпечно (якщо правильно) |
---
## 🚀 Безпечний план дій
### 1. Monero (91GB)
```bash
# Якщо не використовуєте - видалити
rm -rf ~/.bitmonero
```
### 2. Cursor models (122GB)
```bash
# Видалити одну копію (старішу)
rm -rf ~/.cursor/worktrees/microdao-daarion/s4s0P
# АБО
rm -rf ~/.cursor/worktrees/microdao-daarion/6IOTQ
```
### 3. Docker.raw (1.8TB)
```bash
# 1. Очистити
docker system prune -a --volumes -f
# 2. Перевірити використання
docker system df
# 3. Зменшити через Docker Desktop Settings
# Settings → Resources → Advanced → Disk image size → 128GB
```
**Загальне звільнення:** ~1.8TB
---
**Оновлено:** 2026-01-12
**Статус:** ✅ Детальний аналіз готовий