- Add async Redis client singleton (redis_client.py) for caching and arq pool
- Add arq job functions (jobs.py) for background LLM processing
- Cache ask/explain LLM responses with TTL (1h ask, 24h explain)
- Add async mode to /api/ask: enqueue job, return job_id, poll /api/jobs/{id}
- Add GET /api/jobs/{job_id} endpoint for job status polling
- Add arq worker service to docker-compose (dev + prod)
- Switch from Redis to Valkey (BSD fork) in Docker Compose
- Add REDIS_URL config setting
- Add tests for cache hit, async mode, and job status
19 lines
193 B
Plaintext
19 lines
193 B
Plaintext
fastapi
|
|
uvicorn[standard]
|
|
pymongo
|
|
python-dotenv
|
|
requests
|
|
PyYAML
|
|
PyJWT
|
|
python-jose[cryptography]
|
|
cryptography
|
|
pydantic-settings
|
|
structlog
|
|
tenacity
|
|
prometheus-client
|
|
httpx
|
|
gunicorn
|
|
mcp
|
|
redis
|
|
arq
|