grasp_agents 0.5.12__py3-none-any.whl → 0.5.14__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.
@@ -74,23 +74,22 @@ class LiteLLM(CloudLLM[LiteLLMSettings, LiteLLMConverters]):
74
74
  )
75
75
 
76
76
  _api_provider = self.api_provider
77
-
78
- if self.model_name in litellm.get_valid_models(): # type: ignore[no-untyped-call]
77
+ try:
79
78
  _, provider_name, _, _ = litellm.get_llm_provider(self.model_name) # type: ignore[no-untyped-call]
80
79
  _api_provider = APIProvider(name=provider_name)
81
- elif self.api_provider is not None:
82
- self._lite_llm_completion_params["api_key"] = self.api_provider.get(
83
- "api_key"
84
- )
85
- self._lite_llm_completion_params["api_base"] = self.api_provider.get(
86
- "api_base"
87
- )
88
- elif self.api_provider is None:
89
- raise ValueError(
90
- f"Model '{self.model_name}' is not supported by LiteLLM and no API provider "
91
- "was specified. Please provide a valid API provider or use a different "
92
- "model."
93
- )
80
+ except Exception as exc:
81
+ if self.api_provider is not None:
82
+ self._lite_llm_completion_params["api_key"] = self.api_provider.get(
83
+ "api_key"
84
+ )
85
+ self._lite_llm_completion_params["api_base"] = self.api_provider.get(
86
+ "api_base"
87
+ )
88
+ else:
89
+ raise ValueError(
90
+ f"Failed to retrieve a LiteLLM supported API provider for model "
91
+ f"'{self.model_name}' and no custom API provider was specified."
92
+ ) from exc
94
93
 
95
94
  if self.llm_settings is not None:
96
95
  stream_options = self.llm_settings.get("stream_options") or {}
@@ -47,6 +47,7 @@ def with_retry(func: F) -> F:
47
47
  async def wrapper(
48
48
  self: "BaseProcessor[Any, Any, Any, Any]", *args: Any, **kwargs: Any
49
49
  ) -> Packet[Any]:
50
+ none_packet = Packet(payloads=[None], sender=self.name)
50
51
  call_id = kwargs.get("call_id", "unknown")
51
52
  for n_attempt in range(self.max_retries + 1):
52
53
  try:
@@ -61,12 +62,12 @@ def with_retry(func: F) -> F:
61
62
  else:
62
63
  logger.warning(f"{err_message} after retrying:\n{err}")
63
64
  # raise ProcRunError(proc_name=self.name, call_id=call_id) from err
64
- return None # type: ignore[return]
65
+ return none_packet
65
66
 
66
67
  logger.warning(f"{err_message} (retry attempt {n_attempt + 1}):\n{err}")
67
68
  # This part should not be reachable due to the raise in the loop
68
69
  # raise ProcRunError(proc_name=self.name, call_id=call_id)
69
- return None # type: ignore[return]
70
+ return none_packet
70
71
 
71
72
  return cast("F", wrapper)
72
73
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: grasp_agents
3
- Version: 0.5.12
3
+ Version: 0.5.14
4
4
  Summary: Grasp Agents Library
5
5
  License-File: LICENSE.md
6
6
  Requires-Python: <4,>=3.11.4
@@ -22,7 +22,7 @@ grasp_agents/litellm/__init__.py,sha256=wD8RZBYokFDfbS9Cs7nO_zKb3w7RIVwEGj7g2D5C
22
22
  grasp_agents/litellm/completion_chunk_converters.py,sha256=J5PPxzoTBqkvKQnCoBxQxJo7Q8Xfl9cbv2GRZox8Cjo,2689
23
23
  grasp_agents/litellm/completion_converters.py,sha256=JQ7XvQwwc-biFqVMcRO61SL5VGs_SkUvAhUz1QD7EmU,2516
24
24
  grasp_agents/litellm/converters.py,sha256=XjePHii578sXP26Fyhnv0XfwJ3cNTp5PraggTsvcBXo,4778
