diff --git a/backend/danswer/configs/app_configs.py b/backend/danswer/configs/app_configs.py index c4cabbe488..11c6184803 100644 --- a/backend/danswer/configs/app_configs.py +++ b/backend/danswer/configs/app_configs.py @@ -118,6 +118,8 @@ VESPA_HOST = os.environ.get("VESPA_HOST") or "localhost" VESPA_CONFIG_SERVER_HOST = os.environ.get("VESPA_CONFIG_SERVER_HOST") or VESPA_HOST VESPA_PORT = os.environ.get("VESPA_PORT") or "8081" VESPA_TENANT_PORT = os.environ.get("VESPA_TENANT_PORT") or "19071" +# the number of times to try and connect to vespa on startup before giving up +VESPA_NUM_ATTEMPTS_ON_STARTUP = int(os.environ.get("NUM_RETRIES_ON_STARTUP") or 10) VESPA_CLOUD_URL = os.environ.get("VESPA_CLOUD_URL", "") diff --git a/backend/danswer/setup.py b/backend/danswer/setup.py index f86d0f3541..db9cdce85d 100644 --- a/backend/danswer/setup.py +++ b/backend/danswer/setup.py @@ -4,6 +4,7 @@ from sqlalchemy.orm import Session from danswer.configs.app_configs import DISABLE_INDEX_UPDATE_ON_SWAP from danswer.configs.app_configs import MANAGED_VESPA +from danswer.configs.app_configs import VESPA_NUM_ATTEMPTS_ON_STARTUP from danswer.configs.constants import KV_REINDEX_KEY from danswer.configs.constants import KV_SEARCH_SETTINGS from danswer.configs.model_configs import FAST_GEN_AI_MODEL_VERSION @@ -221,13 +222,13 @@ def setup_vespa( document_index: DocumentIndex, index_setting: IndexingSetting, secondary_index_setting: IndexingSetting | None, + num_attempts: int = VESPA_NUM_ATTEMPTS_ON_STARTUP, ) -> bool: # Vespa startup is a bit slow, so give it a few seconds WAIT_SECONDS = 5 - VESPA_ATTEMPTS = 5 - for x in range(VESPA_ATTEMPTS): + for x in range(num_attempts): try: - logger.notice(f"Setting up Vespa (attempt {x+1}/{VESPA_ATTEMPTS})...") + logger.notice(f"Setting up Vespa (attempt {x+1}/{num_attempts})...") document_index.ensure_indices_exist( index_embedding_dim=index_setting.model_dim, secondary_index_embedding_dim=secondary_index_setting.model_dim @@ -244,7 +245,7 @@ def setup_vespa( time.sleep(WAIT_SECONDS) logger.error( - f"Vespa setup did not succeed. Attempt limit reached. ({VESPA_ATTEMPTS})" + f"Vespa setup did not succeed. Attempt limit reached. ({num_attempts})" ) return False