PDF_analyst / config.py
JatsTheAIGen's picture
Initial deployment of PDF Analysis & Orchestrator with enhanced features
2c5e855
# config.py - Configuration management for PDF Analysis & Orchestrator
import os
from pathlib import Path
class Config:
"""Centralized configuration for the PDF Analysis Orchestrator"""
# OpenAI Configuration
OPENAI_MODEL = os.environ.get("OPENAI_MODEL", "gpt-4")
OPENAI_TEMPERATURE = float(os.environ.get("OPENAI_TEMPERATURE", "0.2"))
OPENAI_MAX_TOKENS = int(os.environ.get("OPENAI_MAX_TOKENS", "1000"))
# Document Processing
CHUNK_SIZE = int(os.environ.get("CHUNK_SIZE", "15000"))
CHUNK_OVERLAP = int(os.environ.get("CHUNK_OVERLAP", "1000"))
MAX_FILE_SIZE_MB = int(os.environ.get("ANALYSIS_MAX_UPLOAD_MB", "50"))
# Caching
CACHE_ENABLED = os.environ.get("CACHE_ENABLED", "true").lower() == "true"
CACHE_TTL_HOURS = int(os.environ.get("CACHE_TTL_HOURS", "24"))
# Session Management
SESSION_DIR = os.environ.get("ANALYSIS_SESSION_DIR", "/tmp/analysis_sessions")
# UI Configuration
SERVER_NAME = os.environ.get("SERVER_NAME", "0.0.0.0")
SERVER_PORT = int(os.environ.get("PORT", "7860"))
# Export Settings
EXPORT_DIR = os.environ.get("EXPORT_DIR", "/tmp/analysis_exports")
SUPPORTED_EXPORT_FORMATS = ["txt", "json", "pdf"]
# Custom Prompts
PROMPTS_DIR = os.environ.get("PROMPTS_DIR", "/tmp/analysis_prompts")
@classmethod
def ensure_directories(cls):
"""Ensure all required directories exist"""
directories = [
cls.SESSION_DIR,
cls.EXPORT_DIR,
cls.PROMPTS_DIR
]
for directory in directories:
Path(directory).mkdir(parents=True, exist_ok=True)
@classmethod
def get_chunk_size_for_text(cls, text_length: int) -> int:
"""Determine appropriate chunk size based on text length"""
if text_length <= cls.CHUNK_SIZE:
return text_length
return cls.CHUNK_SIZE