refactor: review fixes and code improvements
- Add shared proxy module (bot/utils/proxy.py) to eliminate duplicate SOCKS5 parsing - Fix AI client: escape HTML before Markdown→HTML conversion, unify timeouts, make health check optional and disabled by default, handle 429 retries - Fix ai.py: correct forwarded message handling (aiogram 3.x forward_origin), pass relevant summaries via extra_system_content - Fix dialogue.py: only respond to Astra's messages, use system context instead of prompt injection, answer on the limit message before phase transition - Fix voice.py: load Whisper model in thread pool, safe WAV path generation - Improve database.py: composite indexes, Boolean is_active, upsert file_id cache, add context cleanup helper - Update weather.py and yadisk_download.py to use shared proxy connector - Update yadisk.py: validate URL before cache clear, add download size limit, wrap sync file ops in to_thread - Reuse S3 client via lru_cache - Update setup_commands with /aiclear and /aiuser - Update README, Dockerfile (Python 3.11), docker-compose (mount models) - Pin dependency versions, remove unused httpx[socks] - Add basic pytest tests for layout converter and voice normalization
This commit is contained in:
@@ -23,6 +23,11 @@ AI_PHASE2_LIMIT = 20
|
||||
AI_COOLDOWN = 3600
|
||||
AI_BLOCK_DEFAULT_DURATION = 86400
|
||||
|
||||
# Health check periodically calls every free model to test availability.
|
||||
# This consumes API tokens; disabled by default.
|
||||
AI_HEALTH_CHECK_ENABLED = os.getenv("AI_HEALTH_CHECK_ENABLED", "false").lower() == "true"
|
||||
AI_HEALTH_CHECK_INTERVAL = int(os.getenv("AI_HEALTH_CHECK_INTERVAL", "600"))
|
||||
|
||||
ACCESS_KEY = os.getenv("ACCESS_KEY", "").strip()
|
||||
SECRET_KEY = os.getenv("SECRET_KEY", "").strip()
|
||||
BUCKET_NAME = os.getenv("BUCKET_NAME", "").strip()
|
||||
|
||||
Reference in New Issue
Block a user