25
- grasp_agents/litellm/lite_llm.py,sha256=6Am1rWZ1LWWog8tjSSoN6sFtOqSi4roX4QNC9FLw5Gs,8403
25
+ grasp_agents/litellm/lite_llm.py,sha256=IXSplFiOksN-DjxkhZmB0eEGYJGr06IVR_ktE-2MVr8,8341
26
26
  grasp_agents/litellm/message_converters.py,sha256=PsGLIJEcAeEoluHIh-utEufJ_9WeMYzXkwnR-8jyULQ,2037
27
27
  grasp_agents/openai/__init__.py,sha256=xaRnblUskiLvypIhMe4NRp9dxCG-gNR7dPiugUbPbhE,4717
28
28
  grasp_agents/openai/completion_chunk_converters.py,sha256=3MnMskdlp7ycsggc1ok1XpCHaP4Us2rLYaxImPLw1eI,2573
@@ -32,7 +32,7 @@ grasp_agents/openai/converters.py,sha256=RKOfMbIJmfFQ7ot0RGR6wrdMbR6_L7PB0UZwxwg
32
32
  grasp_agents/openai/message_converters.py,sha256=fhSN81uK51EGbLyM2-f0MvPX_UBrMy7SF3JQPo-dkXg,4686
33
33
  grasp_agents/openai/openai_llm.py,sha256=DCvoF7MM_OID2UhTkNcBLeEdf8Ej2SQ-6FhgRGe8l1E,9861
34
34
  grasp_agents/openai/tool_converters.py,sha256=rNH5t2Wir9nuy8Ei0jaxNuzDaXGqTLmLz3VyrnJhyn0,1196
35
- grasp_agents/processors/base_processor.py,sha256=2ks_jpeye0XW9k3BcAhD9XO8NctspOV2py9ZAD-dO6c,10942
35
+ grasp_agents/processors/base_processor.py,sha256=OpEbOHNsi3RkVDrWy7sN42UB-0vx0L9_hWGjlA07QsM,10972
36
36
  grasp_agents/processors/parallel_processor.py,sha256=BOXRlPaZ-hooz0hHctqiW_5ldR-yDPYjFxuP7fAbZCI,7911
37
37
  grasp_agents/processors/processor.py,sha256=35MtYKrKtCZZMhV-U1DXBXtCNbCvZGaiiXo_5a3tI6s,5249
38
38
  grasp_agents/rate_limiting/__init__.py,sha256=KRgtF_E7R3YfA2cpYcFcZ7wycV0pWVJ0xRQC7YhiIEQ,158
@@ -52,7 +52,7 @@ grasp_agents/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
52
52
  grasp_agents/workflow/looped_workflow.py,sha256=WHp9O3Za2sBVfY_BLOdvPvtY20XsjZQaWSO2-oAFvOY,6806
53
53
  grasp_agents/workflow/sequential_workflow.py,sha256=e3BIWzy_2novmEWNwIteyMbrzvl1-evHrTBE3r3SpU8,3648
54
54
  grasp_agents/workflow/workflow_processor.py,sha256=DwHz70UOTp9dkbtzH9KE5LkGcT1RdHV7Hdiby0Bu9tw,3535
55
- grasp_agents-0.5.12.dist-info/METADATA,sha256=zfsWyMd6aeCxdXiTGWUM4ZuOnA3xMAbgfeLXKYpNdcI,6633
56
- grasp_agents-0.5.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
- grasp_agents-0.5.12.dist-info/licenses/LICENSE.md,sha256=-nNNdWqGB8gJ2O-peFQ2Irshv5tW5pHKyTcYkwvH7CE,1201
58
- grasp_agents-0.5.12.dist-info/RECORD,,
55
+ grasp_agents-0.5.14.dist-info/METADATA,sha256=zXIn4AF6QikIjI4DqPjNzzLfCn3gUXft9j1ktMNQu10,6633
56
+ grasp_agents-0.5.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
+ grasp_agents-0.5.14.dist-info/licenses/LICENSE.md,sha256=-nNNdWqGB8gJ2O-peFQ2Irshv5tW5pHKyTcYkwvH7CE,1201
58
+ grasp_agents-0.5.14.dist-info/RECORD,,