Files
gpu-services/nanoclaude/config.py
Hyungi Ahn 6e24da56a4 feat: 이드 도구 확장 — 캘린더/메일/문서 연동 (read-only + 캘린더 생성 확인)
- tools/calendar_tool.py: CalDAV search/today/create_draft/create_confirmed
- tools/email_tool.py: IMAP search/read (전송 비활성화)
- tools/document_tool.py: Document Server search/read (read-only)
- tools/registry.py: 도구 디스패처 + WRITE_OPS 안전장치 + 에러 표준화
- 분류기: "tools" 액션 추가, 도구 목록/파라미터 스키마/규칙 명시
- Worker: tools 분기 + tool timeout 10초 + payload 2000자 제한
- conversation: pending_draft (TTL 5분) + create 확인 플로우
- 현재 시간을 분류기에 전달 (날짜 질문 대응)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 13:39:15 +09:00

59 lines
1.5 KiB
Python

from pydantic_settings import BaseSettings
class Settings(BaseSettings):
# EXAONE (rewriter) via Ollama
exaone_base_url: str = "http://localhost:11434"
exaone_model: str = "exaone3.5:7.8b-instruct-q8_0"
exaone_temperature: float = 0.7
exaone_timeout: float = 30.0 # rewrite는 짧아야 함
# Gemma 4 (reasoner) via MLX on Mac mini
reasoning_base_url: str = "http://192.168.1.122:8800"
reasoning_model: str = "mlx-community/gemma-4-26b-a4b-it-8bit"
reasoning_temperature: float = 0.7
reasoning_timeout: float = 180.0
# Pipeline
pipeline_enabled: bool = True # False = EXAONE 단독 모드 (Phase 1 fallback)
# Queue
max_concurrent_jobs: int = 3
# Health check
health_check_interval: float = 30.0
# Server
host: str = "0.0.0.0"
port: int = 8100
# DB
db_path: str = "/app/data/nanoclaude.db"
# Calendar (CalDAV)
caldav_url: str = ""
caldav_user: str = ""
caldav_pass: str = ""
# MailPlus (read-only)
mailplus_host: str = ""
mailplus_port: int = 993
mailplus_user: str = ""
mailplus_pass: str = ""
# Document Server (read-only)
document_api_url: str = ""
document_api_token: str = ""
# Synology Chat (비어있으면 비활성화)
synology_incoming_url: str = ""
synology_outgoing_token: str = ""
# Optional API key (empty = disabled)
api_key: str = ""
model_config = {"env_file": ".env", "extra": "ignore"}
settings = Settings()