mbxai 1.0.7__py3-none-any.whl → 1.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mbxai/__init__.py +1 -1
- mbxai/mcp/server.py +1 -1
- mbxai/openrouter/client.py +37 -3
- {mbxai-1.0.7.dist-info → mbxai-1.0.8.dist-info}/METADATA +1 -1
- {mbxai-1.0.7.dist-info → mbxai-1.0.8.dist-info}/RECORD +7 -7
- {mbxai-1.0.7.dist-info → mbxai-1.0.8.dist-info}/WHEEL +0 -0
- {mbxai-1.0.7.dist-info → mbxai-1.0.8.dist-info}/licenses/LICENSE +0 -0
mbxai/__init__.py
CHANGED
mbxai/mcp/server.py
CHANGED
mbxai/openrouter/client.py
CHANGED
@@ -3,7 +3,7 @@ OpenRouter client implementation.
|
|
3
3
|
"""
|
4
4
|
|
5
5
|
from typing import Any, Optional, Union
|
6
|
-
from openai import OpenAI, OpenAIError
|
6
|
+
from openai import OpenAI, OpenAIError, RateLimitError, APITimeoutError, APIConnectionError, InvalidRequestError, AuthenticationError
|
7
7
|
from .models import OpenRouterModel, OpenRouterModelRegistry
|
8
8
|
from .config import OpenRouterConfig
|
9
9
|
import logging
|
@@ -271,14 +271,48 @@ class OpenRouterClient:
|
|
271
271
|
**kwargs,
|
272
272
|
}
|
273
273
|
|
274
|
-
|
274
|
+
# Log the full request for debugging
|
275
|
+
logger.debug(f"Full request: {request}")
|
275
276
|
|
276
|
-
|
277
|
+
try:
|
278
|
+
response = self._client.beta.chat.completions.parse(**request)
|
279
|
+
except RateLimitError as e:
|
280
|
+
logger.error(f"Rate limit exceeded: {str(e)}")
|
281
|
+
raise OpenRouterAPIError(f"Rate limit exceeded: {str(e)}")
|
282
|
+
except APITimeoutError as e:
|
283
|
+
logger.error(f"API timeout: {str(e)}")
|
284
|
+
raise OpenRouterConnectionError(f"API timeout: {str(e)}")
|
285
|
+
except APIConnectionError as e:
|
286
|
+
logger.error(f"API connection error: {str(e)}")
|
287
|
+
raise OpenRouterConnectionError(f"API connection error: {str(e)}")
|
288
|
+
except AuthenticationError as e:
|
289
|
+
logger.error(f"Authentication error: {str(e)}")
|
290
|
+
raise OpenRouterAPIError(f"Authentication error: {str(e)}")
|
291
|
+
except InvalidRequestError as e:
|
292
|
+
logger.error(f"Invalid request: {str(e)}")
|
293
|
+
raise OpenRouterAPIError(f"Invalid request: {str(e)}")
|
294
|
+
except OpenAIError as e:
|
295
|
+
logger.error(f"OpenAI error: {str(e)}")
|
296
|
+
raise OpenRouterAPIError(f"OpenAI error: {str(e)}")
|
297
|
+
|
298
|
+
# Log raw response for debugging
|
299
|
+
logger.debug(f"Raw response: {response}")
|
300
|
+
if hasattr(response, '__dict__'):
|
301
|
+
logger.debug(f"Response attributes: {dir(response)}")
|
302
|
+
logger.debug(f"Response dict: {response.__dict__}")
|
277
303
|
|
278
304
|
if response is None:
|
279
305
|
logger.error("Received None response from OpenRouter API")
|
280
306
|
raise OpenRouterAPIError("Received None response from OpenRouter API")
|
281
307
|
|
308
|
+
# Try to get the raw response content if available
|
309
|
+
if hasattr(response, '_response'):
|
310
|
+
try:
|
311
|
+
raw_content = response._response.text
|
312
|
+
logger.debug(f"Raw response content: {raw_content[:1000]}...")
|
313
|
+
except Exception as e:
|
314
|
+
logger.debug(f"Could not get raw response content: {e}")
|
315
|
+
|
282
316
|
# Validate response structure
|
283
317
|
if not hasattr(response, 'choices'):
|
284
318
|
logger.error(f"Response missing 'choices' attribute. Available attributes: {dir(response)}")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
mbxai/__init__.py,sha256=
|
1
|
+
mbxai/__init__.py,sha256=OtdiGp4duB0VVkYC0OipXxl-pkpoA0hVtu4y0jnwF6E,47
|
2
2
|
mbxai/core.py,sha256=WMvmU9TTa7M_m-qWsUew4xH8Ul6xseCZ2iBCXJTW-Bs,196
|
3
3
|
mbxai/examples/openrouter_example.py,sha256=-grXHKMmFLoh-yUIEMc31n8Gg1S7uSazBWCIOWxgbyQ,1317
|
4
4
|
mbxai/examples/parse_example.py,sha256=eCKMJoOl6qwo8sDP6Trc6ncgjPlgTqi5tPE2kB5_P0k,3821
|
@@ -9,16 +9,16 @@ mbxai/examples/mcp/mcp_server_example.py,sha256=nFfg22Jnc6HMW_ezLO3So1xwDdx2_rIt
|
|
9
9
|
mbxai/mcp/__init__.py,sha256=_ek9iYdYqW5saKetj4qDci11jxesQDiHPJRpHMKkxgU,175
|
10
10
|
mbxai/mcp/client.py,sha256=eXIN2ebprNF5UgM1jb-4JkXmc-5toUhtlBNFKVU7FgY,5204
|
11
11
|
mbxai/mcp/example.py,sha256=oaol7AvvZnX86JWNz64KvPjab5gg1VjVN3G8eFSzuaE,2350
|
12
|
-
mbxai/mcp/server.py,sha256=
|
12
|
+
mbxai/mcp/server.py,sha256=2BhJNXN-fmbbS5PzGv9dcytubYXNwCyV7guzAsPNnVg,3454
|
13
13
|
mbxai/openrouter/__init__.py,sha256=Ito9Qp_B6q-RLGAQcYyTJVWwR2YAZvNqE-HIYXxhtD8,298
|
14
|
-
mbxai/openrouter/client.py,sha256=
|
14
|
+
mbxai/openrouter/client.py,sha256=r1RLnQKK_zVs9P7KA7qWX_LPlTHOJJP-yr4Sq1A4zoE,16890
|
15
15
|
mbxai/openrouter/config.py,sha256=Ia93s-auim9Sq71eunVDbn9ET5xX2zusXpV4JBdHAzs,3251
|
16
16
|
mbxai/openrouter/models.py,sha256=b3IjjtZAjeGOf2rLsdnCD1HacjTnS8jmv_ZXorc-KJQ,2604
|
17
17
|
mbxai/tools/__init__.py,sha256=ogxrHvgJ7OR62Lmd5x9Eh5d2C0jqWyQis7Zy3yKpZ78,218
|
18
18
|
mbxai/tools/client.py,sha256=h_1fxVDBq57f_OXNsj-TBp6-r367sv6Z5nk1qLFcLO8,14951
|
19
19
|
mbxai/tools/example.py,sha256=1HgKK39zzUuwFbnp3f0ThyWVfA_8P28PZcTwaUw5K78,2232
|
20
20
|
mbxai/tools/types.py,sha256=pAoVuL7nKhvL3Iek0JheGfll4clsABFLl1CNjmiG3No,5866
|
21
|
-
mbxai-1.0.
|
22
|
-
mbxai-1.0.
|
23
|
-
mbxai-1.0.
|
24
|
-
mbxai-1.0.
|
21
|
+
mbxai-1.0.8.dist-info/METADATA,sha256=gskY0emdVWotCFYHYl9y804Bc90bZ-KBLDrW3vVZa-Q,4147
|
22
|
+
mbxai-1.0.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
23
|
+
mbxai-1.0.8.dist-info/licenses/LICENSE,sha256=hEyhc4FxwYo3NQ40yNgZ7STqwVk-1_XcTXOnAPbGJAw,1069
|
24
|
+
mbxai-1.0.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|