diff --git a/requirements/requirements-common.txt b/requirements/requirements-common.txt index f94da8b..a68dd8a 100644 --- a/requirements/requirements-common.txt +++ b/requirements/requirements-common.txt @@ -9,4 +9,5 @@ anthropic==0.69.0 openai==2.3.0 # Pin the httpx version, as newer versions break the anthropic client httpx==0.27.0 -celery[redis,sqs]==5.3.6 \ No newline at end of file +celery[redis,sqs]==5.3.6 +cryptography==43.0.0 \ No newline at end of file diff --git a/requirements/requirements-workers.txt b/requirements/requirements-workers.txt index 7a77524..e59798b 100644 --- a/requirements/requirements-workers.txt +++ b/requirements/requirements-workers.txt @@ -1,3 +1,2 @@ -cryptography==43.0.0 boto3 awscli==1.42.64 \ No newline at end of file diff --git a/src/memory/api/admin.py b/src/memory/api/admin.py index e18f9e2..f895d11 100644 --- a/src/memory/api/admin.py +++ b/src/memory/api/admin.py @@ -290,6 +290,7 @@ class ScheduledLLMCallAdmin(ModelView, model=ScheduledLLMCall): "created_at", "updated_at", ] + column_sortable_list = ["executed_at", "scheduled_time", "created_at", "updated_at"] def setup_admin(admin: Admin): diff --git a/src/memory/common/celery_app.py b/src/memory/common/celery_app.py index 11f33fb..55f90d3 100644 --- a/src/memory/common/celery_app.py +++ b/src/memory/common/celery_app.py @@ -55,7 +55,7 @@ EXECUTE_SCHEDULED_CALL = f"{SCHEDULED_CALLS_ROOT}.execute_scheduled_call" RUN_SCHEDULED_CALLS = f"{SCHEDULED_CALLS_ROOT}.run_scheduled_calls" # Backup tasks -BACKUP_TO_S3_DIRECTORY = f"{BACKUP_ROOT}.backup_to_s3_directory" +BACKUP_PATH = f"{BACKUP_ROOT}.backup_path" BACKUP_ALL = f"{BACKUP_ROOT}.backup_all" diff --git a/src/memory/workers/ingest.py b/src/memory/workers/ingest.py index e79131e..6b0b4e8 100644 --- a/src/memory/workers/ingest.py +++ b/src/memory/workers/ingest.py @@ -10,7 +10,7 @@ from memory.common.celery_app import ( TRACK_GIT_CHANGES, SYNC_LESSWRONG, RUN_SCHEDULED_CALLS, - BACKUP_TO_S3, + BACKUP_ALL, ) logger = logging.getLogger(__name__) @@ -49,8 +49,8 @@ app.conf.beat_schedule = { "task": RUN_SCHEDULED_CALLS, "schedule": settings.SCHEDULED_CALL_RUN_INTERVAL, }, - "backup-to-s3": { - "task": BACKUP_TO_S3, + "backup-all": { + "task": BACKUP_ALL, "schedule": settings.S3_BACKUP_INTERVAL, }, } diff --git a/src/memory/workers/tasks/backup.py b/src/memory/workers/tasks/backup.py index 7edda60..2dffcb2 100644 --- a/src/memory/workers/tasks/backup.py +++ b/src/memory/workers/tasks/backup.py @@ -12,7 +12,7 @@ import boto3 from cryptography.fernet import Fernet from memory.common import settings -from memory.common.celery_app import app, BACKUP_TO_S3_DIRECTORY, BACKUP_ALL +from memory.common.celery_app import app, BACKUP_PATH, BACKUP_ALL logger = logging.getLogger(__name__) @@ -120,7 +120,7 @@ def backup_encrypted_directory(path: Path) -> dict: return {"uploaded": False, "directory": path, "error": str(e)} -@app.task(name=BACKUP_TO_S3_DIRECTORY) +@app.task(name=BACKUP_PATH) def backup_to_s3(path: Path | str): """Backup a specific directory to S3.""" path = Path(path) diff --git a/src/memory/workers/tasks/discord.py b/src/memory/workers/tasks/discord.py index 64f3473..bb88a49 100644 --- a/src/memory/workers/tasks/discord.py +++ b/src/memory/workers/tasks/discord.py @@ -56,7 +56,7 @@ def call_llm( message: DiscordMessage, model: str, msgs: list[str] = [], - allowed_tools: list[str] = [], + allowed_tools: list[str] | None = None, ) -> str | None: provider = create_provider(model=model) if provider.usage_tracker.is_rate_limited(model): @@ -74,7 +74,8 @@ def call_llm( tools = { name: tool for name, tool in tools.items() - if message.tool_allowed(name) and name in allowed_tools + if message.tool_allowed(name) + and (allowed_tools is None or name in allowed_tools) } system_prompt = message.system_prompt or "" system_prompt += comm_channel_prompt( @@ -196,6 +197,7 @@ def process_discord_message(message_id: int) -> dict[str, Any]: except Exception: logger.exception("Failed to generate Discord response") + print("response:", response) if not response: return { "status": "processed",