Фаза 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:
+36
@@ -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:
|
||||
Reference in New Issue
Block a user