"""Embedding API 与 EMBEDDING_SSL_* 环境变量相关的工具函数。"""
import os
from typing import Any, Optional
from urllib.parse import urlparse
from openjiuwen_deepsearch.utils.common_utils.url_utils import validate_embedding_service_url
def get_embedding_requests_verify(base_url: Optional[str] = None) -> Any:
"""
返回 requests 的 verify 参数:
- False → 不校验 SSL
- True → 使用系统 CA
- str → 使用指定证书路径
未设置 EMBEDDING_SSL_VERIFY 或值为空白时,视为关闭校验(与 .env.example 默认一致)。
ssl_verify:是否启用 SSL 证书校验(与变量名语义一致);为 True 时再根据证书路径选择 verify。
"""
api_url = (base_url or "").strip()
if api_url:
validate_embedding_service_url(api_url)
scheme = urlparse(api_url).scheme.lower() if api_url else ""
if scheme != "https":
return True
raw_verify = os.getenv("EMBEDDING_SSL_VERIFY", "").strip()
if not raw_verify:
ssl_verify = False
else:
ssl_verify = raw_verify.lower() not in ("false",)
ssl_cert = os.getenv("EMBEDDING_SSL_CERT")
if not ssl_verify:
return False
if ssl_cert:
return ssl_cert
return True