- 슬래시 명령이 아닌 메시지를 Claude Haiku 4.5로 응답 - system 프롬프트 + 히스토리 끝 블록에 cache_control:ephemeral 적용 - conversation_messages 테이블에 토큰·캐시·latency 기록 - chat_id 화이트리스트 + 분당 rate limit - GET /api/agent-office/conversation/stats 로 캐시 히트율·토큰 확인
33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
import os
|
|
|
|
# Service URLs (Docker internal network)
|
|
STOCK_LAB_URL = os.getenv("STOCK_LAB_URL", "http://localhost:18500")
|
|
MUSIC_LAB_URL = os.getenv("MUSIC_LAB_URL", "http://localhost:18600")
|
|
BLOG_LAB_URL = os.getenv("BLOG_LAB_URL", "http://localhost:18700")
|
|
REALESTATE_LAB_URL = os.getenv("REALESTATE_LAB_URL", "http://localhost:18800")
|
|
|
|
# Telegram
|
|
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN", "")
|
|
TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "")
|
|
TELEGRAM_WEBHOOK_URL = os.getenv("TELEGRAM_WEBHOOK_URL", "")
|
|
TELEGRAM_WIFE_CHAT_ID = os.getenv("TELEGRAM_WIFE_CHAT_ID", "")
|
|
|
|
# Anthropic (conversational)
|
|
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "")
|
|
CONVERSATION_MODEL = os.getenv("CONVERSATION_MODEL", "claude-haiku-4-5-20251001")
|
|
CONVERSATION_HISTORY_LIMIT = int(os.getenv("CONVERSATION_HISTORY_LIMIT", "20"))
|
|
CONVERSATION_RATE_PER_MIN = int(os.getenv("CONVERSATION_RATE_PER_MIN", "6"))
|
|
|
|
# Database
|
|
DB_PATH = os.getenv("AGENT_OFFICE_DB_PATH", "/app/data/agent_office.db")
|
|
|
|
# CORS
|
|
CORS_ALLOW_ORIGINS = os.getenv(
|
|
"CORS_ALLOW_ORIGINS", "http://localhost:3007,http://localhost:8080"
|
|
)
|
|
|
|
# Idle break threshold (seconds)
|
|
IDLE_BREAK_THRESHOLD = int(os.getenv("IDLE_BREAK_THRESHOLD", "300")) # 5 min
|
|
BREAK_DURATION_MIN = int(os.getenv("BREAK_DURATION_MIN", "60")) # 1 min
|
|
BREAK_DURATION_MAX = int(os.getenv("BREAK_DURATION_MAX", "180")) # 3 min
|