3232
3333def SingleStoreEmbeddingsFactory (
3434 model_name : str ,
35- api_key : Optional [Union [ Optional [ str ], Callable [[], Optional [ str ]]] ] = None ,
35+ api_key : Optional [str ] = None ,
3636 http_client : Optional [httpx .Client ] = None ,
37- obo_token : Optional [Union [Optional [str ], Callable [[], Optional [str ]]]] = None ,
3837 obo_token_getter : Optional [Callable [[], Optional [str ]]] = None ,
3938 base_url : Optional [str ] = None ,
4039 hosting_platform : Optional [str ] = None ,
4140 ** kwargs : Any ,
4241) -> Union [OpenAIEmbeddings , BedrockEmbeddings ]:
4342 """Return an embeddings model instance (OpenAIEmbeddings or BedrockEmbeddings).
4443 """
45- # Handle api_key and obo_token as callable functions
46- if callable (api_key ):
47- api_key_getter_fn = api_key
48- else :
49- def api_key_getter_fn () -> Optional [str ]:
50- if api_key is None :
51- return os .environ .get ('SINGLESTOREDB_USER_TOKEN' )
52- return api_key
53-
54- if obo_token_getter is not None :
55- obo_token_getter_fn = obo_token_getter
56- else :
57- if callable (obo_token ):
58- obo_token_getter_fn = obo_token
59- else :
60- def obo_token_getter_fn () -> Optional [str ]:
61- return obo_token
62-
6344 # handle model info
6445 if base_url is None :
6546 base_url = os .environ .get ('SINGLESTOREDB_INFERENCE_API_BASE_URL' )
@@ -125,12 +106,12 @@ def obo_token_getter_fn() -> Optional[str]:
125106
126107 def _inject_headers (request : Any , ** _ignored : Any ) -> None :
127108 """Inject dynamic auth/OBO headers prior to Bedrock sending."""
128- if api_key_getter_fn is not None :
129- token_val = api_key_getter_fn ()
130- if token_val :
131- request .headers ['Authorization' ] = f'Bearer { token_val } '
132- if obo_token_getter_fn is not None :
133- obo_val = obo_token_getter_fn ()
109+ token_env_val = os . environ . get ( 'SINGLESTOREDB_USER_TOKEN' )
110+ token_val = api_key if api_key is not None else token_env_val
111+ if token_val :
112+ request .headers ['Authorization' ] = f'Bearer { token_val } '
113+ if obo_token_getter is not None :
114+ obo_val = obo_token_getter ()
134115 if obo_val :
135116 request .headers ['X-S2-OBO' ] = obo_val
136117 request .headers .pop ('X-Amz-Date' , None )
@@ -157,7 +138,8 @@ def _inject_headers(request: Any, **_ignored: Any) -> None:
157138 )
158139
159140 # OpenAI / Azure OpenAI path
160- token = api_key_getter_fn ()
141+ token_env = os .environ .get ('SINGLESTOREDB_USER_TOKEN' )
142+ token = api_key if api_key is not None else token_env
161143
162144 openai_kwargs = dict (
163145 base_url = info .connection_url ,
0 commit comments