feat: NanoClaude Phase 3 — Synology Chat 연동

- POST /webhook/synology: outgoing webhook 수신 + token 검증
- 파이프라인 완료 시 incoming webhook으로 응답 자동 전송
- "분석 중..." typing 메시지 선전송
- 응답 길이 1500자 제한 (Synology Chat 제한 대응)
- 에러/실패 시에도 사용자에게 알림 메시지 전송
- 중복 요청 방지 (30초 TTL dedup)
- Synology에서 rewrite 이벤트 숨김 (SSE에서만 노출)
- callback 구조로 확장 가능 (Slack, Discord 등)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-06 12:25:48 +09:00
parent 9f0c527442
commit a44f6446cf
8 changed files with 144 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
"""NanoClaude — 비동기 job 기반 AI Gateway (Phase 2: EXAONE → Gemma 파이프라인)."""
"""NanoClaude — 비동기 job 기반 AI Gateway (Phase 3: Synology Chat 연동)."""
from __future__ import annotations
@@ -11,7 +11,7 @@ from fastapi.responses import JSONResponse
from config import settings
from db.database import init_db
from routers import chat
from routers import chat, synology
from services.backend_registry import backend_registry
from services import job_queue as jq_module
@@ -57,6 +57,7 @@ async def check_api_key(request: Request, call_next):
app.include_router(chat.router)
app.include_router(synology.router)
@app.get("/")