@@ -61,6 +61,18 @@ def __init__(
6161 self .max_concurrency = max_concurrency
6262 self .debug = debug
6363
64+ # Work on a local copy of server_headers to avoid mutating the caller's dict.
65+ headers = dict (server_headers ) if server_headers is not None else None
66+
67+ api_key = os .getenv ("MINERU_VL_API_KEY" )
68+ if api_key :
69+ if headers is None :
70+ headers = {}
71+ headers ["Authorization" ] = f"Bearer { api_key } "
72+
73+ self .headers = headers
74+ self .retry = Retry (total = max_retries , backoff_factor = retry_backoff_factor )
75+
6476 if not server_url :
6577 server_url = _get_env ("MINERU_VL_SERVER" )
6678
@@ -79,6 +91,7 @@ def __init__(
7991 self ._aio_client_sem = asyncio .Semaphore (1 )
8092 self ._aio_client_cache : dict [asyncio .AbstractEventLoop , httpx .AsyncClient ] = {}
8193
94+ model_name = model_name or os .getenv ("MINERU_VL_MODEL_NAME" )
8295 if model_name :
8396 self ._check_model_name (self .server_url , model_name )
8497 self .model_name = model_name
@@ -164,7 +177,8 @@ def _get_model_name(self, base_url: str) -> str:
164177 raise RequestError (f"No models found in response from { base_url } . Response body: { response .text } " )
165178 if len (models ) != 1 :
166179 raise RequestError (
167- f"Expected exactly one model from { base_url } , but got { len (models )} . Please specify the model name."
180+ f"Expected exactly one model from { base_url } , but got { len (models )} . Please specify the model name"
181+ f" or set the `MINERU_VL_MODEL_NAME` environment variable."
168182 )
169183 model_name = models [0 ].get ("id" , "" )
170184 if not model_name :
0 commit comments