Skip to content

Commit be07fd1

Browse files
Final fixes.
1 parent 1e74c18 commit be07fd1

File tree

2 files changed

+18
-54
lines changed

2 files changed

+18
-54
lines changed

singlestoredb/ai/chat.py

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,35 +32,16 @@
3232

3333
def SingleStoreChatFactory(
3434
model_name: str,
35-
api_key: Optional[Union[Optional[str], Callable[[], Optional[str]]]] = None,
35+
api_key: Optional[str] = None,
3636
streaming: bool = True,
3737
http_client: Optional[httpx.Client] = None,
38-
obo_token: Optional[Union[Optional[str], Callable[[], Optional[str]]]] = None,
3938
obo_token_getter: Optional[Callable[[], Optional[str]]] = None,
4039
base_url: Optional[str] = None,
4140
hosting_platform: Optional[str] = None,
4241
**kwargs: Any,
4342
) -> Union[ChatOpenAI, ChatBedrockConverse]:
4443
"""Return a chat model instance (ChatOpenAI or ChatBedrockConverse).
4544
"""
46-
# Handle api_key and obo_token as callable functions
47-
if callable(api_key):
48-
api_key_getter_fn = api_key
49-
else:
50-
def api_key_getter_fn() -> Optional[str]:
51-
if api_key is None:
52-
return os.environ.get('SINGLESTOREDB_USER_TOKEN')
53-
return api_key
54-
55-
if obo_token_getter is not None:
56-
obo_token_getter_fn = obo_token_getter
57-
else:
58-
if callable(obo_token):
59-
obo_token_getter_fn = obo_token
60-
else:
61-
def obo_token_getter_fn() -> Optional[str]:
62-
return obo_token
63-
6445
# handle model info
6546
if base_url is None:
6647
base_url = os.environ.get('SINGLESTOREDB_INFERENCE_API_BASE_URL')
@@ -126,12 +107,12 @@ def obo_token_getter_fn() -> Optional[str]:
126107

127108
def _inject_headers(request: Any, **_ignored: Any) -> None:
128109
"""Inject dynamic auth/OBO headers prior to Bedrock sending."""
129-
if api_key_getter_fn is not None:
130-
token_val = api_key_getter_fn()
131-
if token_val:
132-
request.headers['Authorization'] = f'Bearer {token_val}'
133-
if obo_token_getter_fn is not None:
134-
obo_val = obo_token_getter_fn()
110+
token_env_val = os.environ.get('SINGLESTOREDB_USER_TOKEN')
111+
token_val = api_key if api_key is not None else token_env_val
112+
if token_val:
113+
request.headers['Authorization'] = f'Bearer {token_val}'
114+
if obo_token_getter is not None:
115+
obo_val = obo_token_getter()
135116
if obo_val:
136117
request.headers['X-S2-OBO'] = obo_val
137118
request.headers.pop('X-Amz-Date', None)
@@ -167,7 +148,8 @@ def _inject_headers(request: Any, **_ignored: Any) -> None:
167148
)
168149

169150
# OpenAI / Azure OpenAI path
170-
token = api_key_getter_fn()
151+
token_env = os.environ.get('SINGLESTOREDB_USER_TOKEN')
152+
token = api_key if api_key is not None else token_env
171153

172154
openai_kwargs = dict(
173155
base_url=info.connection_url,

singlestoredb/ai/embeddings.py

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,34 +32,15 @@
3232

3333
def 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

Comments
 (0)