Фаза 1: скелет MCP-сервера пам'яті

- TypeScript + @modelcontextprotocol/sdk, Streamable HTTP (stateless), API-ключ
- Схема БД: projects, memories (FTS + vector 1024), memory_links, sessions
- Інструменти: memory_* (save/query/get/update/delete/link/graph), project_* (list/create/get_state/save_state)
- EmbeddingProvider абстракція (Null у фазі 1, Ollama bge-m3 у фазі 2)
- Dockerfile + compose.yml (ai-memory-server + ai-memory-db pgvector/pgvector:pg18)
- Оновлено нотатки: PostgreSQL 18 як сервіс у stack'у проекту

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
sages-ds
2026-07-14 15:16:20 +03:00
parent 6b8989098a
commit b1e73cc2c0
15 changed files with 3070 additions and 8 deletions
+36
View File
@@ -0,0 +1,36 @@
# Portainer stack: ai-memory-network
# Volumes у Portainer підмінити на bind до датасету homeLab/portainer/apps/ai-memory-network
services:
ai-memory-server:
build: .
container_name: ai-memory-server
restart: unless-stopped
ports:
- "8767:8767"
environment:
- PORT=8767
- DATABASE_URL=postgres://ai_memory:${POSTGRES_PASSWORD}@ai-memory-db:5432/ai_memory
- API_KEYS=${API_KEYS}
# Фаза 2: - OLLAMA_URL=${OLLAMA_URL}
depends_on:
ai-memory-db:
condition: service_healthy
ai-memory-db:
image: pgvector/pgvector:pg18
container_name: ai-memory-db
restart: unless-stopped
environment:
- POSTGRES_DB=ai_memory
- POSTGRES_USER=ai_memory
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ai_memory -d ai_memory"]
interval: 5s
timeout: 5s
retries: 10
volumes:
db-data: