docs: .env.example 전면 업데이트 — 누락된 설정값 모두 추가

기존에 빠져 있던 항목 추가:
- LLM: ENABLE_THINKING, THINK_VERBOSE
- Qdrant: QDRANT_URL, QDRANT_COLLECTION
- Embedding: EMBEDDING_MODEL_ID, EMBEDDING_DEVICE
- RAG: RAG_TOP_K, RAG_VERBOSE, RAG_SHOW_SOURCES, LANGGRAPH_VERBOSE
- Semantic Chunker: SEMANTIC_BREAKPOINT_THRESHOLD_TYPE, SEMANTIC_BUFFER_SIZE
- Reranker: RERANKER_ENABLED, RERANKER_MODEL_ID, RERANKER_FETCH_K
- Voice: WHISPER_MODEL_SIZE, TTS_VOICE
- Vision: VISION_ENABLED, VISION_MODEL_ID, VISION_MAX_TOKENS
- IDEA-1: CONV_RAG_ENABLED
- IDEA-2: TELEGRAM_BOT_TOKEN, TELEGRAM_USER_MAP
- IDEA-5: CRAG_ENABLED
- IDEA-8: GRAPH_ENABLED

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sal
2026-06-04 16:55:13 +09:00
parent a05d2f474e
commit 0db20ca829
+73 -12
View File
@@ -1,27 +1,88 @@
# LLM 모델 설정 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 율봇 환경 설정 예시 (.env.example)
# 실제 사용 시 .env로 복사 후 값을 채워주세요.
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# ── LLM ──────────────────────────────────────────
MODEL_ID=mlx-community/Qwen3-8B-4bit MODEL_ID=mlx-community/Qwen3-8B-4bit
MAX_TOKENS=1024 MAX_TOKENS=1024
MAX_HISTORY_TURNS=30 MAX_HISTORY_TURNS=10 # 메모리에 유지할 최대 대화 턴 수
COMPACT_THRESHOLD=40 COMPACT_THRESHOLD=20 # 이 턴 초과 시 오래된 대화를 LLM으로 자동 요약
ENABLE_THINKING=true # Thinking 모드 활성화 (Qwen3 지원)
THINK_VERBOSE=false # true 시 UI에 thinking 토큰 스트리밍
# MySQL 설정 (미설정 시 DB 기능 비활성화) # ── MySQL ─────────────────────────────────────────
# 미설정(DB_USER 빈 값) 시 DB 기능 전체 비활성화 (인메모리 모드)
DB_HOST=localhost DB_HOST=localhost
DB_PORT=3306 DB_PORT=3306
DB_NAME=youlbot DB_NAME=youlbot
DB_USER= DB_USER=
DB_PASSWORD= DB_PASSWORD=
# LangSmith 트레이싱 (Phase 7) — https://smith.langchain.com 에서 API 키 발급 # ── Qdrant ────────────────────────────────────────
QDRANT_URL=http://localhost:6333
QDRANT_COLLECTION=youlbot_docs
# ── Embedding ────────────────────────────────────
EMBEDDING_MODEL_ID=BAAI/bge-m3
EMBEDDING_DEVICE=mps # mps (Apple Silicon) | cpu | cuda
# ── RAG 검색 ─────────────────────────────────────
RAG_TOP_K=3 # 최종 반환할 문서 청크 수
RAG_VERBOSE=false # true 시 검색 쿼리·청크 내용 출력
RAG_SHOW_SOURCES=false # true 시 답변 아래 출처(파일명·페이지) 표시
LANGGRAPH_VERBOSE=false # true 시 LangGraph 노드 전환 로그 출력
# ── Semantic Chunker (Phase 13) ───────────────────
SEMANTIC_BREAKPOINT_THRESHOLD_TYPE=percentile # percentile | standard_deviation | interquartile | gradient
SEMANTIC_BUFFER_SIZE=1 # 인접 문장 묶음 크기 (1=단일 문장)
# ── Reranker (Phase 13-B) ────────────────────────
RERANKER_ENABLED=false
RERANKER_MODEL_ID=cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 # 한국어 지원 다국어 모델
RERANKER_FETCH_K=10 # rerank 전 후보 수 (RAG_TOP_K보다 커야 함)
# ── Hybrid Search (Phase 18) — BM25 + Vector ─────
# 활성화 후 기존 문서는 재수집 필요
HYBRID_SEARCH_ENABLED=false
SPARSE_MODEL_ID=Qdrant/bm25
# ── Query Rewriting (Phase 19) ───────────────────
QUERY_REWRITE_ENABLED=false
# ── CRAG — 검색 결과 없을 때 web_search 자동 fallback (IDEA-5) ──
CRAG_ENABLED=false
# ── 대화 기반 자동 RAG 인덱싱 (IDEA-1) ───────────
# 응답 완료 후 LLM이 유용한 정보 판단 → Qdrant 자동 저장 (background task)
CONV_RAG_ENABLED=false
# ── 지식 그래프 / GraphRAG (IDEA-8) ──────────────
# add_relation / query_entity 도구 활성화 + 시스템 프롬프트 자동 주입
GRAPH_ENABLED=false
# ── REST API (Phase 22) ───────────────────────────
# 빈 값이면 인증 없음 (개발 모드)
API_TOKEN=
# ── LangSmith 트레이싱 (Phase 7) ─────────────────
# https://smith.langchain.com 에서 API 키 발급
LANGCHAIN_TRACING_V2=false LANGCHAIN_TRACING_V2=false
LANGCHAIN_API_KEY= LANGCHAIN_API_KEY=
LANGCHAIN_PROJECT=youlbot LANGCHAIN_PROJECT=youlbot
# Hybrid Search (Phase 18) — BM25 + Vector (활성화 후 기존 문서 재수집 필요) # ── 음성 인터페이스 (Phase 14) ────────────────────
HYBRID_SEARCH_ENABLED=false WHISPER_MODEL_SIZE=small # tiny | base | small | medium | large
SPARSE_MODEL_ID=Qdrant/bm25 TTS_VOICE=Yuna # macOS say 명령어 한국어 음성 (Yuna | Siri 등)
# Query Rewriting (Phase 19) — search_documents 호출 시 구어체 쿼리를 검색 최적화 쿼리로 변환 # ── 멀티모달 이미지 이해 (Phase 17) ──────────────
QUERY_REWRITE_ENABLED=false VISION_ENABLED=false
VISION_MODEL_ID=mlx-community/Qwen2.5-VL-7B-Instruct-4bit
VISION_MAX_TOKENS=512
# REST API (Phase 22) — Bearer 토큰 인증. 빈 값이면 인증 없음(개발 모드) # ── 스마트 알림 / Telegram push (IDEA-2) ─────────
API_TOKEN= # BotFather에서 봇 생성 후 토큰 입력
TELEGRAM_BOT_TOKEN=
# user_id → Telegram numeric chat_id 매핑 (JSON 형식)
# 각 가족의 Telegram ID는 봇에 /start 전송 후 로그에서 확인
TELEGRAM_USER_MAP={"아록": "", "근혜": "", "도율": "", "하율": ""}