# 복무관리 RAG 챗봇 설정 import os from dotenv import load_dotenv # 환경 변수 로드 load_dotenv() class Config: # 모델 설정 EMBEDDING_MODEL = "jhgan/ko-sbert-nli" # 한국어 임베딩 모델 LLM_MODEL = "beomi/Llama-3-Open-Ko-8B" # 한국어 LLM # RAG 설정 CHUNK_SIZE = 500 CHUNK_OVERLAP = 50 MAX_RETRIEVE_DOCS = 3 # 벡터 DB 설정 VECTOR_DB_PATH = "faiss_index" # 문서 폴더 설정 DOCS_FOLDER = "documents" # 웹 인터페이스 설정 APP_NAME = "소방 복무관리 RAG 챗봇" APP_DESCRIPTION = "소방업무 복무관리 규정 및 절차에 대한 질문에 답변해 드립니다." # 토큰 설정 (필요시) HUGGINGFACE_TOKEN = os.getenv("HUGGINGFACE_TOKEN", "") # Supabase 설정 SUPABASE_URL = os.getenv("SUPABASE_URL", "") SUPABASE_KEY = os.getenv("SUPABASE_KEY", "") # OpenAI 설정 OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") OPENAI_MODEL = "gpt-4o-mini" # 또는 "gpt-3.5-turbo" OPENAI_EMBEDDING_MODEL = "text-embedding-3-small" # 벡터 DB 타입 설정 # 기본은 로컬 FAISS로 두고, Supabase를 쓰려면 환경 변수를 명시적으로 설정하도록 강제 VECTOR_DB_TYPE = os.getenv("VECTOR_DB_TYPE", "faiss") # "faiss" 또는 "supabase" # 시스템 프롬프트 SYSTEM_PROMPT = """ 당신은 소방업무 복무관리 전문가입니다. 복무관리 규정, 인사운영, 근무절차 등에 대한 질문에 정확하고 친절하게 답변해 주세요. 답변 시 다음 사항을 준수해 주세요: 1. 관련 규정 조문이나 근거를 명확히 제시 2. 절차가 있는 경우 단계별로 설명 3. 필요한 서류나 양식을 안내 4. 주의사항이나 중요한 사항은 강조 표시 5. 모든 답변은 한국어로 제공 사용자의 질문에 최대한 상세하고 정확한 정보를 제공하세요. """