6.0 KiB
6.0 KiB
Technology Stack
Analysis Date: 2026-05-07
Languages
Primary:
- Python 3.8 - Entire backend application (specified in
Dockerfileline 2)
Runtime
Environment:
- Python 3.8 via Docker container (docker.m.daocloud.io/python:3.8)
- ASGI server: Daphne for WebSocket + HTTP support (see
run.sh)
Package Manager:
- pip 3.8+ (Python package manager)
- Lockfile: No pinned versions in
requirements.txt(line 1-42) — dependencies are unpinned, allowing flexibility but risking compatibility issues
Frameworks
Core:
- Django 4.2.13 - Primary web framework (declared in
qy_lty/settings.py:4) - Django REST Framework (DRF) - REST API implementation (in
requirements.txt) - Django Channels - WebSocket support for real-time device communication (in
requirements.txt, configured inqy_lty/settings.py:501)
Real-Time & Async:
- Daphne - ASGI server to serve both HTTP and WebSocket (in
requirements.txt, launched viarun.sh) - channels-redis - Channel layer using Redis for inter-process messaging (in
requirements.txt, configured atqy_lty/settings.py:504-511) - aioredis - Async Redis client (in
requirements.txt)
API Documentation:
- drf-yasg - Generates Swagger/OpenAPI documentation for DRF (in
requirements.txt, configured atqy_lty/settings.py:513-549)
Database & Caching:
- PostgreSQL - Primary relational database (configured at
qy_lty/settings.py:166-172) - Redis - Cache backend and WebSocket channel layer (configured at
qy_lty/settings.py:252-260for cache,504-511for channels)- Client: django-redis for Django integration (in
requirements.txt) - Password-authenticated via environment variables
- Client: django-redis for Django integration (in
Admin & UI:
- django-simpleui - Enhanced admin interface with Chinese localization (in
requirements.txt, configured atqy_lty/settings.py:475-498) - django-rosetta - Translation management UI (in
requirements.txt)
Authentication & Authorization:
- django-allauth - Social authentication framework including WeChat provider (in
requirements.txt, configured atqy_lty/settings.py:52-56, backend atqy_lty/settings.py:321-325) - dj_rest_auth - Token-based REST authentication bridge (in
requirements.txt) - django-phone-verify - Phone verification support (in
requirements.txt) - Custom:
userapp.authentication.RedisTokenAuthentication- Token stored in Redis with 30-day TTL (seeCLAUDE.mdline 122)
Development & Debugging:
- django-debug-toolbar - Development-time debugging (in
requirements.txt) - django-cors-headers - CORS middleware for cross-origin requests (in
requirements.txt, middleware atqy_lty/settings.py:85)
Task Scheduling:
- APScheduler (apscheduler) - Background task scheduling (in
requirements.txt)
File Storage & Image Processing:
- Pillow - Image processing library (in
requirements.txt) - oss2 - Aliyun OSS Python SDK for file uploads (in
requirements.txt, used incommon/oss.py)
Data Export & Processing:
- openpyxl - Excel file generation (in
requirements.txt)
Utilities:
- requests - HTTP client for external API calls (in
requirements.txt, used throughout for service integrations) - cryptography - Encryption/decryption utilities (in
requirements.txt) - python-decouple - Environment variable loading (in
requirements.txt, used atqy_lty/settings.py:14) - openai - OpenAI Python SDK for Kimi API (compatible with OpenAI spec, in
requirements.txt)
Key Dependencies
Critical Infrastructure:
- mysqlclient - MySQL database adapter (in
requirements.txt, though PostgreSQL is primary; MySQL config commented atqy_lty/settings.py:159-164) - psycopg2-binary - PostgreSQL database adapter (in
requirements.txt, active atqy_lty/settings.py:166)
Aliyun (Alibaba Cloud) SDKs:
- aliyun-python-sdk-core - Core SDK for Aliyun services (in
requirements.txt) - aliyun-python-sdk-dysmsapi - SMS service SDK (in
requirements.txt, configured atqy_lty/settings.py:300-304) - oss2 - OSS (Object Storage Service) SDK (in
requirements.txt, integrated atcommon/oss.py:1-90) - alibabacloud_facebody20191230 - Face detection/recognition service (in
requirements.txt) - alibabacloud_tea_console, alibabacloud_tea_util, alibabacloud_tea_openapi - Aliyun SDK utilities (in
requirements.txt) - aliyun-log-python-sdk - Logging service SDK (in
requirements.txt, used atcommon/aliyun_logging.py:1-36)
AI & LLM:
- openai - OpenAI Python client, used for Kimi (OpenAI-compatible API) at
aiapp/kimi.py:2(configured atqy_lty/settings.py:349-350)
Configuration
Environment:
- Loaded via
python-decouple.config()from.envfile (seeqy_lty/settings.py:14) - Critical env vars required:
SECRET_KEY- Django secret keyDEBUG- Debug mode flagPOSTGRESQL_DATABASE_NAME,POSTGRESQL_DATABASE_USER,POSTGRESQL_DATABASE_PASSWORD,POSTGRESQL_DATABASE_HOST,POSTGRESQL_DATABASE_PORT- PostgreSQL connectionREDIS_LOCATION,REDIS_PASSWORD- Redis cache and channel layerKIMI_API_KEY,KIMI_BASE_URL- Kimi AI configurationALIYUN_*family - SMS, OSS, NLS, VI, logging credentialsVOLCENGINE_ACCESS_KEY,VOLCENGINE_SECRET_KEY- RTC service credentials- Audio service provider env vars (AUDIO_SERVICE_HUOSHAN_, AUDIO_SERVICE_TENCENT_)
Build:
Dockerfile- Docker image definition (lines 1-33), uses Python 3.8 with China mirror for pipdocker-compose.yml- Service orchestration (lines 1-33), exposes port 12012 → 8000run.sh- Local development entrypoint (lines 1-2), launches Daphne on 0.0.0.0:8000
Platform Requirements
Development:
- Python 3.8+
- pip for dependency installation
- PostgreSQL database server (or MySQL as fallback)
- Redis server for cache + channel layer
- Docker & docker-compose for containerized development
Production:
- Docker container (see
Dockerfileanddocker-compose.yml) - External PostgreSQL service
- External Redis service
- HTTPS reverse proxy (e.g., Nginx) recommended for production
- Deployment target: Linux/Docker (accessible via port 12012 in example)
Stack analysis: 2026-05-07