Files
2026-04-07 16:05:05 +08:00

70 lines
1.7 KiB
Python

import os
from datetime import timedelta
from dotenv import load_dotenv
load_dotenv()
class Config:
SECRET_KEY = os.environ.get("SECRET_KEY") or "dev-secret-key-change-in-production"
Flask_ENV = os.environ.get("FLASK_ENV") or "development"
Flask_DEBUG = os.environ.get("FLASK_DEBUG", "True").lower() == "true"
Flask_HOST = os.environ.get("FLASK_HOST", "0.0.0.0")
Flask_PORT = int(os.environ.get("FLASK_PORT", 5000))
DATABASE_URL = (
os.environ.get("DATABASE_URL")
or "mysql+pymysql://sentclaw:sentclaw123@localhost:3306/sentclaw"
)
REDIS_URL = os.environ.get("REDIS_URL") or "redis://:redis123@localhost:6379/0"
JWT_SECRET_KEY = (
os.environ.get("JWT_SECRET_KEY") or "jwt-secret-key-change-in-production"
)
JWT_ACCESS_TOKEN_EXPIRES = timedelta(
seconds=int(os.environ.get("JWT_ACCESS_TOKEN_EXPIRES", 3600))
)
CORS_ORIGINS = os.environ.get(
"CORS_ORIGINS", "http://localhost:5173,http://localhost:3000"
).split(",")
UPLOAD_FOLDER = os.environ.get("UPLOAD_FOLDER", "uploads")
MAX_CONTENT_LENGTH = int(os.environ.get("MAX_CONTENT_LENGTH", 16777216))
LOG_LEVEL = os.environ.get("LOG_LEVEL", "INFO")
LOG_FILE = os.environ.get("LOG_FILE", "logs/app.log")
LLM_TIMEOUT = 30
LLM_MAX_RETRIES = 3
MCP_TIMEOUT = 10
AGENT_MAX_ITERATIONS = 10
AGENT_THINKING_TIMEOUT = 60
MEMORY_WINDOW_SIZE = 10
MEMORY_COMPRESSION_THRESHOLD = 0.8
class DevelopmentConfig(Config):
DEBUG = True
class ProductionConfig(Config):
DEBUG = False
class TestingConfig(Config):
TESTING = True
DATABASE_URL = "sqlite:///:memory:"
config_by_name = {
"development": DevelopmentConfig,
"production": ProductionConfig,
"testing": TestingConfig,
}