""" 벡터 스토어, 임베딩 모델, LLM 등 구성 요소 설정 """ import os from dotenv import load_dotenv # .env 파일이 있으면 로드 (로컬 환경용) load_dotenv(verbose=True) # 환경 감지 IS_HUGGINGFACE = os.getenv('SPACE_ID') is not None # API 키 및 환경 설정 OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "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") LANGFUSE_PUBLIC_KEY = os.getenv("LANGFUSE_PUBLIC_KEY", "pk-lf-cd6248e2-59ad-496d-a4cb-487bb3ecfcd5") LANGFUSE_SECRET_KEY = os.getenv("LANGFUSE_SECRET_KEY", "sk-lf-61460a1d-e637-4c22-b5e9-9250ac2579ba") LANGFUSE_HOST = os.getenv("LANGFUSE_HOST", "https://cloud.langfuse.com") # 네이버 클로바 STT API 설정 NAVER_CLIENT_ID = os.getenv("NAVER_CLIENT_ID", "xae4kga9s5") NAVER_CLIENT_SECRET = os.getenv("NAVER_CLIENT_SECRET", "aoSmmr3xMrdVopxGduFX5YfGZRJpu2MDUiUvlvQx") # 네이버 클로바 API 키 확인 if NAVER_CLIENT_ID and NAVER_CLIENT_SECRET: print("네이버 클로바 STT API 키가 설정되었습니다.") else: print("경고: 네이버 클로바 STT API 키가 설정되지 않았습니다.") print("STT 기능을 사용하려면 NAVER_CLIENT_ID와 NAVER_CLIENT_SECRET 환경 변수를 설정하세요.") # Milvus 벡터 DB 설정 MILVUS_HOST = os.getenv("MILVUS_HOST", "localhost") MILVUS_PORT = os.getenv("MILVUS_PORT", "19530") MILVUS_COLLECTION = "pdf_documents" # 임베딩 모델 설정 EMBEDDING_MODEL = "Alibaba-NLP/gte-multilingual-base" # 다국어 지원 모델 RERANKER_MODEL = "Alibaba-NLP/gte-multilingual-reranker-base" # 다국어 지원 리랭커 # LLM 모델 설정 (환경에 따라 자동 선택) if IS_HUGGINGFACE: # HuggingFace 환경에서는 OpenAI 사용 USE_OPENAI = True LLM_MODEL = "gpt-3.5-turbo" # 또는 다른 적절한 모델 print("HuggingFace Spaces 환경 감지: OpenAI 모델 사용") else: # 로컬 환경에서는 Ollama 사용 USE_OPENAI = os.getenv("USE_OPENAI", "False").lower() == "true" LLM_MODEL = os.getenv("LLM_MODEL", "gemma3:latest" if not USE_OPENAI else "gpt-3.5-turbo") OLLAMA_HOST = os.getenv("OLLAMA_HOST", "http://localhost:11434") print(f"로컬 환경: {'OpenAI' if USE_OPENAI else 'Ollama'} 모델 사용") # 앱 설정 CHUNK_SIZE = 1000 CHUNK_OVERLAP = 200 TOP_K_RETRIEVAL = 5 # 벡터 검색 결과 수 TOP_K_RERANK = 3 # 리랭킹 후 선택할 결과 수 PDF_DIRECTORY = "documents" # PDF 문서가 저장된 디렉토리 # 음성인식 설정 STT_LANGUAGE = "Kor" # 기본 언어 설정 (Kor, Eng, Jpn, Chn 등)