From b64d717132d527d2aa82ebcd7cfb629e6286ecda Mon Sep 17 00:00:00 2001 From: mountain Date: Tue, 7 Jul 2026 17:00:34 +0800 Subject: [PATCH] fix: load .env explicitly in pageindex __init__ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dedup refactor dropped the explicit load_dotenv() that the old top-level utils.py ran on import. Since then, .env was only loaded as a side effect of importing litellm — which would silently break both local mode (needs OPENAI_API_KEY in the environment) and cloud usage (callers read PAGEINDEX_API_KEY via os.environ) if litellm changed that behavior or its import were made lazy. Restore an explicit load_dotenv() at the top of pageindex/__init__.py so PageIndex owns .env loading. Claude-Session: https://claude.ai/code/session_01Kx5DgKbhK1N8autqXH8SmS --- pageindex/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pageindex/__init__.py b/pageindex/__init__.py index b649cb2..61b8958 100644 --- a/pageindex/__init__.py +++ b/pageindex/__init__.py @@ -1,8 +1,16 @@ # pageindex/__init__.py +# Load .env explicitly, before anything else, so environment-based credentials +# (OPENAI_API_KEY for local mode, PAGEINDEX_API_KEY that callers read via +# os.environ for cloud mode) are populated by PageIndex itself — not left to +# litellm's incidental dotenv loading, which would vanish if litellm changes or +# its import is ever made lazy. +from dotenv import load_dotenv as _load_dotenv +_load_dotenv() + # Upstream exports (backward compatibility). Import from the canonical # pageindex.index.* modules directly so `import pageindex` does NOT trip the # top-level deprecation shims (pageindex.page_index / .page_index_md / .utils). -from .index.page_index import * +from .index.page_index import * # noqa: E402 from .index.page_index_md import md_to_tree from .retrieve import get_document, get_document_structure, get_page_content