From dfc5dad63167eabb7fb027e63c324675b23f2e9d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 1 Jan 2026 01:27:07 +0400 Subject: [PATCH] enh: REQUESTS_VERIFY --- backend/open_webui/env.py | 7 ++++++- backend/open_webui/retrieval/loaders/main.py | 4 ++-- backend/open_webui/retrieval/models/external.py | 3 ++- backend/open_webui/retrieval/utils.py | 6 +++++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 95349d6e62..e3459870e2 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -669,6 +669,8 @@ except ValueError: WEBSOCKET_SERVER_PING_INTERVAL = 25 +REQUESTS_VERIFY = os.environ.get("REQUESTS_VERIFY", "True").lower() == "true" + AIOHTTP_CLIENT_TIMEOUT = os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "") if AIOHTTP_CLIENT_TIMEOUT == "": @@ -766,7 +768,10 @@ else: # When enabled (default), scores are normalized to 0-1 range for proper # relevance threshold behavior with MS MARCO models. SENTENCE_TRANSFORMERS_CROSS_ENCODER_SIGMOID_ACTIVATION_FUNCTION = ( - os.environ.get("SENTENCE_TRANSFORMERS_CROSS_ENCODER_SIGMOID_ACTIVATION_FUNCTION", "True").lower() == "true" + os.environ.get( + "SENTENCE_TRANSFORMERS_CROSS_ENCODER_SIGMOID_ACTIVATION_FUNCTION", "True" + ).lower() + == "true" ) #################################### diff --git a/backend/open_webui/retrieval/loaders/main.py b/backend/open_webui/retrieval/loaders/main.py index b0bc1dd068..2b83e44283 100644 --- a/backend/open_webui/retrieval/loaders/main.py +++ b/backend/open_webui/retrieval/loaders/main.py @@ -30,7 +30,7 @@ from open_webui.retrieval.loaders.datalab_marker import DatalabMarkerLoader from open_webui.retrieval.loaders.mineru import MinerULoader -from open_webui.env import GLOBAL_LOG_LEVEL +from open_webui.env import GLOBAL_LOG_LEVEL, REQUESTS_VERIFY logging.basicConfig(stream=sys.stdout, level=GLOBAL_LOG_LEVEL) log = logging.getLogger(__name__) @@ -114,7 +114,7 @@ class TikaLoader: endpoint += "/" endpoint += "tika/text" - r = requests.put(endpoint, data=data, headers=headers) + r = requests.put(endpoint, data=data, headers=headers, verify=REQUESTS_VERIFY) if r.ok: raw_metadata = r.json() diff --git a/backend/open_webui/retrieval/models/external.py b/backend/open_webui/retrieval/models/external.py index d567bf4fe5..095143d20d 100644 --- a/backend/open_webui/retrieval/models/external.py +++ b/backend/open_webui/retrieval/models/external.py @@ -4,7 +4,7 @@ from typing import Optional, List, Tuple from urllib.parse import quote -from open_webui.env import ENABLE_FORWARD_USER_INFO_HEADERS +from open_webui.env import ENABLE_FORWARD_USER_INFO_HEADERS, REQUESTS_VERIFY from open_webui.retrieval.models.base_reranker import BaseReranker from open_webui.utils.headers import include_user_info_headers @@ -55,6 +55,7 @@ class ExternalReranker(BaseReranker): headers=headers, json=payload, timeout=self.timeout, + verify=REQUESTS_VERIFY, ) r.raise_for_status() diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py index bb2c3ef12f..772f37fbec 100644 --- a/backend/open_webui/retrieval/utils.py +++ b/backend/open_webui/retrieval/utils.py @@ -42,6 +42,7 @@ from open_webui.retrieval.loaders.youtube import YoutubeLoader from open_webui.env import ( OFFLINE_MODE, ENABLE_FORWARD_USER_INFO_HEADERS, + AIOHTTP_CLIENT_SESSION_SSL, ) from open_webui.config import ( RAG_EMBEDDING_QUERY_PREFIX, @@ -762,7 +763,10 @@ async def agenerate_ollama_batch_embeddings( async with aiohttp.ClientSession(trust_env=True) as session: async with session.post( - f"{url}/api/embed", headers=headers, json=form_data + f"{url}/api/embed", + headers=headers, + json=form_data, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) as r: r.raise_for_status() data = await r.json()