- embed_to_chroma.py → embed_to_qdrant.py 리라이트 (bge-m3 + Qdrant REST API) - auto_classify.scpt: embed_to_qdrant.py 경로 변경 + sourceChannel 덮어쓰기 버그 수정 - requirements.txt: chromadb/schedule 제거, qdrant-client/flask/gunicorn 추가 - credentials.env.example: GPU_SERVER_IP 항목 추가 - GPU 서버 재구성 계획서 (docs/gpu-restructure.md) + dev-roadmap/commands 통합 - CLAUDE.md, README.md, deploy.md 현행화 GPU 서버 변경사항 (이미 적용됨): - Ollama: qwen3.5:9b, id-9b 제거 → bge-m3 + bge-reranker-v2-m3 - Surya OCR 서비스 (:8400, systemd) - Docker + NFS + Komga 이전 (:25600) - tk-ai-service: Ollama API → OpenAI API 전환 (MLX 35B) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
119 lines
5.4 KiB
Markdown
119 lines
5.4 KiB
Markdown
# DEVONThink PKM System
|
|
|
|
Mac mini M4 Pro 기반 개인 지식관리(PKM) 자동화 시스템
|
|
|
|
## 시스템 구성
|
|
|
|
```
|
|
┌─────────────────── Mac mini M4 Pro (허브) ───────────────────┐
|
|
│ │
|
|
│ DEVONthink 4 ◄── DEVONagent Pro │
|
|
│ (13개 DB) (자동 검색) │
|
|
│ │ │
|
|
│ ┌────┴─────── 자동화 레이어 ────────────────────────┐ │
|
|
│ │ auto_classify.scpt 법령 모니터링 이메일 수집 │ │
|
|
│ │ omnifocus_sync.scpt 일일 다이제스트 PKM API │ │
|
|
│ └──────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ OmniFocus 4 MLX Qwen3.5-35B-A3B (AI 분류/번역) │
|
|
│ (작업 관리) localhost:8800 │
|
|
│ │
|
|
└──────────────────────────┬─────────────────────────────────────┘
|
|
│ Tailscale VPN
|
|
┌────────────────┼────────────────┐
|
|
┌─────────▼──────────┐ ┌────────────▼─────────────┐
|
|
│ Synology DS1525+ │ │ GPU 서버 (RTX 4070 Ti S) │
|
|
│ Gitea · MailPlus │ │ 임베딩 · OCR · 리랭킹 │
|
|
│ WebDAV 동기화 │ │ Plex │
|
|
└────────────────────┘ └──────────────────────────┘
|
|
```
|
|
|
|
## 핵심 기능
|
|
|
|
**AI 자동 분류** — DEVONthink Inbox에 들어온 문서를 MLX Qwen3.5가 분석하여 13개 DB 중 적합한 곳으로 자동 이동, 태그와 메타데이터를 자동 부여
|
|
|
|
**법령 모니터링** — 산업안전보건법, 중대재해처벌법 등 7개 한국 법령 + US OSHA, JP 厚労省, EU-OSHA 해외 법령 변경을 매일 자동 추적
|
|
|
|
**이메일 아카이브** — Synology MailPlus에서 IMAP으로 이메일을 수집하여 DEVONthink Archive DB에 자동 보관
|
|
|
|
**일일 다이제스트** — DEVONthink 변화, OmniFocus 진행 상황, 법령 변경 등을 종합한 일일 보고서 자동 생성
|
|
|
|
**OmniFocus 연동** — Projects DB의 TODO 패턴을 감지하여 OmniFocus에 작업 자동 생성, DEVONthink 역링크 포함
|
|
|
|
**REST API** — DEVONthink/OmniFocus 상태를 HTTP로 조회 (내부 모니터링용)
|
|
|
|
## 디렉토리 구조
|
|
|
|
```
|
|
scripts/ Python 스크립트
|
|
pkm_utils.py 공통 유틸 (로깅, 인증, LLM 호출)
|
|
law_monitor.py 법령 변경 모니터링 (한국+US/JP/EU)
|
|
mailplus_archive.py MailPlus 이메일 수집
|
|
pkm_daily_digest.py 일일 다이제스트 생성
|
|
pkm_api_server.py REST API 서버 (Flask, 포트 9900)
|
|
embed_to_chroma.py ChromaDB 벡터 임베딩
|
|
prompts/ AI 프롬프트 템플릿
|
|
|
|
applescript/ DEVONthink/OmniFocus 연동
|
|
auto_classify.scpt Inbox 자동 분류 Smart Rule
|
|
omnifocus_sync.scpt OmniFocus 작업 생성 Smart Rule
|
|
|
|
launchd/ macOS 스케줄 실행
|
|
net.hyungi.pkm.law-monitor.plist 매일 07:00
|
|
net.hyungi.pkm.mailplus.plist 매일 07:00, 18:00
|
|
net.hyungi.pkm.daily-digest.plist 매일 20:00
|
|
|
|
docs/ 문서
|
|
architecture.md 시스템 아키텍처
|
|
deploy.md 배포 가이드 + 트러블슈팅
|
|
claude-code-commands.md 개발 작업 지시서
|
|
dev-roadmap.md 개발 로드맵
|
|
devonagent-setup.md DEVONagent 검색 세트 가이드
|
|
industrial-safety-blueprint.md 산업안전 DB 설계
|
|
|
|
data/ 데이터
|
|
laws/ 수집된 법령 문서
|
|
law_last_check.json 마지막 확인 시점
|
|
|
|
tests/ 테스트
|
|
test_classify.py AI 분류 정확도 테스트
|
|
```
|
|
|
|
## 빠른 시작
|
|
|
|
```bash
|
|
# Mac mini에서
|
|
git clone https://git.hyungi.net/hyungi/devonthink_home.git "DEVONThink_my server"
|
|
cd "DEVONThink_my server"
|
|
python3 -m venv venv && source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
|
|
# 인증 정보 설정
|
|
mkdir -p ~/.config/pkm
|
|
cp credentials.env.example ~/.config/pkm/credentials.env
|
|
nano ~/.config/pkm/credentials.env # 실제 값 입력
|
|
chmod 600 ~/.config/pkm/credentials.env
|
|
```
|
|
|
|
자세한 배포 방법은 `docs/deploy.md` 참조
|
|
|
|
## 실행 환경
|
|
|
|
| 구성 요소 | 요구사항 |
|
|
|-----------|---------|
|
|
| macOS | 14+ (Sonoma) |
|
|
| Python | 3.11+ |
|
|
| DEVONthink | 4.x, GUI 실행 중 |
|
|
| OmniFocus | 4.x, GUI 실행 중 |
|
|
| MLX 서버 | Qwen3.5-35B-A3B, localhost:8800 |
|
|
| Tailscale | NAS/GPU 서버 접근용 |
|
|
|
|
## 개발
|
|
|
|
```
|
|
개발 흐름:
|
|
MacBook Pro (또는 Cowork) → git push → Gitea (NAS) → Mac mini에서 git pull
|
|
```
|
|
|
|
개발 현황과 다음 작업은 `docs/dev-roadmap.md` 참조
|