Spaces:
Paused
Paused
Commit ·
1153571
1
Parent(s): 96cc3c6
8th
Browse files- .env +2 -1
- celery_app.py +38 -8
- config.py +1 -0
.env
CHANGED
|
@@ -17,8 +17,9 @@ QDRANT_API_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3MiOiJtIn0.NRbT0QP
|
|
| 17 |
|
| 18 |
|
| 19 |
# ---------- REDIS ----------
|
| 20 |
-
REDIS_HOST="
|
| 21 |
REDIS_PORT=6379
|
|
|
|
| 22 |
|
| 23 |
# ---------- WEBHOOKS ----------
|
| 24 |
CALLBACK_URL="https://webhooksite.net/c93aac48-5237-4078-9511-14d778acba2f"
|
|
|
|
| 17 |
|
| 18 |
|
| 19 |
# ---------- REDIS ----------
|
| 20 |
+
REDIS_HOST="https://steady-clam-77697.upstash.io"
|
| 21 |
REDIS_PORT=6379
|
| 22 |
+
REDIS_PASSWORD="gQAAAAAAAS-BAAIncDFiM2E3OGQ1MmU5Zjk0OGM5ODU2ZmMzYzc4NjZjYzdjMHAxNzc2OTc"
|
| 23 |
|
| 24 |
# ---------- WEBHOOKS ----------
|
| 25 |
CALLBACK_URL="https://webhooksite.net/c93aac48-5237-4078-9511-14d778acba2f"
|
celery_app.py
CHANGED
|
@@ -3,11 +3,26 @@ from celery import Celery
|
|
| 3 |
import redis
|
| 4 |
from config import get_settings
|
| 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
celery_app = Celery(
|
| 7 |
"assistant_worker",
|
| 8 |
-
broker=
|
| 9 |
-
backend=
|
| 10 |
-
include=[
|
| 11 |
)
|
| 12 |
|
| 13 |
celery_app.conf.update(
|
|
@@ -15,16 +30,31 @@ celery_app.conf.update(
|
|
| 15 |
accept_content=["json"],
|
| 16 |
result_serializer="json",
|
| 17 |
task_track_started=True,
|
| 18 |
-
task_time_limit=60*60,
|
|
|
|
|
|
|
| 19 |
)
|
| 20 |
|
| 21 |
-
import worker.tasks
|
| 22 |
-
from generation.ExamAnswer import grade_exam_task
|
|
|
|
|
|
|
| 23 |
def clear_redis_backend():
|
| 24 |
-
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
print("Redis result backend cleared!")
|
| 27 |
|
|
|
|
| 28 |
@celery_app.on_after_configure.connect
|
| 29 |
def setup(sender, **kwargs):
|
| 30 |
clear_redis_backend()
|
|
|
|
| 3 |
import redis
|
| 4 |
from config import get_settings
|
| 5 |
|
| 6 |
+
settings = get_settings()
|
| 7 |
+
|
| 8 |
+
REDIS_HOST = settings.REDIS_HOST
|
| 9 |
+
REDIS_PORT = settings.REDIS_PORT
|
| 10 |
+
REDIS_PASSWORD = settings.REDIS_PASSWORD
|
| 11 |
+
|
| 12 |
+
# Upstash (and most managed Redis) uses rediss:// (TLS)
|
| 13 |
+
# Local/Docker Redis uses redis:// (plain)
|
| 14 |
+
if REDIS_PASSWORD:
|
| 15 |
+
BROKER_URL = f"rediss://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0?ssl_cert_reqs=CERT_NONE"
|
| 16 |
+
BACKEND_URL = f"rediss://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/1?ssl_cert_reqs=CERT_NONE"
|
| 17 |
+
else:
|
| 18 |
+
BROKER_URL = f"redis://{REDIS_HOST}:{REDIS_PORT}/0"
|
| 19 |
+
BACKEND_URL = f"redis://{REDIS_HOST}:{REDIS_PORT}/1"
|
| 20 |
+
|
| 21 |
celery_app = Celery(
|
| 22 |
"assistant_worker",
|
| 23 |
+
broker=BROKER_URL,
|
| 24 |
+
backend=BACKEND_URL,
|
| 25 |
+
include=["generation.ExamAnswer"]
|
| 26 |
)
|
| 27 |
|
| 28 |
celery_app.conf.update(
|
|
|
|
| 30 |
accept_content=["json"],
|
| 31 |
result_serializer="json",
|
| 32 |
task_track_started=True,
|
| 33 |
+
task_time_limit=60 * 60,
|
| 34 |
+
broker_use_ssl={"ssl_cert_reqs": "CERT_NONE"} if REDIS_PASSWORD else None,
|
| 35 |
+
redis_backend_use_ssl={"ssl_cert_reqs": "CERT_NONE"} if REDIS_PASSWORD else None,
|
| 36 |
)
|
| 37 |
|
| 38 |
+
import worker.tasks
|
| 39 |
+
from generation.ExamAnswer import grade_exam_task
|
| 40 |
+
|
| 41 |
+
|
| 42 |
def clear_redis_backend():
|
| 43 |
+
if REDIS_PASSWORD:
|
| 44 |
+
r = redis.Redis(
|
| 45 |
+
host=REDIS_HOST,
|
| 46 |
+
port=REDIS_PORT,
|
| 47 |
+
password=REDIS_PASSWORD,
|
| 48 |
+
ssl=True,
|
| 49 |
+
ssl_cert_reqs=None,
|
| 50 |
+
db=1,
|
| 51 |
+
)
|
| 52 |
+
else:
|
| 53 |
+
r = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=1)
|
| 54 |
+
r.flushdb()
|
| 55 |
print("Redis result backend cleared!")
|
| 56 |
|
| 57 |
+
|
| 58 |
@celery_app.on_after_configure.connect
|
| 59 |
def setup(sender, **kwargs):
|
| 60 |
clear_redis_backend()
|
config.py
CHANGED
|
@@ -18,6 +18,7 @@ class Settings(BaseSettings):
|
|
| 18 |
GRADE_WEBHOOK_URL: Optional[str] = None
|
| 19 |
REDIS_HOST: str = "localhost"
|
| 20 |
REDIS_PORT: int = 6379
|
|
|
|
| 21 |
CALLBACK_URL: Optional[str] = None
|
| 22 |
|
| 23 |
# ---------- BACKENDS ----------
|
|
|
|
| 18 |
GRADE_WEBHOOK_URL: Optional[str] = None
|
| 19 |
REDIS_HOST: str = "localhost"
|
| 20 |
REDIS_PORT: int = 6379
|
| 21 |
+
REDIS_PASSWORD: Optional[str] = None
|
| 22 |
CALLBACK_URL: Optional[str] = None
|
| 23 |
|
| 24 |
# ---------- BACKENDS ----------
|