Spaces:
Running
Running
File size: 1,864 Bytes
c05de71 ad3ba0d c05de71 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
"""
Configuration settings for the chatbot application.
Loads from environment variables with sensible defaults.
"""
import os
from dotenv import load_dotenv
# Load environment variables from .env file if it exists
load_dotenv()
# App Information
APP_NAME = os.getenv("APP_NAME", "Paul's Document Chatbot")
PRIMARY_COLOR = os.getenv("PRIMARY_COLOR", "#7E56C2") # Purple-ish
SECONDARY_COLOR = os.getenv("SECONDARY_COLOR", "#4CAF50") # Green-ish
# Paths
DATA_DIR = os.getenv("DATA_DIR", "data")
INDEX_DIR = os.getenv("INDEX_DIR", "index")
# LLM Configuration
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
LLM_MODEL = os.getenv("LLM_MODEL", "claude-3-7-sonnet-20250219")
LLM_TEMPERATURE = float(os.getenv("LLM_TEMPERATURE", "0.1"))
LLM_MAX_TOKENS = int(os.getenv("LLM_MAX_TOKENS", "2048"))
# Embedding Configuration
EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "sentence-transformers/all-MiniLM-L6-v2")
EMBEDDING_DEVICE = os.getenv("EMBEDDING_DEVICE", "cpu")
EMBEDDING_BATCH_SIZE = int(os.getenv("EMBEDDING_BATCH_SIZE", "8"))
# Document Processing Configuration
CHUNK_SIZE = int(os.getenv("CHUNK_SIZE", "1024"))
CHUNK_OVERLAP = int(os.getenv("CHUNK_OVERLAP", "100"))
# Database Configuration (for future use)
DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///chatbot.db")
# Debug and logging
DEBUG = os.getenv("DEBUG", "False").lower() == "true"
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
# Function to get configuration as a dictionary
def get_chatbot_config():
"""Return chatbot configuration as a dictionary"""
return {
"model": LLM_MODEL,
"temperature": LLM_TEMPERATURE,
"max_tokens": LLM_MAX_TOKENS,
"embedding_model": EMBEDDING_MODEL,
"device": EMBEDDING_DEVICE,
"embed_batch_size": EMBEDDING_BATCH_SIZE,
"chunk_size": CHUNK_SIZE,
"chunk_overlap": CHUNK_OVERLAP,
} |