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 CHANGED
@@ -2,4 +2,4 @@
2
2
  MBX AI package.
3
3
  """
4
4
 
5
- __version__ = "1.0.7"
5
+ __version__ = "1.0.8"
mbxai/mcp/server.py CHANGED
@@ -31,7 +31,7 @@ class MCPServer:
31
31
  self.app = FastAPI(
32
32
  title=self.name,
33
33
  description=self.description,
34
- version="1.0.7",
34
+ version="1.0.8",
35
35
  )
36
36
 
37
37
  # Initialize MCP server
@@ -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
- response = self._client.beta.chat.completions.parse(**request)
274
+ # Log the full request for debugging
275
+ logger.debug(f"Full request: {request}")
275
276
 
276
- logger.debug(f"FullResponse: {response}")
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mbxai
3
- Version: 1.0.7
3
+ Version: 1.0.8
4
4
  Summary: MBX AI SDK
5
5
  Project-URL: Homepage, https://www.mibexx.de
6
6
  Project-URL: Documentation, https://www.mibexx.de
@@ -1,4 +1,4 @@
1
- mbxai/__init__.py,sha256=GsUAjuRRg2k3Dmbx_XffoOvPi36giyTQM16VfbSzNpw,47
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=OJkePExkNbu0OoPUXeC0rInLGcv1Avz-igvesJQG0rk,3454
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=NTeIb9cBy6lE1AmQsgDL4I0vcdwrFjWwxJIW2vmmA6Q,14969
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.7.dist-info/METADATA,sha256=KAk8RSiWRm0fjYhBdV1HFKEW2gcMl4cmWWS9Mc1st2A,4147
22
- mbxai-1.0.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
- mbxai-1.0.7.dist-info/licenses/LICENSE,sha256=hEyhc4FxwYo3NQ40yNgZ7STqwVk-1_XcTXOnAPbGJAw,1069
24
- mbxai-1.0.7.dist-info/RECORD,,
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