From 4a4663bddbb236e6859be888639418ee4baea3dc Mon Sep 17 00:00:00 2001 From: Cole Medin Date: Fri, 15 Aug 2025 15:20:04 -0500 Subject: [PATCH] Disabling reranking by default so the server container isn't so big --- README.md | 2 ++ python/requirements.server.txt | 6 +++--- python/src/server/main.py | 2 -- python/src/server/services/search/rag_service.py | 5 ----- python/src/server/services/search/reranking_strategy.py | 2 +- 5 files changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 43e83bdc..5f723b40 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,8 @@ This new vision for Archon replaces the old one (the agenteer). Archon used to b NOTE: Supabase introduced a new type of service key but use the legacy one (the longer one). + OPTIONAL: If you want to enable the reranking RAG strategy, uncomment lines 20-22 in `python\requirements.server.txt`. This will significantly increase the size of the Archon Server container which is why it's off by default. + 3. **Database Setup**: In your [Supabase project](https://supabase.com/dashboard) SQL Editor, copy, paste, and execute the contents of `migration/complete_setup.sql` 4. **Start Services**: diff --git a/python/requirements.server.txt b/python/requirements.server.txt index 6c987ec9..4a0956cb 100644 --- a/python/requirements.server.txt +++ b/python/requirements.server.txt @@ -17,9 +17,9 @@ asyncpg>=0.29.0 # AI/ML libraries (ALL ML models belong here) openai==1.71.0 -sentence-transformers>=4.1.0 # For reranking and advanced embeddings -torch>=2.0.0 # Required by sentence-transformers -transformers>=4.30.0 # Required by sentence-transformers +# sentence-transformers>=4.1.0 # For reranking and advanced embeddings +# torch>=2.0.0 # Required by sentence-transformers +# transformers>=4.30.0 # Required by sentence-transformers # Document processing pypdf2>=3.0.1 diff --git a/python/src/server/main.py b/python/src/server/main.py index 8612f225..cfe88959 100644 --- a/python/src/server/main.py +++ b/python/src/server/main.py @@ -48,12 +48,10 @@ from .socketio_app import create_socketio_app # Import missing dependencies that the modular APIs need try: from crawl4ai import AsyncWebCrawler, BrowserConfig - from sentence_transformers import CrossEncoder except ImportError: # These are optional dependencies for full functionality AsyncWebCrawler = None BrowserConfig = None - CrossEncoder = None # Logger will be initialized after credentials are loaded logger = logging.getLogger(__name__) diff --git a/python/src/server/services/search/rag_service.py b/python/src/server/services/search/rag_service.py index a58f5f05..cdc89c23 100644 --- a/python/src/server/services/search/rag_service.py +++ b/python/src/server/services/search/rag_service.py @@ -15,11 +15,6 @@ Multiple strategies can be enabled simultaneously and work together. import os from typing import Any -try: - from sentence_transformers import CrossEncoder -except ImportError: - CrossEncoder = None - from ...config.logfire_config import get_logger, safe_span from ...utils import get_supabase_client from ..embeddings.embedding_service import create_embedding diff --git a/python/src/server/services/search/reranking_strategy.py b/python/src/server/services/search/reranking_strategy.py index 2eedcae6..4e05cc93 100644 --- a/python/src/server/services/search/reranking_strategy.py +++ b/python/src/server/services/search/reranking_strategy.py @@ -59,7 +59,7 @@ class RerankingStrategy: """ return cls(model_name=model_name, model_instance=model) - def _load_model(self) -> CrossEncoder | None: + def _load_model(self) -> CrossEncoder: """Load the CrossEncoder model for reranking.""" if not CROSSENCODER_AVAILABLE: logger.warning("sentence-transformers not available - reranking disabled")