mirascope 1.25.7__py3-none-any.whl → 2.0.0a0__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.
Files changed (474) hide show
  1. mirascope/__init__.py +3 -59
  2. mirascope/graphs/__init__.py +22 -0
  3. mirascope/{experimental/graphs → graphs}/finite_state_machine.py +70 -159
  4. mirascope/llm/__init__.py +206 -16
  5. mirascope/llm/agents/__init__.py +15 -0
  6. mirascope/llm/agents/agent.py +97 -0
  7. mirascope/llm/agents/agent_template.py +45 -0
  8. mirascope/llm/agents/decorator.py +176 -0
  9. mirascope/llm/calls/__init__.py +16 -0
  10. mirascope/llm/calls/base_call.py +33 -0
  11. mirascope/llm/calls/calls.py +315 -0
  12. mirascope/llm/calls/decorator.py +255 -0
  13. mirascope/llm/clients/__init__.py +34 -0
  14. mirascope/llm/clients/anthropic/__init__.py +11 -0
  15. mirascope/llm/clients/anthropic/_utils/__init__.py +13 -0
  16. mirascope/llm/clients/anthropic/_utils/decode.py +244 -0
  17. mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
  18. mirascope/llm/clients/anthropic/clients.py +819 -0
  19. mirascope/llm/clients/anthropic/model_ids.py +8 -0
  20. mirascope/llm/clients/base/__init__.py +15 -0
  21. mirascope/llm/clients/base/_utils.py +192 -0
  22. mirascope/llm/clients/base/client.py +1256 -0
  23. mirascope/llm/clients/base/kwargs.py +12 -0
  24. mirascope/llm/clients/base/params.py +93 -0
  25. mirascope/llm/clients/google/__init__.py +6 -0
  26. mirascope/llm/clients/google/_utils/__init__.py +13 -0
  27. mirascope/llm/clients/google/_utils/decode.py +231 -0
  28. mirascope/llm/clients/google/_utils/encode.py +279 -0
  29. mirascope/llm/clients/google/clients.py +853 -0
  30. mirascope/llm/clients/google/message.py +7 -0
  31. mirascope/llm/clients/google/model_ids.py +15 -0
  32. mirascope/llm/clients/openai/__init__.py +25 -0
  33. mirascope/llm/clients/openai/completions/__init__.py +9 -0
  34. mirascope/llm/clients/openai/completions/_utils/__init__.py +13 -0
  35. mirascope/llm/clients/openai/completions/_utils/decode.py +187 -0
  36. mirascope/llm/clients/openai/completions/_utils/encode.py +358 -0
  37. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  38. mirascope/llm/clients/openai/completions/clients.py +833 -0
  39. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  40. mirascope/llm/clients/openai/responses/__init__.py +9 -0
  41. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  42. mirascope/llm/clients/openai/responses/_utils/decode.py +194 -0
  43. mirascope/llm/clients/openai/responses/_utils/encode.py +333 -0
  44. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  45. mirascope/llm/clients/openai/responses/clients.py +832 -0
  46. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  47. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  48. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  49. mirascope/llm/clients/providers.py +175 -0
  50. mirascope/llm/content/__init__.py +70 -0
  51. mirascope/llm/content/audio.py +173 -0
  52. mirascope/llm/content/document.py +94 -0
  53. mirascope/llm/content/image.py +206 -0
  54. mirascope/llm/content/text.py +47 -0
  55. mirascope/llm/content/thought.py +58 -0
  56. mirascope/llm/content/tool_call.py +63 -0
  57. mirascope/llm/content/tool_output.py +26 -0
  58. mirascope/llm/context/__init__.py +6 -0
  59. mirascope/llm/context/_utils.py +28 -0
  60. mirascope/llm/context/context.py +24 -0
  61. mirascope/llm/exceptions.py +105 -0
  62. mirascope/llm/formatting/__init__.py +22 -0
  63. mirascope/llm/formatting/_utils.py +74 -0
  64. mirascope/llm/formatting/format.py +104 -0
  65. mirascope/llm/formatting/from_call_args.py +30 -0
  66. mirascope/llm/formatting/partial.py +58 -0
  67. mirascope/llm/formatting/types.py +109 -0
  68. mirascope/llm/mcp/__init__.py +5 -0
  69. mirascope/llm/mcp/client.py +118 -0
  70. mirascope/llm/messages/__init__.py +32 -0
  71. mirascope/llm/messages/message.py +182 -0
  72. mirascope/llm/models/__init__.py +16 -0
  73. mirascope/llm/models/models.py +1243 -0
  74. mirascope/llm/prompts/__init__.py +33 -0
  75. mirascope/llm/prompts/_utils.py +60 -0
  76. mirascope/llm/prompts/decorator.py +286 -0
  77. mirascope/llm/prompts/protocols.py +99 -0
  78. mirascope/llm/responses/__init__.py +57 -0
  79. mirascope/llm/responses/_utils.py +56 -0
  80. mirascope/llm/responses/base_response.py +91 -0
  81. mirascope/llm/responses/base_stream_response.py +697 -0
  82. mirascope/llm/responses/finish_reason.py +27 -0
  83. mirascope/llm/responses/response.py +345 -0
  84. mirascope/llm/responses/root_response.py +177 -0
  85. mirascope/llm/responses/stream_response.py +572 -0
  86. mirascope/llm/responses/streams.py +363 -0
  87. mirascope/llm/tools/__init__.py +40 -0
  88. mirascope/llm/tools/_utils.py +25 -0
  89. mirascope/llm/tools/decorator.py +175 -0
  90. mirascope/llm/tools/protocols.py +96 -0
  91. mirascope/llm/tools/tool_schema.py +246 -0
  92. mirascope/llm/tools/toolkit.py +152 -0
  93. mirascope/llm/tools/tools.py +169 -0
  94. mirascope/llm/types/__init__.py +22 -0
  95. mirascope/llm/types/dataclass.py +9 -0
  96. mirascope/llm/types/jsonable.py +44 -0
  97. mirascope/llm/types/type_vars.py +19 -0
  98. mirascope-2.0.0a0.dist-info/METADATA +117 -0
  99. mirascope-2.0.0a0.dist-info/RECORD +101 -0
  100. mirascope/beta/__init__.py +0 -3
  101. mirascope/beta/openai/__init__.py +0 -17
  102. mirascope/beta/openai/realtime/__init__.py +0 -13
  103. mirascope/beta/openai/realtime/_utils/__init__.py +0 -3
  104. mirascope/beta/openai/realtime/_utils/_audio.py +0 -74
  105. mirascope/beta/openai/realtime/_utils/_protocols.py +0 -50
  106. mirascope/beta/openai/realtime/realtime.py +0 -500
  107. mirascope/beta/openai/realtime/recording.py +0 -98
  108. mirascope/beta/openai/realtime/tool.py +0 -113
  109. mirascope/beta/rag/__init__.py +0 -24
  110. mirascope/beta/rag/base/__init__.py +0 -22
  111. mirascope/beta/rag/base/chunkers/__init__.py +0 -2
  112. mirascope/beta/rag/base/chunkers/base_chunker.py +0 -37
  113. mirascope/beta/rag/base/chunkers/text_chunker.py +0 -33
  114. mirascope/beta/rag/base/config.py +0 -8
  115. mirascope/beta/rag/base/document.py +0 -11
  116. mirascope/beta/rag/base/embedders.py +0 -35
  117. mirascope/beta/rag/base/embedding_params.py +0 -18
  118. mirascope/beta/rag/base/embedding_response.py +0 -30
  119. mirascope/beta/rag/base/query_results.py +0 -7
  120. mirascope/beta/rag/base/vectorstore_params.py +0 -18
  121. mirascope/beta/rag/base/vectorstores.py +0 -37
  122. mirascope/beta/rag/chroma/__init__.py +0 -11
  123. mirascope/beta/rag/chroma/types.py +0 -62
  124. mirascope/beta/rag/chroma/vectorstores.py +0 -121
  125. mirascope/beta/rag/cohere/__init__.py +0 -11
  126. mirascope/beta/rag/cohere/embedders.py +0 -87
  127. mirascope/beta/rag/cohere/embedding_params.py +0 -29
  128. mirascope/beta/rag/cohere/embedding_response.py +0 -29
  129. mirascope/beta/rag/cohere/py.typed +0 -0
  130. mirascope/beta/rag/openai/__init__.py +0 -11
  131. mirascope/beta/rag/openai/embedders.py +0 -144
  132. mirascope/beta/rag/openai/embedding_params.py +0 -18
  133. mirascope/beta/rag/openai/embedding_response.py +0 -14
  134. mirascope/beta/rag/openai/py.typed +0 -0
  135. mirascope/beta/rag/pinecone/__init__.py +0 -19
  136. mirascope/beta/rag/pinecone/types.py +0 -143
  137. mirascope/beta/rag/pinecone/vectorstores.py +0 -148
  138. mirascope/beta/rag/weaviate/__init__.py +0 -6
  139. mirascope/beta/rag/weaviate/types.py +0 -92
  140. mirascope/beta/rag/weaviate/vectorstores.py +0 -103
  141. mirascope/core/__init__.py +0 -109
  142. mirascope/core/anthropic/__init__.py +0 -31
  143. mirascope/core/anthropic/_call.py +0 -67
  144. mirascope/core/anthropic/_call_kwargs.py +0 -13
  145. mirascope/core/anthropic/_thinking.py +0 -70
  146. mirascope/core/anthropic/_utils/__init__.py +0 -16
  147. mirascope/core/anthropic/_utils/_convert_common_call_params.py +0 -25
  148. mirascope/core/anthropic/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -21
  149. mirascope/core/anthropic/_utils/_convert_message_params.py +0 -102
  150. mirascope/core/anthropic/_utils/_get_json_output.py +0 -31
  151. mirascope/core/anthropic/_utils/_handle_stream.py +0 -113
  152. mirascope/core/anthropic/_utils/_message_param_converter.py +0 -154
  153. mirascope/core/anthropic/_utils/_setup_call.py +0 -146
  154. mirascope/core/anthropic/call_params.py +0 -44
  155. mirascope/core/anthropic/call_response.py +0 -226
  156. mirascope/core/anthropic/call_response_chunk.py +0 -152
  157. mirascope/core/anthropic/dynamic_config.py +0 -40
  158. mirascope/core/anthropic/py.typed +0 -0
  159. mirascope/core/anthropic/stream.py +0 -204
  160. mirascope/core/anthropic/tool.py +0 -101
  161. mirascope/core/azure/__init__.py +0 -31
  162. mirascope/core/azure/_call.py +0 -67
  163. mirascope/core/azure/_call_kwargs.py +0 -13
  164. mirascope/core/azure/_utils/__init__.py +0 -14
  165. mirascope/core/azure/_utils/_convert_common_call_params.py +0 -26
  166. mirascope/core/azure/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -21
  167. mirascope/core/azure/_utils/_convert_message_params.py +0 -121
  168. mirascope/core/azure/_utils/_get_credential.py +0 -33
  169. mirascope/core/azure/_utils/_get_json_output.py +0 -27
  170. mirascope/core/azure/_utils/_handle_stream.py +0 -130
  171. mirascope/core/azure/_utils/_message_param_converter.py +0 -117
  172. mirascope/core/azure/_utils/_setup_call.py +0 -183
  173. mirascope/core/azure/call_params.py +0 -59
  174. mirascope/core/azure/call_response.py +0 -215
  175. mirascope/core/azure/call_response_chunk.py +0 -105
  176. mirascope/core/azure/dynamic_config.py +0 -30
  177. mirascope/core/azure/py.typed +0 -0
  178. mirascope/core/azure/stream.py +0 -147
  179. mirascope/core/azure/tool.py +0 -93
  180. mirascope/core/base/__init__.py +0 -86
  181. mirascope/core/base/_call_factory.py +0 -256
  182. mirascope/core/base/_create.py +0 -253
  183. mirascope/core/base/_extract.py +0 -175
  184. mirascope/core/base/_extract_with_tools.py +0 -189
  185. mirascope/core/base/_partial.py +0 -95
  186. mirascope/core/base/_utils/__init__.py +0 -92
  187. mirascope/core/base/_utils/_base_message_param_converter.py +0 -22
  188. mirascope/core/base/_utils/_base_type.py +0 -26
  189. mirascope/core/base/_utils/_convert_base_model_to_base_tool.py +0 -48
  190. mirascope/core/base/_utils/_convert_base_type_to_base_tool.py +0 -24
  191. mirascope/core/base/_utils/_convert_function_to_base_tool.py +0 -139
  192. mirascope/core/base/_utils/_convert_messages_to_message_params.py +0 -178
  193. mirascope/core/base/_utils/_convert_provider_finish_reason_to_finish_reason.py +0 -20
  194. mirascope/core/base/_utils/_default_tool_docstring.py +0 -6
  195. mirascope/core/base/_utils/_extract_tool_return.py +0 -42
  196. mirascope/core/base/_utils/_fn_is_async.py +0 -24
  197. mirascope/core/base/_utils/_format_template.py +0 -32
  198. mirascope/core/base/_utils/_get_audio_type.py +0 -18
  199. mirascope/core/base/_utils/_get_common_usage.py +0 -20
  200. mirascope/core/base/_utils/_get_create_fn_or_async_create_fn.py +0 -137
  201. mirascope/core/base/_utils/_get_document_type.py +0 -7
  202. mirascope/core/base/_utils/_get_dynamic_configuration.py +0 -69
  203. mirascope/core/base/_utils/_get_fields_from_call_args.py +0 -34
  204. mirascope/core/base/_utils/_get_fn_args.py +0 -23
  205. mirascope/core/base/_utils/_get_image_dimensions.py +0 -39
  206. mirascope/core/base/_utils/_get_image_type.py +0 -26
  207. mirascope/core/base/_utils/_get_metadata.py +0 -17
  208. mirascope/core/base/_utils/_get_possible_user_message_param.py +0 -21
  209. mirascope/core/base/_utils/_get_prompt_template.py +0 -28
  210. mirascope/core/base/_utils/_get_template_values.py +0 -51
  211. mirascope/core/base/_utils/_get_template_variables.py +0 -38
  212. mirascope/core/base/_utils/_get_unsupported_tool_config_keys.py +0 -10
  213. mirascope/core/base/_utils/_is_prompt_template.py +0 -24
  214. mirascope/core/base/_utils/_json_mode_content.py +0 -17
  215. mirascope/core/base/_utils/_messages_decorator.py +0 -121
  216. mirascope/core/base/_utils/_parse_content_template.py +0 -323
  217. mirascope/core/base/_utils/_parse_prompt_messages.py +0 -63
  218. mirascope/core/base/_utils/_pil_image_to_bytes.py +0 -13
  219. mirascope/core/base/_utils/_protocols.py +0 -901
  220. mirascope/core/base/_utils/_setup_call.py +0 -79
  221. mirascope/core/base/_utils/_setup_extract_tool.py +0 -30
  222. mirascope/core/base/call_kwargs.py +0 -13
  223. mirascope/core/base/call_params.py +0 -36
  224. mirascope/core/base/call_response.py +0 -338
  225. mirascope/core/base/call_response_chunk.py +0 -130
  226. mirascope/core/base/dynamic_config.py +0 -82
  227. mirascope/core/base/from_call_args.py +0 -30
  228. mirascope/core/base/merge_decorators.py +0 -59
  229. mirascope/core/base/message_param.py +0 -175
  230. mirascope/core/base/messages.py +0 -116
  231. mirascope/core/base/metadata.py +0 -13
  232. mirascope/core/base/prompt.py +0 -497
  233. mirascope/core/base/response_model_config_dict.py +0 -9
  234. mirascope/core/base/stream.py +0 -479
  235. mirascope/core/base/stream_config.py +0 -11
  236. mirascope/core/base/structured_stream.py +0 -296
  237. mirascope/core/base/tool.py +0 -214
  238. mirascope/core/base/toolkit.py +0 -176
  239. mirascope/core/base/types.py +0 -344
  240. mirascope/core/bedrock/__init__.py +0 -34
  241. mirascope/core/bedrock/_call.py +0 -68
  242. mirascope/core/bedrock/_call_kwargs.py +0 -12
  243. mirascope/core/bedrock/_types.py +0 -104
  244. mirascope/core/bedrock/_utils/__init__.py +0 -14
  245. mirascope/core/bedrock/_utils/_convert_common_call_params.py +0 -39
  246. mirascope/core/bedrock/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -23
  247. mirascope/core/bedrock/_utils/_convert_message_params.py +0 -111
  248. mirascope/core/bedrock/_utils/_get_json_output.py +0 -30
  249. mirascope/core/bedrock/_utils/_handle_stream.py +0 -104
  250. mirascope/core/bedrock/_utils/_message_param_converter.py +0 -172
  251. mirascope/core/bedrock/_utils/_setup_call.py +0 -258
  252. mirascope/core/bedrock/call_params.py +0 -38
  253. mirascope/core/bedrock/call_response.py +0 -248
  254. mirascope/core/bedrock/call_response_chunk.py +0 -111
  255. mirascope/core/bedrock/dynamic_config.py +0 -37
  256. mirascope/core/bedrock/py.typed +0 -0
  257. mirascope/core/bedrock/stream.py +0 -154
  258. mirascope/core/bedrock/tool.py +0 -100
  259. mirascope/core/cohere/__init__.py +0 -30
  260. mirascope/core/cohere/_call.py +0 -67
  261. mirascope/core/cohere/_call_kwargs.py +0 -11
  262. mirascope/core/cohere/_types.py +0 -20
  263. mirascope/core/cohere/_utils/__init__.py +0 -14
  264. mirascope/core/cohere/_utils/_convert_common_call_params.py +0 -26
  265. mirascope/core/cohere/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -24
  266. mirascope/core/cohere/_utils/_convert_message_params.py +0 -32
  267. mirascope/core/cohere/_utils/_get_json_output.py +0 -30
  268. mirascope/core/cohere/_utils/_handle_stream.py +0 -35
  269. mirascope/core/cohere/_utils/_message_param_converter.py +0 -54
  270. mirascope/core/cohere/_utils/_setup_call.py +0 -150
  271. mirascope/core/cohere/call_params.py +0 -62
  272. mirascope/core/cohere/call_response.py +0 -205
  273. mirascope/core/cohere/call_response_chunk.py +0 -125
  274. mirascope/core/cohere/dynamic_config.py +0 -32
  275. mirascope/core/cohere/py.typed +0 -0
  276. mirascope/core/cohere/stream.py +0 -113
  277. mirascope/core/cohere/tool.py +0 -93
  278. mirascope/core/costs/__init__.py +0 -5
  279. mirascope/core/costs/_anthropic_calculate_cost.py +0 -219
  280. mirascope/core/costs/_azure_calculate_cost.py +0 -11
  281. mirascope/core/costs/_bedrock_calculate_cost.py +0 -15
  282. mirascope/core/costs/_cohere_calculate_cost.py +0 -44
  283. mirascope/core/costs/_gemini_calculate_cost.py +0 -67
  284. mirascope/core/costs/_google_calculate_cost.py +0 -427
  285. mirascope/core/costs/_groq_calculate_cost.py +0 -156
  286. mirascope/core/costs/_litellm_calculate_cost.py +0 -11
  287. mirascope/core/costs/_mistral_calculate_cost.py +0 -64
  288. mirascope/core/costs/_openai_calculate_cost.py +0 -416
  289. mirascope/core/costs/_vertex_calculate_cost.py +0 -67
  290. mirascope/core/costs/_xai_calculate_cost.py +0 -104
  291. mirascope/core/costs/calculate_cost.py +0 -86
  292. mirascope/core/gemini/__init__.py +0 -40
  293. mirascope/core/gemini/_call.py +0 -67
  294. mirascope/core/gemini/_call_kwargs.py +0 -12
  295. mirascope/core/gemini/_utils/__init__.py +0 -14
  296. mirascope/core/gemini/_utils/_convert_common_call_params.py +0 -39
  297. mirascope/core/gemini/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -23
  298. mirascope/core/gemini/_utils/_convert_message_params.py +0 -156
  299. mirascope/core/gemini/_utils/_get_json_output.py +0 -35
  300. mirascope/core/gemini/_utils/_handle_stream.py +0 -33
  301. mirascope/core/gemini/_utils/_message_param_converter.py +0 -209
  302. mirascope/core/gemini/_utils/_setup_call.py +0 -149
  303. mirascope/core/gemini/call_params.py +0 -52
  304. mirascope/core/gemini/call_response.py +0 -216
  305. mirascope/core/gemini/call_response_chunk.py +0 -100
  306. mirascope/core/gemini/dynamic_config.py +0 -26
  307. mirascope/core/gemini/stream.py +0 -120
  308. mirascope/core/gemini/tool.py +0 -104
  309. mirascope/core/google/__init__.py +0 -29
  310. mirascope/core/google/_call.py +0 -67
  311. mirascope/core/google/_call_kwargs.py +0 -13
  312. mirascope/core/google/_utils/__init__.py +0 -14
  313. mirascope/core/google/_utils/_convert_common_call_params.py +0 -38
  314. mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -27
  315. mirascope/core/google/_utils/_convert_message_params.py +0 -297
  316. mirascope/core/google/_utils/_get_json_output.py +0 -37
  317. mirascope/core/google/_utils/_handle_stream.py +0 -58
  318. mirascope/core/google/_utils/_message_param_converter.py +0 -200
  319. mirascope/core/google/_utils/_setup_call.py +0 -201
  320. mirascope/core/google/_utils/_validate_media_type.py +0 -58
  321. mirascope/core/google/call_params.py +0 -22
  322. mirascope/core/google/call_response.py +0 -255
  323. mirascope/core/google/call_response_chunk.py +0 -135
  324. mirascope/core/google/dynamic_config.py +0 -26
  325. mirascope/core/google/stream.py +0 -199
  326. mirascope/core/google/tool.py +0 -146
  327. mirascope/core/groq/__init__.py +0 -30
  328. mirascope/core/groq/_call.py +0 -67
  329. mirascope/core/groq/_call_kwargs.py +0 -13
  330. mirascope/core/groq/_utils/__init__.py +0 -14
  331. mirascope/core/groq/_utils/_convert_common_call_params.py +0 -26
  332. mirascope/core/groq/_utils/_convert_message_params.py +0 -112
  333. mirascope/core/groq/_utils/_get_json_output.py +0 -27
  334. mirascope/core/groq/_utils/_handle_stream.py +0 -123
  335. mirascope/core/groq/_utils/_message_param_converter.py +0 -89
  336. mirascope/core/groq/_utils/_setup_call.py +0 -132
  337. mirascope/core/groq/call_params.py +0 -52
  338. mirascope/core/groq/call_response.py +0 -213
  339. mirascope/core/groq/call_response_chunk.py +0 -104
  340. mirascope/core/groq/dynamic_config.py +0 -29
  341. mirascope/core/groq/py.typed +0 -0
  342. mirascope/core/groq/stream.py +0 -135
  343. mirascope/core/groq/tool.py +0 -80
  344. mirascope/core/litellm/__init__.py +0 -28
  345. mirascope/core/litellm/_call.py +0 -67
  346. mirascope/core/litellm/_utils/__init__.py +0 -5
  347. mirascope/core/litellm/_utils/_setup_call.py +0 -109
  348. mirascope/core/litellm/call_params.py +0 -10
  349. mirascope/core/litellm/call_response.py +0 -24
  350. mirascope/core/litellm/call_response_chunk.py +0 -14
  351. mirascope/core/litellm/dynamic_config.py +0 -8
  352. mirascope/core/litellm/py.typed +0 -0
  353. mirascope/core/litellm/stream.py +0 -86
  354. mirascope/core/litellm/tool.py +0 -13
  355. mirascope/core/mistral/__init__.py +0 -36
  356. mirascope/core/mistral/_call.py +0 -65
  357. mirascope/core/mistral/_call_kwargs.py +0 -19
  358. mirascope/core/mistral/_utils/__init__.py +0 -14
  359. mirascope/core/mistral/_utils/_convert_common_call_params.py +0 -24
  360. mirascope/core/mistral/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -22
  361. mirascope/core/mistral/_utils/_convert_message_params.py +0 -122
  362. mirascope/core/mistral/_utils/_get_json_output.py +0 -34
  363. mirascope/core/mistral/_utils/_handle_stream.py +0 -139
  364. mirascope/core/mistral/_utils/_message_param_converter.py +0 -176
  365. mirascope/core/mistral/_utils/_setup_call.py +0 -164
  366. mirascope/core/mistral/call_params.py +0 -36
  367. mirascope/core/mistral/call_response.py +0 -205
  368. mirascope/core/mistral/call_response_chunk.py +0 -105
  369. mirascope/core/mistral/dynamic_config.py +0 -33
  370. mirascope/core/mistral/py.typed +0 -0
  371. mirascope/core/mistral/stream.py +0 -120
  372. mirascope/core/mistral/tool.py +0 -81
  373. mirascope/core/openai/__init__.py +0 -31
  374. mirascope/core/openai/_call.py +0 -67
  375. mirascope/core/openai/_call_kwargs.py +0 -13
  376. mirascope/core/openai/_utils/__init__.py +0 -14
  377. mirascope/core/openai/_utils/_convert_common_call_params.py +0 -26
  378. mirascope/core/openai/_utils/_convert_message_params.py +0 -148
  379. mirascope/core/openai/_utils/_get_json_output.py +0 -31
  380. mirascope/core/openai/_utils/_handle_stream.py +0 -138
  381. mirascope/core/openai/_utils/_message_param_converter.py +0 -105
  382. mirascope/core/openai/_utils/_setup_call.py +0 -155
  383. mirascope/core/openai/call_params.py +0 -92
  384. mirascope/core/openai/call_response.py +0 -273
  385. mirascope/core/openai/call_response_chunk.py +0 -139
  386. mirascope/core/openai/dynamic_config.py +0 -34
  387. mirascope/core/openai/py.typed +0 -0
  388. mirascope/core/openai/stream.py +0 -185
  389. mirascope/core/openai/tool.py +0 -101
  390. mirascope/core/py.typed +0 -0
  391. mirascope/core/vertex/__init__.py +0 -45
  392. mirascope/core/vertex/_call.py +0 -62
  393. mirascope/core/vertex/_call_kwargs.py +0 -12
  394. mirascope/core/vertex/_utils/__init__.py +0 -14
  395. mirascope/core/vertex/_utils/_convert_common_call_params.py +0 -37
  396. mirascope/core/vertex/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -23
  397. mirascope/core/vertex/_utils/_convert_message_params.py +0 -171
  398. mirascope/core/vertex/_utils/_get_json_output.py +0 -36
  399. mirascope/core/vertex/_utils/_handle_stream.py +0 -33
  400. mirascope/core/vertex/_utils/_message_param_converter.py +0 -133
  401. mirascope/core/vertex/_utils/_setup_call.py +0 -160
  402. mirascope/core/vertex/call_params.py +0 -24
  403. mirascope/core/vertex/call_response.py +0 -206
  404. mirascope/core/vertex/call_response_chunk.py +0 -99
  405. mirascope/core/vertex/dynamic_config.py +0 -28
  406. mirascope/core/vertex/stream.py +0 -119
  407. mirascope/core/vertex/tool.py +0 -101
  408. mirascope/core/xai/__init__.py +0 -28
  409. mirascope/core/xai/_call.py +0 -67
  410. mirascope/core/xai/_utils/__init__.py +0 -5
  411. mirascope/core/xai/_utils/_setup_call.py +0 -113
  412. mirascope/core/xai/call_params.py +0 -10
  413. mirascope/core/xai/call_response.py +0 -16
  414. mirascope/core/xai/call_response_chunk.py +0 -14
  415. mirascope/core/xai/dynamic_config.py +0 -8
  416. mirascope/core/xai/py.typed +0 -0
  417. mirascope/core/xai/stream.py +0 -57
  418. mirascope/core/xai/tool.py +0 -13
  419. mirascope/experimental/graphs/__init__.py +0 -5
  420. mirascope/integrations/__init__.py +0 -16
  421. mirascope/integrations/_middleware_factory.py +0 -403
  422. mirascope/integrations/langfuse/__init__.py +0 -3
  423. mirascope/integrations/langfuse/_utils.py +0 -114
  424. mirascope/integrations/langfuse/_with_langfuse.py +0 -70
  425. mirascope/integrations/logfire/__init__.py +0 -3
  426. mirascope/integrations/logfire/_utils.py +0 -225
  427. mirascope/integrations/logfire/_with_logfire.py +0 -63
  428. mirascope/integrations/otel/__init__.py +0 -10
  429. mirascope/integrations/otel/_utils.py +0 -270
  430. mirascope/integrations/otel/_with_hyperdx.py +0 -60
  431. mirascope/integrations/otel/_with_otel.py +0 -59
  432. mirascope/integrations/tenacity.py +0 -14
  433. mirascope/llm/_call.py +0 -401
  434. mirascope/llm/_context.py +0 -384
  435. mirascope/llm/_override.py +0 -3639
  436. mirascope/llm/_protocols.py +0 -500
  437. mirascope/llm/_response_metaclass.py +0 -31
  438. mirascope/llm/call_response.py +0 -158
  439. mirascope/llm/call_response_chunk.py +0 -66
  440. mirascope/llm/stream.py +0 -162
  441. mirascope/llm/tool.py +0 -64
  442. mirascope/mcp/__init__.py +0 -7
  443. mirascope/mcp/_utils.py +0 -288
  444. mirascope/mcp/client.py +0 -167
  445. mirascope/mcp/server.py +0 -356
  446. mirascope/mcp/tools.py +0 -110
  447. mirascope/py.typed +0 -0
  448. mirascope/retries/__init__.py +0 -11
  449. mirascope/retries/fallback.py +0 -131
  450. mirascope/retries/tenacity.py +0 -50
  451. mirascope/tools/__init__.py +0 -37
  452. mirascope/tools/base.py +0 -98
  453. mirascope/tools/system/__init__.py +0 -0
  454. mirascope/tools/system/_docker_operation.py +0 -166
  455. mirascope/tools/system/_file_system.py +0 -267
  456. mirascope/tools/web/__init__.py +0 -0
  457. mirascope/tools/web/_duckduckgo.py +0 -111
  458. mirascope/tools/web/_httpx.py +0 -125
  459. mirascope/tools/web/_parse_url_content.py +0 -94
  460. mirascope/tools/web/_requests.py +0 -54
  461. mirascope/v0/__init__.py +0 -43
  462. mirascope/v0/anthropic.py +0 -54
  463. mirascope/v0/base/__init__.py +0 -12
  464. mirascope/v0/base/calls.py +0 -118
  465. mirascope/v0/base/extractors.py +0 -122
  466. mirascope/v0/base/ops_utils.py +0 -207
  467. mirascope/v0/base/prompts.py +0 -48
  468. mirascope/v0/base/types.py +0 -14
  469. mirascope/v0/base/utils.py +0 -21
  470. mirascope/v0/openai.py +0 -54
  471. mirascope-1.25.7.dist-info/METADATA +0 -169
  472. mirascope-1.25.7.dist-info/RECORD +0 -378
  473. {mirascope-1.25.7.dist-info → mirascope-2.0.0a0.dist-info}/WHEEL +0 -0
  474. {mirascope-1.25.7.dist-info → mirascope-2.0.0a0.dist-info}/licenses/LICENSE +0 -0
@@ -1,3639 +0,0 @@
1
- """Overrides the provider-specific call with the specified provider."""
2
-
3
- from __future__ import annotations
4
-
5
- from collections.abc import AsyncIterable, Awaitable, Callable, Iterable
6
- from enum import Enum
7
- from functools import wraps
8
- from typing import TYPE_CHECKING, Any, Literal, ParamSpec, TypeVar, overload
9
-
10
- from pydantic import BaseModel
11
-
12
- from ..core.base import BaseTool, BaseType, CommonCallParams
13
- from ..core.base._utils import fn_is_async
14
- from ..core.base.stream_config import StreamConfig
15
- from ..core.base.types import LocalProvider, Provider
16
- from ._context import _context
17
- from .call_response import CallResponse
18
- from .stream import Stream
19
-
20
- if TYPE_CHECKING:
21
- from ..core.anthropic import AnthropicCallParams
22
- from ..core.azure import AzureCallParams
23
- from ..core.bedrock import BedrockCallParams
24
- from ..core.cohere import CohereCallParams
25
- from ..core.gemini import GeminiCallParams
26
- from ..core.google import GoogleCallParams
27
- from ..core.groq import GroqCallParams
28
- from ..core.litellm import LiteLLMCallParams
29
- from ..core.mistral import MistralCallParams
30
- from ..core.openai import OpenAICallParams
31
- from ..core.vertex import VertexCallParams
32
- from ..core.xai import XAICallParams
33
- else:
34
- AnthropicCallParams = AzureCallParams = BedrockCallParams = CohereCallParams = (
35
- GeminiCallParams
36
- ) = GoogleCallParams = GroqCallParams = LiteLLMCallParams = MistralCallParams = (
37
- OpenAICallParams
38
- ) = VertexCallParams = XAICallParams = None
39
-
40
-
41
- _P = ParamSpec("_P")
42
- _R = TypeVar("_R")
43
- _ResponseModelT = TypeVar("_ResponseModelT", bound=BaseModel | BaseType | Enum)
44
- _ParsedOutputT = TypeVar("_ParsedOutputT")
45
-
46
-
47
- ### PASSTHROUGH ###
48
- # Anthropic passthrough
49
- @overload
50
- def override(
51
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
52
- *,
53
- provider: Literal["anthropic"],
54
- model: str,
55
- stream: None = None,
56
- tools: None = None,
57
- response_model: None = None,
58
- output_parser: None = None,
59
- json_mode: bool | None = None,
60
- client: Any = None, # noqa: ANN401
61
- call_params: CommonCallParams | AnthropicCallParams | None = None,
62
- ) -> Callable[_P, Awaitable[_R]]: ...
63
-
64
-
65
- @overload
66
- def override(
67
- provider_agnostic_call: Callable[_P, _R],
68
- *,
69
- provider: Literal["anthropic"],
70
- model: str,
71
- stream: None = None,
72
- tools: None = None,
73
- response_model: None = None,
74
- output_parser: None = None,
75
- json_mode: bool | None = None,
76
- client: Any = None, # noqa: ANN401
77
- call_params: CommonCallParams | AnthropicCallParams | None = None,
78
- ) -> Callable[_P, _R]: ...
79
-
80
-
81
- # Azure passthrough
82
- @overload
83
- def override(
84
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
85
- *,
86
- provider: Literal["azure"],
87
- model: str,
88
- stream: None = None,
89
- tools: None = None,
90
- response_model: None = None,
91
- output_parser: None = None,
92
- json_mode: bool | None = None,
93
- client: Any = None, # noqa: ANN401
94
- call_params: CommonCallParams | AzureCallParams | None = None,
95
- ) -> Callable[_P, Awaitable[_R]]: ...
96
-
97
-
98
- @overload
99
- def override(
100
- provider_agnostic_call: Callable[_P, _R],
101
- *,
102
- provider: Literal["azure"],
103
- model: str,
104
- stream: None = None,
105
- tools: None = None,
106
- response_model: None = None,
107
- output_parser: None = None,
108
- json_mode: bool | None = None,
109
- client: Any = None, # noqa: ANN401
110
- call_params: CommonCallParams | AzureCallParams | None = None,
111
- ) -> Callable[_P, _R]: ...
112
-
113
-
114
- # Bedrock passthrough
115
- @overload
116
- def override(
117
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
118
- *,
119
- provider: Literal["bedrock"],
120
- model: str,
121
- stream: None = None,
122
- tools: None = None,
123
- response_model: None = None,
124
- output_parser: None = None,
125
- json_mode: bool | None = None,
126
- client: Any = None, # noqa: ANN401
127
- call_params: CommonCallParams | BedrockCallParams | None = None,
128
- ) -> Callable[_P, Awaitable[_R]]: ...
129
-
130
-
131
- @overload
132
- def override(
133
- provider_agnostic_call: Callable[_P, _R],
134
- *,
135
- provider: Literal["bedrock"],
136
- model: str,
137
- stream: None = None,
138
- tools: None = None,
139
- response_model: None = None,
140
- output_parser: None = None,
141
- json_mode: bool | None = None,
142
- client: Any = None, # noqa: ANN401
143
- call_params: CommonCallParams | BedrockCallParams | None = None,
144
- ) -> Callable[_P, _R]: ...
145
-
146
-
147
- # Cohere passthrough
148
- @overload
149
- def override(
150
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
151
- *,
152
- provider: Literal["cohere"],
153
- model: str,
154
- stream: None = None,
155
- tools: None = None,
156
- response_model: None = None,
157
- output_parser: None = None,
158
- json_mode: bool | None = None,
159
- client: Any = None, # noqa: ANN401
160
- call_params: CommonCallParams | CohereCallParams | None = None,
161
- ) -> Callable[_P, Awaitable[_R]]: ...
162
-
163
-
164
- @overload
165
- def override(
166
- provider_agnostic_call: Callable[_P, _R],
167
- *,
168
- provider: Literal["cohere"],
169
- model: str,
170
- stream: None = None,
171
- tools: None = None,
172
- response_model: None = None,
173
- output_parser: None = None,
174
- json_mode: bool | None = None,
175
- client: Any = None, # noqa: ANN401
176
- call_params: CommonCallParams | CohereCallParams | None = None,
177
- ) -> Callable[_P, _R]: ...
178
-
179
-
180
- # Gemini passthrough
181
- @overload
182
- def override(
183
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
184
- *,
185
- provider: Literal["gemini"],
186
- model: str,
187
- stream: None = None,
188
- tools: None = None,
189
- response_model: None = None,
190
- output_parser: None = None,
191
- json_mode: bool | None = None,
192
- client: Any = None, # noqa: ANN401
193
- call_params: CommonCallParams | GeminiCallParams | None = None,
194
- ) -> Callable[_P, Awaitable[_R]]: ...
195
-
196
-
197
- @overload
198
- def override(
199
- provider_agnostic_call: Callable[_P, _R],
200
- *,
201
- provider: Literal["gemini"],
202
- model: str,
203
- stream: None = None,
204
- tools: None = None,
205
- response_model: None = None,
206
- output_parser: None = None,
207
- json_mode: bool | None = None,
208
- client: Any = None, # noqa: ANN401
209
- call_params: CommonCallParams | GeminiCallParams | None = None,
210
- ) -> Callable[_P, _R]: ...
211
-
212
-
213
- # Google passthrough
214
- @overload
215
- def override(
216
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
217
- *,
218
- provider: Literal["google"],
219
- model: str,
220
- stream: None = None,
221
- tools: None = None,
222
- response_model: None = None,
223
- output_parser: None = None,
224
- json_mode: bool | None = None,
225
- client: Any = None, # noqa: ANN401
226
- call_params: CommonCallParams | GoogleCallParams | None = None,
227
- ) -> Callable[_P, Awaitable[_R]]: ...
228
-
229
-
230
- @overload
231
- def override(
232
- provider_agnostic_call: Callable[_P, _R],
233
- *,
234
- provider: Literal["google"],
235
- model: str,
236
- stream: None = None,
237
- tools: None = None,
238
- response_model: None = None,
239
- output_parser: None = None,
240
- json_mode: bool | None = None,
241
- client: Any = None, # noqa: ANN401
242
- call_params: CommonCallParams | GoogleCallParams | None = None,
243
- ) -> Callable[_P, _R]: ...
244
-
245
-
246
- # Groq passthrough
247
- @overload
248
- def override(
249
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
250
- *,
251
- provider: Literal["groq"],
252
- model: str,
253
- stream: None = None,
254
- tools: None = None,
255
- response_model: None = None,
256
- output_parser: None = None,
257
- json_mode: bool | None = None,
258
- client: Any = None, # noqa: ANN401
259
- call_params: CommonCallParams | GroqCallParams | None = None,
260
- ) -> Callable[_P, Awaitable[_R]]: ...
261
-
262
-
263
- @overload
264
- def override(
265
- provider_agnostic_call: Callable[_P, _R],
266
- *,
267
- provider: Literal["groq"],
268
- model: str,
269
- stream: None = None,
270
- tools: None = None,
271
- response_model: None = None,
272
- output_parser: None = None,
273
- json_mode: bool | None = None,
274
- client: Any = None, # noqa: ANN401
275
- call_params: CommonCallParams | GroqCallParams | None = None,
276
- ) -> Callable[_P, _R]: ...
277
-
278
-
279
- # LiteLLM passthrough
280
- @overload
281
- def override(
282
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
283
- *,
284
- provider: Literal["litellm"],
285
- model: str,
286
- stream: None = None,
287
- tools: None = None,
288
- response_model: None = None,
289
- output_parser: None = None,
290
- json_mode: bool | None = None,
291
- client: Any = None, # noqa: ANN401
292
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
293
- ) -> Callable[_P, Awaitable[_R]]: ...
294
-
295
-
296
- @overload
297
- def override(
298
- provider_agnostic_call: Callable[_P, _R],
299
- *,
300
- provider: Literal["litellm"],
301
- model: str,
302
- stream: None = None,
303
- tools: None = None,
304
- response_model: None = None,
305
- output_parser: None = None,
306
- json_mode: bool | None = None,
307
- client: Any = None, # noqa: ANN401
308
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
309
- ) -> Callable[_P, _R]: ...
310
-
311
-
312
- # Mistral passthrough
313
- @overload
314
- def override(
315
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
316
- *,
317
- provider: Literal["mistral"],
318
- model: str,
319
- stream: None = None,
320
- tools: None = None,
321
- response_model: None = None,
322
- output_parser: None = None,
323
- json_mode: bool | None = None,
324
- client: Any = None, # noqa: ANN401
325
- call_params: CommonCallParams | MistralCallParams | None = None,
326
- ) -> Callable[_P, Awaitable[_R]]: ...
327
-
328
-
329
- @overload
330
- def override(
331
- provider_agnostic_call: Callable[_P, _R],
332
- *,
333
- provider: Literal["mistral"],
334
- model: str,
335
- stream: None = None,
336
- tools: None = None,
337
- response_model: None = None,
338
- output_parser: None = None,
339
- json_mode: bool | None = None,
340
- client: Any = None, # noqa: ANN401
341
- call_params: CommonCallParams | MistralCallParams | None = None,
342
- ) -> Callable[_P, _R]: ...
343
-
344
-
345
- # OpenAI passthrough
346
- @overload
347
- def override(
348
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
349
- *,
350
- provider: Literal["openai"] | LocalProvider,
351
- model: str,
352
- stream: None = None,
353
- tools: None = None,
354
- response_model: None = None,
355
- output_parser: None = None,
356
- json_mode: bool | None = None,
357
- client: Any = None, # noqa: ANN401
358
- call_params: CommonCallParams | OpenAICallParams | None = None,
359
- ) -> Callable[_P, Awaitable[_R]]: ...
360
-
361
-
362
- @overload
363
- def override(
364
- provider_agnostic_call: Callable[_P, _R],
365
- *,
366
- provider: Literal["openai"] | LocalProvider,
367
- model: str,
368
- stream: None = None,
369
- tools: None = None,
370
- response_model: None = None,
371
- output_parser: None = None,
372
- json_mode: bool | None = None,
373
- client: Any = None, # noqa: ANN401
374
- call_params: CommonCallParams | OpenAICallParams | None = None,
375
- ) -> Callable[_P, _R]: ...
376
-
377
-
378
- # Vertex passthrough
379
- @overload
380
- def override(
381
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
382
- *,
383
- provider: Literal["vertex"],
384
- model: str,
385
- stream: None = None,
386
- tools: None = None,
387
- response_model: None = None,
388
- output_parser: None = None,
389
- json_mode: bool | None = None,
390
- client: Any = None, # noqa: ANN401
391
- call_params: CommonCallParams | VertexCallParams | None = None,
392
- ) -> Callable[_P, Awaitable[_R]]: ...
393
-
394
-
395
- @overload
396
- def override(
397
- provider_agnostic_call: Callable[_P, _R],
398
- *,
399
- provider: Literal["vertex"],
400
- model: str,
401
- stream: None = None,
402
- tools: None = None,
403
- response_model: None = None,
404
- output_parser: None = None,
405
- json_mode: bool | None = None,
406
- client: Any = None, # noqa: ANN401
407
- call_params: CommonCallParams | VertexCallParams | None = None,
408
- ) -> Callable[_P, _R]: ...
409
-
410
-
411
- # xAI passthrough
412
- @overload
413
- def override(
414
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
415
- *,
416
- provider: Literal["xai"],
417
- model: str,
418
- stream: None = None,
419
- tools: None = None,
420
- response_model: None = None,
421
- output_parser: None = None,
422
- json_mode: bool | None = None,
423
- client: Any = None, # noqa: ANN401
424
- call_params: CommonCallParams | XAICallParams | None = None,
425
- ) -> Callable[_P, Awaitable[_R]]: ...
426
-
427
-
428
- @overload
429
- def override(
430
- provider_agnostic_call: Callable[_P, _R],
431
- *,
432
- provider: Literal["xai"],
433
- model: str,
434
- stream: None = None,
435
- tools: None = None,
436
- response_model: None = None,
437
- output_parser: None = None,
438
- json_mode: bool | None = None,
439
- client: Any = None, # noqa: ANN401
440
- call_params: CommonCallParams | XAICallParams | None = None,
441
- ) -> Callable[_P, _R]: ...
442
-
443
-
444
- # Generic passthrough
445
- @overload
446
- def override(
447
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
448
- *,
449
- provider: None = None,
450
- model: None = None,
451
- stream: None = None,
452
- tools: None = None,
453
- response_model: None = None,
454
- output_parser: None = None,
455
- json_mode: bool | None = None,
456
- client: Any = None, # noqa: ANN401
457
- call_params: CommonCallParams | None = None,
458
- ) -> Callable[_P, Awaitable[_R]]: ...
459
-
460
-
461
- @overload
462
- def override(
463
- provider_agnostic_call: Callable[_P, _R],
464
- *,
465
- provider: None = None,
466
- model: None = None,
467
- stream: None = None,
468
- tools: None = None,
469
- response_model: None = None,
470
- output_parser: None = None,
471
- json_mode: bool | None = None,
472
- client: Any = None, # noqa: ANN401
473
- call_params: CommonCallParams | None = None,
474
- ) -> Callable[_P, _R]: ...
475
-
476
-
477
- ### CallResponse ###
478
- # Anthropic CallResponse
479
- @overload
480
- def override( # pyright: ignore [reportOverlappingOverload]
481
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
482
- *,
483
- provider: Literal["anthropic"],
484
- model: str,
485
- stream: Literal[False],
486
- tools: list[type[BaseTool] | Callable] | None = None,
487
- response_model: None = None,
488
- output_parser: None = None,
489
- json_mode: bool | None = None,
490
- client: Any = None, # noqa: ANN401
491
- call_params: CommonCallParams | AnthropicCallParams | None = None,
492
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
493
-
494
-
495
- @overload
496
- def override(
497
- provider_agnostic_call: Callable[_P, _R],
498
- *,
499
- provider: Literal["anthropic"],
500
- model: str,
501
- stream: Literal[False],
502
- tools: list[type[BaseTool] | Callable] | None = None,
503
- response_model: None = None,
504
- output_parser: None = None,
505
- json_mode: bool | None = None,
506
- client: Any = None, # noqa: ANN401
507
- call_params: CommonCallParams | AnthropicCallParams | None = None,
508
- ) -> Callable[_P, CallResponse]: ...
509
-
510
-
511
- # Azure CallResponse
512
- @overload
513
- def override( # pyright: ignore [reportOverlappingOverload]
514
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
515
- *,
516
- provider: Literal["azure"],
517
- model: str,
518
- stream: Literal[False],
519
- tools: list[type[BaseTool] | Callable] | None = None,
520
- response_model: None = None,
521
- output_parser: None = None,
522
- json_mode: bool | None = None,
523
- client: Any = None, # noqa: ANN401
524
- call_params: CommonCallParams | AzureCallParams | None = None,
525
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
526
-
527
-
528
- @overload
529
- def override(
530
- provider_agnostic_call: Callable[_P, _R],
531
- *,
532
- provider: Literal["azure"],
533
- model: str,
534
- stream: Literal[False],
535
- tools: list[type[BaseTool] | Callable] | None = None,
536
- response_model: None = None,
537
- output_parser: None = None,
538
- json_mode: bool | None = None,
539
- client: Any = None, # noqa: ANN401
540
- call_params: CommonCallParams | AzureCallParams | None = None,
541
- ) -> Callable[_P, CallResponse]: ...
542
-
543
-
544
- # Bedrock CallResponse
545
- @overload
546
- def override( # pyright: ignore [reportOverlappingOverload]
547
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
548
- *,
549
- provider: Literal["bedrock"],
550
- model: str,
551
- stream: Literal[False],
552
- tools: list[type[BaseTool] | Callable] | None = None,
553
- response_model: None = None,
554
- output_parser: None = None,
555
- json_mode: bool | None = None,
556
- client: Any = None, # noqa: ANN401
557
- call_params: CommonCallParams | BedrockCallParams | None = None,
558
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
559
-
560
-
561
- @overload
562
- def override(
563
- provider_agnostic_call: Callable[_P, _R],
564
- *,
565
- provider: Literal["bedrock"],
566
- model: str,
567
- stream: Literal[False],
568
- tools: list[type[BaseTool] | Callable] | None = None,
569
- response_model: None = None,
570
- output_parser: None = None,
571
- json_mode: bool | None = None,
572
- client: Any = None, # noqa: ANN401
573
- call_params: CommonCallParams | BedrockCallParams | None = None,
574
- ) -> Callable[_P, CallResponse]: ...
575
-
576
-
577
- # Cohere CallResponse
578
- @overload
579
- def override( # pyright: ignore [reportOverlappingOverload]
580
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
581
- *,
582
- provider: Literal["cohere"],
583
- model: str,
584
- stream: Literal[False],
585
- tools: list[type[BaseTool] | Callable] | None = None,
586
- response_model: None = None,
587
- output_parser: None = None,
588
- json_mode: bool | None = None,
589
- client: Any = None, # noqa: ANN401
590
- call_params: CommonCallParams | CohereCallParams | None = None,
591
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
592
-
593
-
594
- @overload
595
- def override(
596
- provider_agnostic_call: Callable[_P, _R],
597
- *,
598
- provider: Literal["cohere"],
599
- model: str,
600
- stream: Literal[False],
601
- tools: list[type[BaseTool] | Callable] | None = None,
602
- response_model: None = None,
603
- output_parser: None = None,
604
- json_mode: bool | None = None,
605
- client: Any = None, # noqa: ANN401
606
- call_params: CommonCallParams | CohereCallParams | None = None,
607
- ) -> Callable[_P, CallResponse]: ...
608
-
609
-
610
- # Gemini CallResponse
611
- @overload
612
- def override( # pyright: ignore [reportOverlappingOverload]
613
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
614
- *,
615
- provider: Literal["gemini"],
616
- model: str,
617
- stream: Literal[False],
618
- tools: list[type[BaseTool] | Callable] | None = None,
619
- response_model: None = None,
620
- output_parser: None = None,
621
- json_mode: bool | None = None,
622
- client: Any = None, # noqa: ANN401
623
- call_params: CommonCallParams | GeminiCallParams | None = None,
624
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
625
-
626
-
627
- @overload
628
- def override(
629
- provider_agnostic_call: Callable[_P, _R],
630
- *,
631
- provider: Literal["gemini"],
632
- model: str,
633
- stream: Literal[False],
634
- tools: list[type[BaseTool] | Callable] | None = None,
635
- response_model: None = None,
636
- output_parser: None = None,
637
- json_mode: bool | None = None,
638
- client: Any = None, # noqa: ANN401
639
- call_params: CommonCallParams | GeminiCallParams | None = None,
640
- ) -> Callable[_P, CallResponse]: ...
641
-
642
-
643
- # Google CallResponse
644
- @overload
645
- def override( # pyright: ignore [reportOverlappingOverload]
646
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
647
- *,
648
- provider: Literal["google"],
649
- model: str,
650
- stream: Literal[False],
651
- tools: list[type[BaseTool] | Callable] | None = None,
652
- response_model: None = None,
653
- output_parser: None = None,
654
- json_mode: bool | None = None,
655
- client: Any = None, # noqa: ANN401
656
- call_params: CommonCallParams | GoogleCallParams | None = None,
657
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
658
-
659
-
660
- @overload
661
- def override(
662
- provider_agnostic_call: Callable[_P, _R],
663
- *,
664
- provider: Literal["google"],
665
- model: str,
666
- stream: Literal[False],
667
- tools: list[type[BaseTool] | Callable] | None = None,
668
- response_model: None = None,
669
- output_parser: None = None,
670
- json_mode: bool | None = None,
671
- client: Any = None, # noqa: ANN401
672
- call_params: CommonCallParams | GoogleCallParams | None = None,
673
- ) -> Callable[_P, CallResponse]: ...
674
-
675
-
676
- # Groq CallResponse
677
- @overload
678
- def override( # pyright: ignore [reportOverlappingOverload]
679
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
680
- *,
681
- provider: Literal["groq"],
682
- model: str,
683
- stream: Literal[False],
684
- tools: list[type[BaseTool] | Callable] | None = None,
685
- response_model: None = None,
686
- output_parser: None = None,
687
- json_mode: bool | None = None,
688
- client: Any = None, # noqa: ANN401
689
- call_params: CommonCallParams | GroqCallParams | None = None,
690
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
691
-
692
-
693
- @overload
694
- def override(
695
- provider_agnostic_call: Callable[_P, _R],
696
- *,
697
- provider: Literal["groq"],
698
- model: str,
699
- stream: Literal[False],
700
- tools: list[type[BaseTool] | Callable] | None = None,
701
- response_model: None = None,
702
- output_parser: None = None,
703
- json_mode: bool | None = None,
704
- client: Any = None, # noqa: ANN401
705
- call_params: CommonCallParams | GroqCallParams | None = None,
706
- ) -> Callable[_P, CallResponse]: ...
707
-
708
-
709
- # LiteLLM CallResponse
710
- @overload
711
- def override( # pyright: ignore [reportOverlappingOverload]
712
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
713
- *,
714
- provider: Literal["litellm"],
715
- model: str,
716
- stream: Literal[False],
717
- tools: list[type[BaseTool] | Callable] | None = None,
718
- response_model: None = None,
719
- output_parser: None = None,
720
- json_mode: bool | None = None,
721
- client: Any = None, # noqa: ANN401
722
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
723
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
724
-
725
-
726
- @overload
727
- def override(
728
- provider_agnostic_call: Callable[_P, _R],
729
- *,
730
- provider: Literal["litellm"],
731
- model: str,
732
- stream: Literal[False],
733
- tools: list[type[BaseTool] | Callable] | None = None,
734
- response_model: None = None,
735
- output_parser: None = None,
736
- json_mode: bool | None = None,
737
- client: Any = None, # noqa: ANN401
738
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
739
- ) -> Callable[_P, CallResponse]: ...
740
-
741
-
742
- # Mistral CallResponse
743
- @overload
744
- def override( # pyright: ignore [reportOverlappingOverload]
745
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
746
- *,
747
- provider: Literal["mistral"],
748
- model: str,
749
- stream: Literal[False],
750
- tools: list[type[BaseTool] | Callable] | None = None,
751
- response_model: None = None,
752
- output_parser: None = None,
753
- json_mode: bool | None = None,
754
- client: Any = None, # noqa: ANN401
755
- call_params: CommonCallParams | MistralCallParams | None = None,
756
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
757
-
758
-
759
- @overload
760
- def override(
761
- provider_agnostic_call: Callable[_P, _R],
762
- *,
763
- provider: Literal["mistral"],
764
- model: str,
765
- stream: Literal[False],
766
- tools: list[type[BaseTool] | Callable] | None = None,
767
- response_model: None = None,
768
- output_parser: None = None,
769
- json_mode: bool | None = None,
770
- client: Any = None, # noqa: ANN401
771
- call_params: CommonCallParams | MistralCallParams | None = None,
772
- ) -> Callable[_P, CallResponse]: ...
773
-
774
-
775
- # OpenAI CallResponse
776
- @overload
777
- def override( # pyright: ignore [reportOverlappingOverload]
778
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
779
- *,
780
- provider: Literal["openai"] | LocalProvider,
781
- model: str,
782
- stream: Literal[False],
783
- tools: list[type[BaseTool] | Callable] | None = None,
784
- response_model: None = None,
785
- output_parser: None = None,
786
- json_mode: bool | None = None,
787
- client: Any = None, # noqa: ANN401
788
- call_params: CommonCallParams | OpenAICallParams | None = None,
789
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
790
-
791
-
792
- @overload
793
- def override(
794
- provider_agnostic_call: Callable[_P, _R],
795
- *,
796
- provider: Literal["openai"] | LocalProvider,
797
- model: str,
798
- stream: Literal[False],
799
- tools: list[type[BaseTool] | Callable] | None = None,
800
- response_model: None = None,
801
- output_parser: None = None,
802
- json_mode: bool | None = None,
803
- client: Any = None, # noqa: ANN401
804
- call_params: CommonCallParams | OpenAICallParams | None = None,
805
- ) -> Callable[_P, CallResponse]: ...
806
-
807
-
808
- # Vertex CallResponse
809
- @overload
810
- def override( # pyright: ignore [reportOverlappingOverload]
811
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
812
- *,
813
- provider: Literal["vertex"],
814
- model: str,
815
- stream: Literal[False],
816
- tools: list[type[BaseTool] | Callable] | None = None,
817
- response_model: None = None,
818
- output_parser: None = None,
819
- json_mode: bool | None = None,
820
- client: Any = None, # noqa: ANN401
821
- call_params: CommonCallParams | VertexCallParams | None = None,
822
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
823
-
824
-
825
- @overload
826
- def override(
827
- provider_agnostic_call: Callable[_P, _R],
828
- *,
829
- provider: Literal["vertex"],
830
- model: str,
831
- stream: Literal[False],
832
- tools: list[type[BaseTool] | Callable] | None = None,
833
- response_model: None = None,
834
- output_parser: None = None,
835
- json_mode: bool | None = None,
836
- client: Any = None, # noqa: ANN401
837
- call_params: CommonCallParams | VertexCallParams | None = None,
838
- ) -> Callable[_P, CallResponse]: ...
839
-
840
-
841
- # XAI CallResponse
842
- @overload
843
- def override( # pyright: ignore [reportOverlappingOverload]
844
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
845
- *,
846
- provider: Literal["xai"],
847
- model: str,
848
- stream: Literal[False],
849
- tools: list[type[BaseTool] | Callable] | None = None,
850
- response_model: None = None,
851
- output_parser: None = None,
852
- json_mode: bool | None = None,
853
- client: Any = None, # noqa: ANN401
854
- call_params: CommonCallParams | XAICallParams | None = None,
855
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
856
-
857
-
858
- @overload
859
- def override(
860
- provider_agnostic_call: Callable[_P, _R],
861
- *,
862
- provider: Literal["xai"],
863
- model: str,
864
- stream: Literal[False],
865
- tools: list[type[BaseTool] | Callable] | None = None,
866
- response_model: None = None,
867
- output_parser: None = None,
868
- json_mode: bool | None = None,
869
- client: Any = None, # noqa: ANN401
870
- call_params: CommonCallParams | XAICallParams | None = None,
871
- ) -> Callable[_P, CallResponse]: ...
872
-
873
-
874
- # Generic CallResponse
875
- @overload
876
- def override( # pyright: ignore [reportOverlappingOverload]
877
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
878
- *,
879
- provider: None = None,
880
- model: str | None = None,
881
- stream: Literal[False],
882
- tools: list[type[BaseTool] | Callable] | None = None,
883
- response_model: None = None,
884
- output_parser: None = None,
885
- json_mode: bool | None = None,
886
- client: Any = None, # noqa: ANN401
887
- call_params: CommonCallParams | None = None,
888
- ) -> Callable[_P, Awaitable[CallResponse]]: ...
889
-
890
-
891
- @overload
892
- def override(
893
- provider_agnostic_call: Callable[_P, _R],
894
- *,
895
- provider: None = None,
896
- model: str | None = None,
897
- stream: Literal[False],
898
- tools: list[type[BaseTool] | Callable] | None = None,
899
- response_model: None = None,
900
- output_parser: None = None,
901
- json_mode: bool | None = None,
902
- client: Any = None, # noqa: ANN401
903
- call_params: CommonCallParams | None = None,
904
- ) -> Callable[_P, CallResponse]: ...
905
-
906
-
907
- ### Stream ###
908
- # Anthropic Stream
909
- @overload
910
- def override( # pyright: ignore [reportOverlappingOverload]
911
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
912
- *,
913
- provider: Literal["anthropic"],
914
- model: str,
915
- stream: Literal[True],
916
- tools: list[type[BaseTool] | Callable] | None = None,
917
- response_model: None = None,
918
- output_parser: None = None,
919
- json_mode: bool | None = None,
920
- client: Any = None, # noqa: ANN401
921
- call_params: CommonCallParams | AnthropicCallParams | None = None,
922
- ) -> Callable[_P, Awaitable[Stream]]: ...
923
-
924
-
925
- @overload
926
- def override(
927
- provider_agnostic_call: Callable[_P, _R],
928
- *,
929
- provider: Literal["anthropic"],
930
- model: str,
931
- stream: Literal[True],
932
- tools: list[type[BaseTool] | Callable] | None = None,
933
- response_model: None = None,
934
- output_parser: None = None,
935
- json_mode: bool | None = None,
936
- client: Any = None, # noqa: ANN401
937
- call_params: CommonCallParams | AnthropicCallParams | None = None,
938
- ) -> Callable[_P, Stream]: ...
939
-
940
-
941
- # Azure Stream
942
- @overload
943
- def override( # pyright: ignore [reportOverlappingOverload]
944
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
945
- *,
946
- provider: Literal["azure"],
947
- model: str,
948
- stream: Literal[True],
949
- tools: list[type[BaseTool] | Callable] | None = None,
950
- response_model: None = None,
951
- output_parser: None = None,
952
- json_mode: bool | None = None,
953
- client: Any = None, # noqa: ANN401
954
- call_params: CommonCallParams | AzureCallParams | None = None,
955
- ) -> Callable[_P, Awaitable[Stream]]: ...
956
-
957
-
958
- @overload
959
- def override(
960
- provider_agnostic_call: Callable[_P, _R],
961
- *,
962
- provider: Literal["azure"],
963
- model: str,
964
- stream: Literal[True],
965
- tools: list[type[BaseTool] | Callable] | None = None,
966
- response_model: None = None,
967
- output_parser: None = None,
968
- json_mode: bool | None = None,
969
- client: Any = None, # noqa: ANN401
970
- call_params: CommonCallParams | AzureCallParams | None = None,
971
- ) -> Callable[_P, Stream]: ...
972
-
973
-
974
- # Bedrock Stream
975
- @overload
976
- def override( # pyright: ignore [reportOverlappingOverload]
977
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
978
- *,
979
- provider: Literal["bedrock"],
980
- model: str,
981
- stream: Literal[True],
982
- tools: list[type[BaseTool] | Callable] | None = None,
983
- response_model: None = None,
984
- output_parser: None = None,
985
- json_mode: bool | None = None,
986
- client: Any = None, # noqa: ANN401
987
- call_params: CommonCallParams | BedrockCallParams | None = None,
988
- ) -> Callable[_P, Awaitable[Stream]]: ...
989
-
990
-
991
- @overload
992
- def override(
993
- provider_agnostic_call: Callable[_P, _R],
994
- *,
995
- provider: Literal["bedrock"],
996
- model: str,
997
- stream: Literal[True],
998
- tools: list[type[BaseTool] | Callable] | None = None,
999
- response_model: None = None,
1000
- output_parser: None = None,
1001
- json_mode: bool | None = None,
1002
- client: Any = None, # noqa: ANN401
1003
- call_params: CommonCallParams | BedrockCallParams | None = None,
1004
- ) -> Callable[_P, Stream]: ...
1005
-
1006
-
1007
- # Cohere Stream
1008
- @overload
1009
- def override( # pyright: ignore [reportOverlappingOverload]
1010
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1011
- *,
1012
- provider: Literal["cohere"],
1013
- model: str,
1014
- stream: Literal[True],
1015
- tools: list[type[BaseTool] | Callable] | None = None,
1016
- response_model: None = None,
1017
- output_parser: None = None,
1018
- json_mode: bool | None = None,
1019
- client: Any = None, # noqa: ANN401
1020
- call_params: CommonCallParams | CohereCallParams | None = None,
1021
- ) -> Callable[_P, Awaitable[Stream]]: ...
1022
-
1023
-
1024
- @overload
1025
- def override(
1026
- provider_agnostic_call: Callable[_P, _R],
1027
- *,
1028
- provider: Literal["cohere"],
1029
- model: str,
1030
- stream: Literal[True],
1031
- tools: list[type[BaseTool] | Callable] | None = None,
1032
- response_model: None = None,
1033
- output_parser: None = None,
1034
- json_mode: bool | None = None,
1035
- client: Any = None, # noqa: ANN401
1036
- call_params: CommonCallParams | CohereCallParams | None = None,
1037
- ) -> Callable[_P, Stream]: ...
1038
-
1039
-
1040
- # Gemini Stream
1041
- @overload
1042
- def override( # pyright: ignore [reportOverlappingOverload]
1043
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1044
- *,
1045
- provider: Literal["gemini"],
1046
- model: str,
1047
- stream: Literal[True],
1048
- tools: list[type[BaseTool] | Callable] | None = None,
1049
- response_model: None = None,
1050
- output_parser: None = None,
1051
- json_mode: bool | None = None,
1052
- client: Any = None, # noqa: ANN401
1053
- call_params: CommonCallParams | GeminiCallParams | None = None,
1054
- ) -> Callable[_P, Awaitable[Stream]]: ...
1055
-
1056
-
1057
- @overload
1058
- def override(
1059
- provider_agnostic_call: Callable[_P, _R],
1060
- *,
1061
- provider: Literal["gemini"],
1062
- model: str,
1063
- stream: Literal[True],
1064
- tools: list[type[BaseTool] | Callable] | None = None,
1065
- response_model: None = None,
1066
- output_parser: None = None,
1067
- json_mode: bool | None = None,
1068
- client: Any = None, # noqa: ANN401
1069
- call_params: CommonCallParams | GeminiCallParams | None = None,
1070
- ) -> Callable[_P, Stream]: ...
1071
-
1072
-
1073
- # Google Stream
1074
- @overload
1075
- def override( # pyright: ignore [reportOverlappingOverload]
1076
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1077
- *,
1078
- provider: Literal["google"],
1079
- model: str,
1080
- stream: Literal[True],
1081
- tools: list[type[BaseTool] | Callable] | None = None,
1082
- response_model: None = None,
1083
- output_parser: None = None,
1084
- json_mode: bool | None = None,
1085
- client: Any = None, # noqa: ANN401
1086
- call_params: CommonCallParams | GoogleCallParams | None = None,
1087
- ) -> Callable[_P, Awaitable[Stream]]: ...
1088
-
1089
-
1090
- @overload
1091
- def override(
1092
- provider_agnostic_call: Callable[_P, _R],
1093
- *,
1094
- provider: Literal["google"],
1095
- model: str,
1096
- stream: Literal[True],
1097
- tools: list[type[BaseTool] | Callable] | None = None,
1098
- response_model: None = None,
1099
- output_parser: None = None,
1100
- json_mode: bool | None = None,
1101
- client: Any = None, # noqa: ANN401
1102
- call_params: CommonCallParams | GoogleCallParams | None = None,
1103
- ) -> Callable[_P, Stream]: ...
1104
-
1105
-
1106
- # Groq Stream
1107
- @overload
1108
- def override( # pyright: ignore [reportOverlappingOverload]
1109
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1110
- *,
1111
- provider: Literal["groq"],
1112
- model: str,
1113
- stream: Literal[True],
1114
- tools: list[type[BaseTool] | Callable] | None = None,
1115
- response_model: None = None,
1116
- output_parser: None = None,
1117
- json_mode: bool | None = None,
1118
- client: Any = None, # noqa: ANN401
1119
- call_params: CommonCallParams | GroqCallParams | None = None,
1120
- ) -> Callable[_P, Awaitable[Stream]]: ...
1121
-
1122
-
1123
- @overload
1124
- def override(
1125
- provider_agnostic_call: Callable[_P, _R],
1126
- *,
1127
- provider: Literal["groq"],
1128
- model: str,
1129
- stream: Literal[True],
1130
- tools: list[type[BaseTool] | Callable] | None = None,
1131
- response_model: None = None,
1132
- output_parser: None = None,
1133
- json_mode: bool | None = None,
1134
- client: Any = None, # noqa: ANN401
1135
- call_params: CommonCallParams | GroqCallParams | None = None,
1136
- ) -> Callable[_P, Stream]: ...
1137
-
1138
-
1139
- # LiteLLM Stream
1140
- @overload
1141
- def override( # pyright: ignore [reportOverlappingOverload]
1142
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1143
- *,
1144
- provider: Literal["litellm"],
1145
- model: str,
1146
- stream: Literal[True],
1147
- tools: list[type[BaseTool] | Callable] | None = None,
1148
- response_model: None = None,
1149
- output_parser: None = None,
1150
- json_mode: bool | None = None,
1151
- client: Any = None, # noqa: ANN401
1152
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
1153
- ) -> Callable[_P, Awaitable[Stream]]: ...
1154
-
1155
-
1156
- @overload
1157
- def override(
1158
- provider_agnostic_call: Callable[_P, _R],
1159
- *,
1160
- provider: Literal["litellm"],
1161
- model: str,
1162
- stream: Literal[True],
1163
- tools: list[type[BaseTool] | Callable] | None = None,
1164
- response_model: None = None,
1165
- output_parser: None = None,
1166
- json_mode: bool | None = None,
1167
- client: Any = None, # noqa: ANN401
1168
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
1169
- ) -> Callable[_P, Stream]: ...
1170
-
1171
-
1172
- # Mistral Stream
1173
- @overload
1174
- def override( # pyright: ignore [reportOverlappingOverload]
1175
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1176
- *,
1177
- provider: Literal["mistral"],
1178
- model: str,
1179
- stream: Literal[True],
1180
- tools: list[type[BaseTool] | Callable] | None = None,
1181
- response_model: None = None,
1182
- output_parser: None = None,
1183
- json_mode: bool | None = None,
1184
- client: Any = None, # noqa: ANN401
1185
- call_params: CommonCallParams | MistralCallParams | None = None,
1186
- ) -> Callable[_P, Awaitable[Stream]]: ...
1187
-
1188
-
1189
- @overload
1190
- def override(
1191
- provider_agnostic_call: Callable[_P, _R],
1192
- *,
1193
- provider: Literal["mistral"],
1194
- model: str,
1195
- stream: Literal[True],
1196
- tools: list[type[BaseTool] | Callable] | None = None,
1197
- response_model: None = None,
1198
- output_parser: None = None,
1199
- json_mode: bool | None = None,
1200
- client: Any = None, # noqa: ANN401
1201
- call_params: CommonCallParams | MistralCallParams | None = None,
1202
- ) -> Callable[_P, Stream]: ...
1203
-
1204
-
1205
- # OpenAI Stream
1206
- @overload
1207
- def override( # pyright: ignore [reportOverlappingOverload]
1208
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1209
- *,
1210
- provider: Literal["openai"],
1211
- model: str,
1212
- stream: Literal[True],
1213
- tools: list[type[BaseTool] | Callable] | None = None,
1214
- response_model: None = None,
1215
- output_parser: None = None,
1216
- json_mode: bool | None = None,
1217
- client: Any = None, # noqa: ANN401
1218
- call_params: CommonCallParams | OpenAICallParams | None = None,
1219
- ) -> Callable[_P, Awaitable[Stream]]: ...
1220
-
1221
-
1222
- @overload
1223
- def override(
1224
- provider_agnostic_call: Callable[_P, _R],
1225
- *,
1226
- provider: Literal["openai"],
1227
- model: str,
1228
- stream: Literal[True],
1229
- tools: list[type[BaseTool] | Callable] | None = None,
1230
- response_model: None = None,
1231
- output_parser: None = None,
1232
- json_mode: bool | None = None,
1233
- client: Any = None, # noqa: ANN401
1234
- call_params: CommonCallParams | OpenAICallParams | None = None,
1235
- ) -> Callable[_P, Stream]: ...
1236
-
1237
-
1238
- # Vertex Stream
1239
- @overload
1240
- def override( # pyright: ignore [reportOverlappingOverload]
1241
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1242
- *,
1243
- provider: Literal["vertex"],
1244
- model: str,
1245
- stream: Literal[True],
1246
- tools: list[type[BaseTool] | Callable] | None = None,
1247
- response_model: None = None,
1248
- output_parser: None = None,
1249
- json_mode: bool | None = None,
1250
- client: Any = None, # noqa: ANN401
1251
- call_params: CommonCallParams | VertexCallParams | None = None,
1252
- ) -> Callable[_P, Awaitable[Stream]]: ...
1253
-
1254
-
1255
- @overload
1256
- def override(
1257
- provider_agnostic_call: Callable[_P, _R],
1258
- *,
1259
- provider: Literal["vertex"],
1260
- model: str,
1261
- stream: Literal[True],
1262
- tools: list[type[BaseTool] | Callable] | None = None,
1263
- response_model: None = None,
1264
- output_parser: None = None,
1265
- json_mode: bool | None = None,
1266
- client: Any = None, # noqa: ANN401
1267
- call_params: CommonCallParams | VertexCallParams | None = None,
1268
- ) -> Callable[_P, Stream]: ...
1269
-
1270
-
1271
- # XAI Stream
1272
- @overload
1273
- def override( # pyright: ignore [reportOverlappingOverload]
1274
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1275
- *,
1276
- provider: Literal["xai"],
1277
- model: str,
1278
- stream: Literal[True],
1279
- tools: list[type[BaseTool] | Callable] | None = None,
1280
- response_model: None = None,
1281
- output_parser: None = None,
1282
- json_mode: bool | None = None,
1283
- client: Any = None, # noqa: ANN401
1284
- call_params: CommonCallParams | XAICallParams | None = None,
1285
- ) -> Callable[_P, Awaitable[Stream]]: ...
1286
-
1287
-
1288
- @overload
1289
- def override(
1290
- provider_agnostic_call: Callable[_P, _R],
1291
- *,
1292
- provider: Literal["xai"],
1293
- model: str,
1294
- stream: Literal[True],
1295
- tools: list[type[BaseTool] | Callable] | None = None,
1296
- response_model: None = None,
1297
- output_parser: None = None,
1298
- json_mode: bool | None = None,
1299
- client: Any = None, # noqa: ANN401
1300
- call_params: CommonCallParams | XAICallParams | None = None,
1301
- ) -> Callable[_P, Stream]: ...
1302
-
1303
-
1304
- # Generic Stream (for when provider is None or a LocalProvider)
1305
- @overload
1306
- def override( # pyright: ignore [reportOverlappingOverload]
1307
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1308
- *,
1309
- provider: LocalProvider | None = None,
1310
- model: str | None = None,
1311
- stream: Literal[True],
1312
- tools: list[type[BaseTool] | Callable] | None = None,
1313
- response_model: None = None,
1314
- output_parser: None = None,
1315
- json_mode: bool | None = None,
1316
- client: Any = None, # noqa: ANN401
1317
- call_params: CommonCallParams | None = None,
1318
- ) -> Callable[_P, Awaitable[Stream]]: ...
1319
-
1320
-
1321
- @overload
1322
- def override(
1323
- provider_agnostic_call: Callable[_P, _R],
1324
- *,
1325
- provider: LocalProvider | None = None,
1326
- model: str | None = None,
1327
- stream: Literal[True],
1328
- tools: list[type[BaseTool] | Callable] | None = None,
1329
- response_model: None = None,
1330
- output_parser: None = None,
1331
- json_mode: bool | None = None,
1332
- client: Any = None, # noqa: ANN401
1333
- call_params: CommonCallParams | None = None,
1334
- ) -> Callable[_P, Stream]: ...
1335
-
1336
-
1337
- ### _ResponseModelT ###
1338
- # Anthropic _ResponseModelT
1339
- @overload
1340
- def override( # pyright: ignore [reportOverlappingOverload]
1341
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1342
- *,
1343
- provider: Literal["anthropic"],
1344
- model: str,
1345
- stream: Literal[None, False] = None,
1346
- tools: Literal[None] = None,
1347
- response_model: type[_ResponseModelT],
1348
- output_parser: Literal[None] = None,
1349
- json_mode: bool | None = None,
1350
- client: Any = None, # noqa: ANN401
1351
- call_params: CommonCallParams | AnthropicCallParams | None = None,
1352
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1353
-
1354
-
1355
- @overload
1356
- def override(
1357
- provider_agnostic_call: Callable[_P, _R],
1358
- *,
1359
- provider: Literal["anthropic"],
1360
- model: str,
1361
- stream: Literal[None, False] = None,
1362
- tools: Literal[None] = None,
1363
- response_model: type[_ResponseModelT],
1364
- output_parser: Literal[None] = None,
1365
- json_mode: bool | None = None,
1366
- client: Any = None, # noqa: ANN401
1367
- call_params: CommonCallParams | AnthropicCallParams | None = None,
1368
- ) -> Callable[_P, _ResponseModelT]: ...
1369
-
1370
-
1371
- # Azure _ResponseModelT
1372
- @overload
1373
- def override( # pyright: ignore [reportOverlappingOverload]
1374
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1375
- *,
1376
- provider: Literal["azure"],
1377
- model: str,
1378
- stream: Literal[None, False] = None,
1379
- tools: Literal[None] = None,
1380
- response_model: type[_ResponseModelT],
1381
- output_parser: Literal[None] = None,
1382
- json_mode: bool | None = None,
1383
- client: Any = None, # noqa: ANN401
1384
- call_params: CommonCallParams | AzureCallParams | None = None,
1385
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1386
-
1387
-
1388
- @overload
1389
- def override(
1390
- provider_agnostic_call: Callable[_P, _R],
1391
- *,
1392
- provider: Literal["azure"],
1393
- model: str,
1394
- stream: Literal[None, False] = None,
1395
- tools: Literal[None] = None,
1396
- response_model: type[_ResponseModelT],
1397
- output_parser: Literal[None] = None,
1398
- json_mode: bool | None = None,
1399
- client: Any = None, # noqa: ANN401
1400
- call_params: CommonCallParams | AzureCallParams | None = None,
1401
- ) -> Callable[_P, _ResponseModelT]: ...
1402
-
1403
-
1404
- # Bedrock _ResponseModelT
1405
- @overload
1406
- def override( # pyright: ignore [reportOverlappingOverload]
1407
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1408
- *,
1409
- provider: Literal["bedrock"],
1410
- model: str,
1411
- stream: Literal[None, False] = None,
1412
- tools: Literal[None] = None,
1413
- response_model: type[_ResponseModelT],
1414
- output_parser: Literal[None] = None,
1415
- json_mode: bool | None = None,
1416
- client: Any = None, # noqa: ANN401
1417
- call_params: CommonCallParams | BedrockCallParams | None = None,
1418
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1419
-
1420
-
1421
- @overload
1422
- def override(
1423
- provider_agnostic_call: Callable[_P, _R],
1424
- *,
1425
- provider: Literal["bedrock"],
1426
- model: str,
1427
- stream: Literal[None, False] = None,
1428
- tools: Literal[None] = None,
1429
- response_model: type[_ResponseModelT],
1430
- output_parser: Literal[None] = None,
1431
- json_mode: bool | None = None,
1432
- client: Any = None, # noqa: ANN401
1433
- call_params: CommonCallParams | BedrockCallParams | None = None,
1434
- ) -> Callable[_P, _ResponseModelT]: ...
1435
-
1436
-
1437
- # Cohere _ResponseModelT
1438
- @overload
1439
- def override( # pyright: ignore [reportOverlappingOverload]
1440
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1441
- *,
1442
- provider: Literal["cohere"],
1443
- model: str,
1444
- stream: Literal[None, False] = None,
1445
- tools: Literal[None] = None,
1446
- response_model: type[_ResponseModelT],
1447
- output_parser: Literal[None] = None,
1448
- json_mode: bool | None = None,
1449
- client: Any = None, # noqa: ANN401
1450
- call_params: CommonCallParams | CohereCallParams | None = None,
1451
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1452
-
1453
-
1454
- @overload
1455
- def override(
1456
- provider_agnostic_call: Callable[_P, _R],
1457
- *,
1458
- provider: Literal["cohere"],
1459
- model: str,
1460
- stream: Literal[None, False] = None,
1461
- tools: Literal[None] = None,
1462
- response_model: type[_ResponseModelT],
1463
- output_parser: Literal[None] = None,
1464
- json_mode: bool | None = None,
1465
- client: Any = None, # noqa: ANN401
1466
- call_params: CommonCallParams | CohereCallParams | None = None,
1467
- ) -> Callable[_P, _ResponseModelT]: ...
1468
-
1469
-
1470
- # Gemini _ResponseModelT
1471
- @overload
1472
- def override( # pyright: ignore [reportOverlappingOverload]
1473
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1474
- *,
1475
- provider: Literal["gemini"],
1476
- model: str,
1477
- stream: Literal[None, False] = None,
1478
- tools: Literal[None] = None,
1479
- response_model: type[_ResponseModelT],
1480
- output_parser: Literal[None] = None,
1481
- json_mode: bool | None = None,
1482
- client: Any = None, # noqa: ANN401
1483
- call_params: CommonCallParams | GeminiCallParams | None = None,
1484
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1485
-
1486
-
1487
- @overload
1488
- def override(
1489
- provider_agnostic_call: Callable[_P, _R],
1490
- *,
1491
- provider: Literal["gemini"],
1492
- model: str,
1493
- stream: Literal[None, False] = None,
1494
- tools: Literal[None] = None,
1495
- response_model: type[_ResponseModelT],
1496
- output_parser: Literal[None] = None,
1497
- json_mode: bool | None = None,
1498
- client: Any = None, # noqa: ANN401
1499
- call_params: CommonCallParams | GeminiCallParams | None = None,
1500
- ) -> Callable[_P, _ResponseModelT]: ...
1501
-
1502
-
1503
- # Google _ResponseModelT
1504
- @overload
1505
- def override( # pyright: ignore [reportOverlappingOverload]
1506
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1507
- *,
1508
- provider: Literal["google"],
1509
- model: str,
1510
- stream: Literal[None, False] = None,
1511
- tools: Literal[None] = None,
1512
- response_model: type[_ResponseModelT],
1513
- output_parser: Literal[None] = None,
1514
- json_mode: bool | None = None,
1515
- client: Any = None, # noqa: ANN401
1516
- call_params: CommonCallParams | GoogleCallParams | None = None,
1517
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1518
-
1519
-
1520
- @overload
1521
- def override(
1522
- provider_agnostic_call: Callable[_P, _R],
1523
- *,
1524
- provider: Literal["google"],
1525
- model: str,
1526
- stream: Literal[None, False] = None,
1527
- tools: Literal[None] = None,
1528
- response_model: type[_ResponseModelT],
1529
- output_parser: Literal[None] = None,
1530
- json_mode: bool | None = None,
1531
- client: Any = None, # noqa: ANN401
1532
- call_params: CommonCallParams | GoogleCallParams | None = None,
1533
- ) -> Callable[_P, _ResponseModelT]: ...
1534
-
1535
-
1536
- # Groq _ResponseModelT
1537
- @overload
1538
- def override( # pyright: ignore [reportOverlappingOverload]
1539
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1540
- *,
1541
- provider: Literal["groq"],
1542
- model: str,
1543
- stream: Literal[None, False] = None,
1544
- tools: Literal[None] = None,
1545
- response_model: type[_ResponseModelT],
1546
- output_parser: Literal[None] = None,
1547
- json_mode: bool | None = None,
1548
- client: Any = None, # noqa: ANN401
1549
- call_params: CommonCallParams | GroqCallParams | None = None,
1550
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1551
-
1552
-
1553
- @overload
1554
- def override(
1555
- provider_agnostic_call: Callable[_P, _R],
1556
- *,
1557
- provider: Literal["groq"],
1558
- model: str,
1559
- stream: Literal[None, False] = None,
1560
- tools: Literal[None] = None,
1561
- response_model: type[_ResponseModelT],
1562
- output_parser: Literal[None] = None,
1563
- json_mode: bool | None = None,
1564
- client: Any = None, # noqa: ANN401
1565
- call_params: CommonCallParams | GroqCallParams | None = None,
1566
- ) -> Callable[_P, _ResponseModelT]: ...
1567
-
1568
-
1569
- # LiteLLM _ResponseModelT
1570
- @overload
1571
- def override( # pyright: ignore [reportOverlappingOverload]
1572
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1573
- *,
1574
- provider: Literal["litellm"],
1575
- model: str,
1576
- stream: Literal[None, False] = None,
1577
- tools: Literal[None] = None,
1578
- response_model: type[_ResponseModelT],
1579
- output_parser: Literal[None] = None,
1580
- json_mode: bool | None = None,
1581
- client: Any = None, # noqa: ANN401
1582
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
1583
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1584
-
1585
-
1586
- @overload
1587
- def override(
1588
- provider_agnostic_call: Callable[_P, _R],
1589
- *,
1590
- provider: Literal["litellm"],
1591
- model: str,
1592
- stream: Literal[None, False] = None,
1593
- tools: Literal[None] = None,
1594
- response_model: type[_ResponseModelT],
1595
- output_parser: Literal[None] = None,
1596
- json_mode: bool | None = None,
1597
- client: Any = None, # noqa: ANN401
1598
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
1599
- ) -> Callable[_P, _ResponseModelT]: ...
1600
-
1601
-
1602
- # Mistral _ResponseModelT
1603
- @overload
1604
- def override( # pyright: ignore [reportOverlappingOverload]
1605
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1606
- *,
1607
- provider: Literal["mistral"],
1608
- model: str,
1609
- stream: Literal[None, False] = None,
1610
- tools: Literal[None] = None,
1611
- response_model: type[_ResponseModelT],
1612
- output_parser: Literal[None] = None,
1613
- json_mode: bool | None = None,
1614
- client: Any = None, # noqa: ANN401
1615
- call_params: CommonCallParams | MistralCallParams | None = None,
1616
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1617
-
1618
-
1619
- @overload
1620
- def override(
1621
- provider_agnostic_call: Callable[_P, _R],
1622
- *,
1623
- provider: Literal["mistral"],
1624
- model: str,
1625
- stream: Literal[None, False] = None,
1626
- tools: Literal[None] = None,
1627
- response_model: type[_ResponseModelT],
1628
- output_parser: Literal[None] = None,
1629
- json_mode: bool | None = None,
1630
- client: Any = None, # noqa: ANN401
1631
- call_params: CommonCallParams | MistralCallParams | None = None,
1632
- ) -> Callable[_P, _ResponseModelT]: ...
1633
-
1634
-
1635
- # OpenAI _ResponseModelT
1636
- @overload
1637
- def override( # pyright: ignore [reportOverlappingOverload]
1638
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1639
- *,
1640
- provider: Literal["openai"],
1641
- model: str,
1642
- stream: Literal[None, False] = None,
1643
- tools: Literal[None] = None,
1644
- response_model: type[_ResponseModelT],
1645
- output_parser: Literal[None] = None,
1646
- json_mode: bool | None = None,
1647
- client: Any = None, # noqa: ANN401
1648
- call_params: CommonCallParams | OpenAICallParams | None = None,
1649
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1650
-
1651
-
1652
- @overload
1653
- def override(
1654
- provider_agnostic_call: Callable[_P, _R],
1655
- *,
1656
- provider: Literal["openai"],
1657
- model: str,
1658
- stream: Literal[None, False] = None,
1659
- tools: Literal[None] = None,
1660
- response_model: type[_ResponseModelT],
1661
- output_parser: Literal[None] = None,
1662
- json_mode: bool | None = None,
1663
- client: Any = None, # noqa: ANN401
1664
- call_params: CommonCallParams | OpenAICallParams | None = None,
1665
- ) -> Callable[_P, _ResponseModelT]: ...
1666
-
1667
-
1668
- # Vertex _ResponseModelT
1669
- @overload
1670
- def override(
1671
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1672
- *,
1673
- provider: Literal["vertex"],
1674
- model: str,
1675
- stream: Literal[None, False] = None,
1676
- tools: Literal[None] = None,
1677
- response_model: type[_ResponseModelT],
1678
- output_parser: Literal[None] = None,
1679
- json_mode: bool | None = None,
1680
- client: Any = None, # noqa: ANN401
1681
- call_params: CommonCallParams | VertexCallParams | None = None,
1682
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1683
-
1684
-
1685
- @overload
1686
- def override(
1687
- provider_agnostic_call: Callable[_P, _R],
1688
- *,
1689
- provider: Literal["vertex"],
1690
- model: str,
1691
- stream: Literal[None, False] = None,
1692
- tools: Literal[None] = None,
1693
- response_model: type[_ResponseModelT],
1694
- output_parser: Literal[None] = None,
1695
- json_mode: bool | None = None,
1696
- client: Any = None, # noqa: ANN401
1697
- call_params: CommonCallParams | VertexCallParams | None = None,
1698
- ) -> Callable[_P, _ResponseModelT]: ...
1699
-
1700
-
1701
- # XAI _ResponseModelT
1702
- @overload
1703
- def override(
1704
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1705
- *,
1706
- provider: Literal["xai"],
1707
- model: str,
1708
- stream: Literal[None, False] = None,
1709
- tools: Literal[None] = None,
1710
- response_model: type[_ResponseModelT],
1711
- output_parser: Literal[None] = None,
1712
- json_mode: bool | None = None,
1713
- client: Any = None, # noqa: ANN401
1714
- call_params: CommonCallParams | XAICallParams | None = None,
1715
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1716
-
1717
-
1718
- @overload
1719
- def override(
1720
- provider_agnostic_call: Callable[_P, _R],
1721
- *,
1722
- provider: Literal["xai"],
1723
- model: str,
1724
- stream: Literal[None, False] = None,
1725
- tools: Literal[None] = None,
1726
- response_model: type[_ResponseModelT],
1727
- output_parser: Literal[None] = None,
1728
- json_mode: bool | None = None,
1729
- client: Any = None, # noqa: ANN401
1730
- call_params: CommonCallParams | XAICallParams | None = None,
1731
- ) -> Callable[_P, _ResponseModelT]: ...
1732
-
1733
-
1734
- # Generic _ResponseModelT (for when provider is None or a LocalProvider)
1735
- @overload
1736
- def override(
1737
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1738
- *,
1739
- provider: LocalProvider | None = None,
1740
- model: str | None = None,
1741
- stream: Literal[None, False] = None,
1742
- tools: Literal[None] = None,
1743
- response_model: type[_ResponseModelT],
1744
- output_parser: Literal[None] = None,
1745
- json_mode: bool | None = None,
1746
- client: Any = None, # noqa: ANN401
1747
- call_params: CommonCallParams | None = None,
1748
- ) -> Callable[_P, Awaitable[_ResponseModelT]]: ...
1749
-
1750
-
1751
- @overload
1752
- def override(
1753
- provider_agnostic_call: Callable[_P, _R],
1754
- *,
1755
- provider: LocalProvider | None = None,
1756
- model: str | None = None,
1757
- stream: Literal[None, False] = None,
1758
- tools: Literal[None] = None,
1759
- response_model: type[_ResponseModelT],
1760
- output_parser: Literal[None] = None,
1761
- json_mode: bool | None = None,
1762
- client: Any = None, # noqa: ANN401
1763
- call_params: CommonCallParams | None = None,
1764
- ) -> Callable[_P, _ResponseModelT]: ...
1765
-
1766
-
1767
- ### _ParsedOutputT ###
1768
- # Anthropic _ParsedOutputT
1769
- @overload
1770
- def override(
1771
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1772
- *,
1773
- provider: Literal["anthropic"],
1774
- model: str,
1775
- stream: Literal[None, False] = None,
1776
- tools: Literal[None] = None,
1777
- response_model: type[_ResponseModelT] | None = None,
1778
- output_parser: Callable[[Any], _ParsedOutputT],
1779
- json_mode: bool | None = None,
1780
- client: Any = None, # noqa: ANN401
1781
- call_params: CommonCallParams | AnthropicCallParams | None = None,
1782
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1783
-
1784
-
1785
- @overload
1786
- def override(
1787
- provider_agnostic_call: Callable[_P, _R],
1788
- *,
1789
- provider: Literal["anthropic"],
1790
- model: str,
1791
- stream: Literal[None, False] = None,
1792
- tools: Literal[None] = None,
1793
- response_model: type[_ResponseModelT] | None = None,
1794
- output_parser: Callable[[Any], _ParsedOutputT],
1795
- json_mode: bool | None = None,
1796
- client: Any = None, # noqa: ANN401
1797
- call_params: CommonCallParams | AnthropicCallParams | None = None,
1798
- ) -> Callable[_P, _ParsedOutputT]: ...
1799
-
1800
-
1801
- # Azure _ParsedOutputT
1802
- @overload
1803
- def override(
1804
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1805
- *,
1806
- provider: Literal["azure"],
1807
- model: str,
1808
- stream: Literal[None, False] = None,
1809
- tools: Literal[None] = None,
1810
- response_model: type[_ResponseModelT] | None = None,
1811
- output_parser: Callable[[Any], _ParsedOutputT],
1812
- json_mode: bool | None = None,
1813
- client: Any = None, # noqa: ANN401
1814
- call_params: CommonCallParams | AzureCallParams | None = None,
1815
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1816
-
1817
-
1818
- @overload
1819
- def override(
1820
- provider_agnostic_call: Callable[_P, _R],
1821
- *,
1822
- provider: Literal["azure"],
1823
- model: str,
1824
- stream: Literal[None, False] = None,
1825
- tools: Literal[None] = None,
1826
- response_model: type[_ResponseModelT] | None = None,
1827
- output_parser: Callable[[Any], _ParsedOutputT],
1828
- json_mode: bool | None = None,
1829
- client: Any = None, # noqa: ANN401
1830
- call_params: CommonCallParams | AzureCallParams | None = None,
1831
- ) -> Callable[_P, _ParsedOutputT]: ...
1832
-
1833
-
1834
- # Bedrock _ParsedOutputT
1835
- @overload
1836
- def override(
1837
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1838
- *,
1839
- provider: Literal["bedrock"],
1840
- model: str,
1841
- stream: Literal[None, False] = None,
1842
- tools: Literal[None] = None,
1843
- response_model: type[_ResponseModelT] | None = None,
1844
- output_parser: Callable[[Any], _ParsedOutputT],
1845
- json_mode: bool | None = None,
1846
- client: Any = None, # noqa: ANN401
1847
- call_params: CommonCallParams | BedrockCallParams | None = None,
1848
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1849
-
1850
-
1851
- @overload
1852
- def override(
1853
- provider_agnostic_call: Callable[_P, _R],
1854
- *,
1855
- provider: Literal["bedrock"],
1856
- model: str,
1857
- stream: Literal[None, False] = None,
1858
- tools: Literal[None] = None,
1859
- response_model: type[_ResponseModelT] | None = None,
1860
- output_parser: Callable[[Any], _ParsedOutputT],
1861
- json_mode: bool | None = None,
1862
- client: Any = None, # noqa: ANN401
1863
- call_params: CommonCallParams | BedrockCallParams | None = None,
1864
- ) -> Callable[_P, _ParsedOutputT]: ...
1865
-
1866
-
1867
- # Cohere _ParsedOutputT
1868
- @overload
1869
- def override(
1870
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1871
- *,
1872
- provider: Literal["cohere"],
1873
- model: str,
1874
- stream: Literal[None, False] = None,
1875
- tools: Literal[None] = None,
1876
- response_model: type[_ResponseModelT] | None = None,
1877
- output_parser: Callable[[Any], _ParsedOutputT],
1878
- json_mode: bool | None = None,
1879
- client: Any = None, # noqa: ANN401
1880
- call_params: CommonCallParams | CohereCallParams | None = None,
1881
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1882
-
1883
-
1884
- @overload
1885
- def override(
1886
- provider_agnostic_call: Callable[_P, _R],
1887
- *,
1888
- provider: Literal["cohere"],
1889
- model: str,
1890
- stream: Literal[None, False] = None,
1891
- tools: Literal[None] = None,
1892
- response_model: type[_ResponseModelT] | None = None,
1893
- output_parser: Callable[[Any], _ParsedOutputT],
1894
- json_mode: bool | None = None,
1895
- client: Any = None, # noqa: ANN401
1896
- call_params: CommonCallParams | CohereCallParams | None = None,
1897
- ) -> Callable[_P, _ParsedOutputT]: ...
1898
-
1899
-
1900
- # Gemini _ParsedOutputT
1901
- @overload
1902
- def override(
1903
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1904
- *,
1905
- provider: Literal["gemini"],
1906
- model: str,
1907
- stream: Literal[None, False] = None,
1908
- tools: Literal[None] = None,
1909
- response_model: type[_ResponseModelT] | None = None,
1910
- output_parser: Callable[[Any], _ParsedOutputT],
1911
- json_mode: bool | None = None,
1912
- client: Any = None, # noqa: ANN401
1913
- call_params: CommonCallParams | GeminiCallParams | None = None,
1914
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1915
-
1916
-
1917
- @overload
1918
- def override(
1919
- provider_agnostic_call: Callable[_P, _R],
1920
- *,
1921
- provider: Literal["gemini"],
1922
- model: str,
1923
- stream: Literal[None, False] = None,
1924
- tools: Literal[None] = None,
1925
- response_model: type[_ResponseModelT] | None = None,
1926
- output_parser: Callable[[Any], _ParsedOutputT],
1927
- json_mode: bool | None = None,
1928
- client: Any = None, # noqa: ANN401
1929
- call_params: CommonCallParams | GeminiCallParams | None = None,
1930
- ) -> Callable[_P, _ParsedOutputT]: ...
1931
-
1932
-
1933
- # Google _ParsedOutputT
1934
- @overload
1935
- def override(
1936
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1937
- *,
1938
- provider: Literal["google"],
1939
- model: str,
1940
- stream: Literal[None, False] = None,
1941
- tools: Literal[None] = None,
1942
- response_model: type[_ResponseModelT] | None = None,
1943
- output_parser: Callable[[Any], _ParsedOutputT],
1944
- json_mode: bool | None = None,
1945
- client: Any = None, # noqa: ANN401
1946
- call_params: CommonCallParams | GoogleCallParams | None = None,
1947
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1948
-
1949
-
1950
- @overload
1951
- def override(
1952
- provider_agnostic_call: Callable[_P, _R],
1953
- *,
1954
- provider: Literal["google"],
1955
- model: str,
1956
- stream: Literal[None, False] = None,
1957
- tools: Literal[None] = None,
1958
- response_model: type[_ResponseModelT] | None = None,
1959
- output_parser: Callable[[Any], _ParsedOutputT],
1960
- json_mode: bool | None = None,
1961
- client: Any = None, # noqa: ANN401
1962
- call_params: CommonCallParams | GoogleCallParams | None = None,
1963
- ) -> Callable[_P, _ParsedOutputT]: ...
1964
-
1965
-
1966
- # Groq _ParsedOutputT
1967
- @overload
1968
- def override(
1969
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
1970
- *,
1971
- provider: Literal["groq"],
1972
- model: str,
1973
- stream: Literal[None, False] = None,
1974
- tools: Literal[None] = None,
1975
- response_model: type[_ResponseModelT] | None = None,
1976
- output_parser: Callable[[Any], _ParsedOutputT],
1977
- json_mode: bool | None = None,
1978
- client: Any = None, # noqa: ANN401
1979
- call_params: CommonCallParams | GroqCallParams | None = None,
1980
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
1981
-
1982
-
1983
- @overload
1984
- def override(
1985
- provider_agnostic_call: Callable[_P, _R],
1986
- *,
1987
- provider: Literal["groq"],
1988
- model: str,
1989
- stream: Literal[None, False] = None,
1990
- tools: Literal[None] = None,
1991
- response_model: type[_ResponseModelT] | None = None,
1992
- output_parser: Callable[[Any], _ParsedOutputT],
1993
- json_mode: bool | None = None,
1994
- client: Any = None, # noqa: ANN401
1995
- call_params: CommonCallParams | GroqCallParams | None = None,
1996
- ) -> Callable[_P, _ParsedOutputT]: ...
1997
-
1998
-
1999
- # LiteLLM _ParsedOutputT
2000
- @overload
2001
- def override(
2002
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2003
- *,
2004
- provider: Literal["litellm"],
2005
- model: str,
2006
- stream: Literal[None, False] = None,
2007
- tools: Literal[None] = None,
2008
- response_model: type[_ResponseModelT] | None = None,
2009
- output_parser: Callable[[Any], _ParsedOutputT],
2010
- json_mode: bool | None = None,
2011
- client: Any = None, # noqa: ANN401
2012
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
2013
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
2014
-
2015
-
2016
- @overload
2017
- def override(
2018
- provider_agnostic_call: Callable[_P, _R],
2019
- *,
2020
- provider: Literal["litellm"],
2021
- model: str,
2022
- stream: Literal[None, False] = None,
2023
- tools: Literal[None] = None,
2024
- response_model: type[_ResponseModelT] | None = None,
2025
- output_parser: Callable[[Any], _ParsedOutputT],
2026
- json_mode: bool | None = None,
2027
- client: Any = None, # noqa: ANN401
2028
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
2029
- ) -> Callable[_P, _ParsedOutputT]: ...
2030
-
2031
-
2032
- # Mistral _ParsedOutputT
2033
- @overload
2034
- def override(
2035
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2036
- *,
2037
- provider: Literal["mistral"],
2038
- model: str,
2039
- stream: Literal[None, False] = None,
2040
- tools: Literal[None] = None,
2041
- response_model: type[_ResponseModelT] | None = None,
2042
- output_parser: Callable[[Any], _ParsedOutputT],
2043
- json_mode: bool | None = None,
2044
- client: Any = None, # noqa: ANN401
2045
- call_params: CommonCallParams | MistralCallParams | None = None,
2046
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
2047
-
2048
-
2049
- @overload
2050
- def override(
2051
- provider_agnostic_call: Callable[_P, _R],
2052
- *,
2053
- provider: Literal["mistral"],
2054
- model: str,
2055
- stream: Literal[None, False] = None,
2056
- tools: Literal[None] = None,
2057
- response_model: type[_ResponseModelT] | None = None,
2058
- output_parser: Callable[[Any], _ParsedOutputT],
2059
- json_mode: bool | None = None,
2060
- client: Any = None, # noqa: ANN401
2061
- call_params: CommonCallParams | MistralCallParams | None = None,
2062
- ) -> Callable[_P, _ParsedOutputT]: ...
2063
-
2064
-
2065
- # OpenAI _ParsedOutputT
2066
- @overload
2067
- def override(
2068
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2069
- *,
2070
- provider: Literal["openai"],
2071
- model: str,
2072
- stream: Literal[None, False] = None,
2073
- tools: Literal[None] = None,
2074
- response_model: type[_ResponseModelT] | None = None,
2075
- output_parser: Callable[[Any], _ParsedOutputT],
2076
- json_mode: bool | None = None,
2077
- client: Any = None, # noqa: ANN401
2078
- call_params: CommonCallParams | OpenAICallParams | None = None,
2079
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
2080
-
2081
-
2082
- @overload
2083
- def override(
2084
- provider_agnostic_call: Callable[_P, _R],
2085
- *,
2086
- provider: Literal["openai"],
2087
- model: str,
2088
- stream: Literal[None, False] = None,
2089
- tools: Literal[None] = None,
2090
- response_model: type[_ResponseModelT] | None = None,
2091
- output_parser: Callable[[Any], _ParsedOutputT],
2092
- json_mode: bool | None = None,
2093
- client: Any = None, # noqa: ANN401
2094
- call_params: CommonCallParams | OpenAICallParams | None = None,
2095
- ) -> Callable[_P, _ParsedOutputT]: ...
2096
-
2097
-
2098
- # Vertex _ParsedOutputT
2099
- @overload
2100
- def override(
2101
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2102
- *,
2103
- provider: Literal["vertex"],
2104
- model: str,
2105
- stream: Literal[None, False] = None,
2106
- tools: Literal[None] = None,
2107
- response_model: type[_ResponseModelT] | None = None,
2108
- output_parser: Callable[[Any], _ParsedOutputT],
2109
- json_mode: bool | None = None,
2110
- client: Any = None, # noqa: ANN401
2111
- call_params: CommonCallParams | VertexCallParams | None = None,
2112
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
2113
-
2114
-
2115
- @overload
2116
- def override(
2117
- provider_agnostic_call: Callable[_P, _R],
2118
- *,
2119
- provider: Literal["vertex"],
2120
- model: str,
2121
- stream: Literal[None, False] = None,
2122
- tools: Literal[None] = None,
2123
- response_model: type[_ResponseModelT] | None = None,
2124
- output_parser: Callable[[Any], _ParsedOutputT],
2125
- json_mode: bool | None = None,
2126
- client: Any = None, # noqa: ANN401
2127
- call_params: CommonCallParams | VertexCallParams | None = None,
2128
- ) -> Callable[_P, _ParsedOutputT]: ...
2129
-
2130
-
2131
- # XAI _ParsedOutputT
2132
- @overload
2133
- def override(
2134
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2135
- *,
2136
- provider: Literal["xai"],
2137
- model: str,
2138
- stream: Literal[None, False] = None,
2139
- tools: Literal[None] = None,
2140
- response_model: type[_ResponseModelT] | None = None,
2141
- output_parser: Callable[[Any], _ParsedOutputT],
2142
- json_mode: bool | None = None,
2143
- client: Any = None, # noqa: ANN401
2144
- call_params: CommonCallParams | XAICallParams | None = None,
2145
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
2146
-
2147
-
2148
- @overload
2149
- def override(
2150
- provider_agnostic_call: Callable[_P, _R],
2151
- *,
2152
- provider: Literal["xai"],
2153
- model: str,
2154
- stream: Literal[None, False] = None,
2155
- tools: Literal[None] = None,
2156
- response_model: type[_ResponseModelT] | None = None,
2157
- output_parser: Callable[[Any], _ParsedOutputT],
2158
- json_mode: bool | None = None,
2159
- client: Any = None, # noqa: ANN401
2160
- call_params: CommonCallParams | XAICallParams | None = None,
2161
- ) -> Callable[_P, _ParsedOutputT]: ...
2162
-
2163
-
2164
- # Generic _ParsedOutputT (for when provider is None or a LocalProvider)
2165
- @overload
2166
- def override(
2167
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2168
- *,
2169
- provider: LocalProvider | None = None,
2170
- model: str | None = None,
2171
- stream: Literal[None, False] = None,
2172
- tools: Literal[None] = None,
2173
- response_model: type[_ResponseModelT] | None = None,
2174
- output_parser: Callable[[Any], _ParsedOutputT],
2175
- json_mode: bool | None = None,
2176
- client: Any = None, # noqa: ANN401
2177
- call_params: CommonCallParams | None = None,
2178
- ) -> Callable[_P, Awaitable[_ParsedOutputT]]: ...
2179
-
2180
-
2181
- @overload
2182
- def override(
2183
- provider_agnostic_call: Callable[_P, _R],
2184
- *,
2185
- provider: LocalProvider | None = None,
2186
- model: str | None = None,
2187
- stream: Literal[None, False] = None,
2188
- tools: Literal[None] = None,
2189
- response_model: type[_ResponseModelT] | None = None,
2190
- output_parser: Callable[[Any], _ParsedOutputT],
2191
- json_mode: bool | None = None,
2192
- client: Any = None, # noqa: ANN401
2193
- call_params: CommonCallParams | None = None,
2194
- ) -> Callable[_P, _ParsedOutputT]: ...
2195
-
2196
-
2197
- ### Async/Iterable[_ResponseModelT] ###
2198
- # Anthropic Async/Iterable[_ResponseModelT]
2199
- @overload
2200
- def override(
2201
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2202
- *,
2203
- provider: Literal["anthropic"],
2204
- model: str,
2205
- stream: Literal[True],
2206
- tools: Literal[None] = None,
2207
- response_model: type[_ResponseModelT],
2208
- output_parser: Literal[None] = None,
2209
- json_mode: bool | None = None,
2210
- client: Any = None, # noqa: ANN401
2211
- call_params: CommonCallParams | AnthropicCallParams | None = None,
2212
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2213
-
2214
-
2215
- @overload
2216
- def override(
2217
- provider_agnostic_call: Callable[_P, _R],
2218
- *,
2219
- provider: Literal["anthropic"],
2220
- model: str,
2221
- stream: Literal[True],
2222
- tools: Literal[None] = None,
2223
- response_model: type[_ResponseModelT],
2224
- output_parser: Literal[None] = None,
2225
- json_mode: bool | None = None,
2226
- client: Any = None, # noqa: ANN401
2227
- call_params: CommonCallParams | AnthropicCallParams | None = None,
2228
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2229
-
2230
-
2231
- # Azure Async/Iterable[_ResponseModelT]
2232
- @overload
2233
- def override(
2234
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2235
- *,
2236
- provider: Literal["azure"],
2237
- model: str,
2238
- stream: Literal[True],
2239
- tools: Literal[None] = None,
2240
- response_model: type[_ResponseModelT],
2241
- output_parser: Literal[None] = None,
2242
- json_mode: bool | None = None,
2243
- client: Any = None, # noqa: ANN401
2244
- call_params: CommonCallParams | AzureCallParams | None = None,
2245
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2246
-
2247
-
2248
- @overload
2249
- def override(
2250
- provider_agnostic_call: Callable[_P, _R],
2251
- *,
2252
- provider: Literal["azure"],
2253
- model: str,
2254
- stream: Literal[True],
2255
- tools: Literal[None] = None,
2256
- response_model: type[_ResponseModelT],
2257
- output_parser: Literal[None] = None,
2258
- json_mode: bool | None = None,
2259
- client: Any = None, # noqa: ANN401
2260
- call_params: CommonCallParams | AzureCallParams | None = None,
2261
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2262
-
2263
-
2264
- # Bedrock Async/Iterable[_ResponseModelT]
2265
- @overload
2266
- def override(
2267
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2268
- *,
2269
- provider: Literal["bedrock"],
2270
- model: str,
2271
- stream: Literal[True],
2272
- tools: Literal[None] = None,
2273
- response_model: type[_ResponseModelT],
2274
- output_parser: Literal[None] = None,
2275
- json_mode: bool | None = None,
2276
- client: Any = None, # noqa: ANN401
2277
- call_params: CommonCallParams | BedrockCallParams | None = None,
2278
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2279
-
2280
-
2281
- @overload
2282
- def override(
2283
- provider_agnostic_call: Callable[_P, _R],
2284
- *,
2285
- provider: Literal["bedrock"],
2286
- model: str,
2287
- stream: Literal[True],
2288
- tools: Literal[None] = None,
2289
- response_model: type[_ResponseModelT],
2290
- output_parser: Literal[None] = None,
2291
- json_mode: bool | None = None,
2292
- client: Any = None, # noqa: ANN401
2293
- call_params: CommonCallParams | BedrockCallParams | None = None,
2294
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2295
-
2296
-
2297
- # Cohere Async/Iterable[_ResponseModelT]
2298
- @overload
2299
- def override(
2300
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2301
- *,
2302
- provider: Literal["cohere"],
2303
- model: str,
2304
- stream: Literal[True],
2305
- tools: Literal[None] = None,
2306
- response_model: type[_ResponseModelT],
2307
- output_parser: Literal[None] = None,
2308
- json_mode: bool | None = None,
2309
- client: Any = None, # noqa: ANN401
2310
- call_params: CommonCallParams | CohereCallParams | None = None,
2311
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2312
-
2313
-
2314
- @overload
2315
- def override(
2316
- provider_agnostic_call: Callable[_P, _R],
2317
- *,
2318
- provider: Literal["cohere"],
2319
- model: str,
2320
- stream: Literal[True],
2321
- tools: Literal[None] = None,
2322
- response_model: type[_ResponseModelT],
2323
- output_parser: Literal[None] = None,
2324
- json_mode: bool | None = None,
2325
- client: Any = None, # noqa: ANN401
2326
- call_params: CommonCallParams | CohereCallParams | None = None,
2327
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2328
-
2329
-
2330
- # Gemini Async/Iterable[_ResponseModelT]
2331
- @overload
2332
- def override(
2333
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2334
- *,
2335
- provider: Literal["gemini"],
2336
- model: str,
2337
- stream: Literal[True],
2338
- tools: Literal[None] = None,
2339
- response_model: type[_ResponseModelT],
2340
- output_parser: Literal[None] = None,
2341
- json_mode: bool | None = None,
2342
- client: Any = None, # noqa: ANN401
2343
- call_params: CommonCallParams | GeminiCallParams | None = None,
2344
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2345
-
2346
-
2347
- @overload
2348
- def override(
2349
- provider_agnostic_call: Callable[_P, _R],
2350
- *,
2351
- provider: Literal["gemini"],
2352
- model: str,
2353
- stream: Literal[True],
2354
- tools: Literal[None] = None,
2355
- response_model: type[_ResponseModelT],
2356
- output_parser: Literal[None] = None,
2357
- json_mode: bool | None = None,
2358
- client: Any = None, # noqa: ANN401
2359
- call_params: CommonCallParams | GeminiCallParams | None = None,
2360
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2361
-
2362
-
2363
- # Google Async/Iterable[_ResponseModelT]
2364
- @overload
2365
- def override(
2366
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2367
- *,
2368
- provider: Literal["google"],
2369
- model: str,
2370
- stream: Literal[True],
2371
- tools: Literal[None] = None,
2372
- response_model: type[_ResponseModelT],
2373
- output_parser: Literal[None] = None,
2374
- json_mode: bool | None = None,
2375
- client: Any = None, # noqa: ANN401
2376
- call_params: CommonCallParams | GoogleCallParams | None = None,
2377
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2378
-
2379
-
2380
- @overload
2381
- def override(
2382
- provider_agnostic_call: Callable[_P, _R],
2383
- *,
2384
- provider: Literal["google"],
2385
- model: str,
2386
- stream: Literal[True],
2387
- tools: Literal[None] = None,
2388
- response_model: type[_ResponseModelT],
2389
- output_parser: Literal[None] = None,
2390
- json_mode: bool | None = None,
2391
- client: Any = None, # noqa: ANN401
2392
- call_params: CommonCallParams | GoogleCallParams | None = None,
2393
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2394
-
2395
-
2396
- # Groq Async/Iterable[_ResponseModelT]
2397
- @overload
2398
- def override(
2399
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2400
- *,
2401
- provider: Literal["groq"],
2402
- model: str,
2403
- stream: Literal[True],
2404
- tools: Literal[None] = None,
2405
- response_model: type[_ResponseModelT],
2406
- output_parser: Literal[None] = None,
2407
- json_mode: bool | None = None,
2408
- client: Any = None, # noqa: ANN401
2409
- call_params: CommonCallParams | GroqCallParams | None = None,
2410
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2411
-
2412
-
2413
- @overload
2414
- def override(
2415
- provider_agnostic_call: Callable[_P, _R],
2416
- *,
2417
- provider: Literal["groq"],
2418
- model: str,
2419
- stream: Literal[True],
2420
- tools: Literal[None] = None,
2421
- response_model: type[_ResponseModelT],
2422
- output_parser: Literal[None] = None,
2423
- json_mode: bool | None = None,
2424
- client: Any = None, # noqa: ANN401
2425
- call_params: CommonCallParams | GroqCallParams | None = None,
2426
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2427
-
2428
-
2429
- # LiteLLM Async/Iterable[_ResponseModelT]
2430
- @overload
2431
- def override(
2432
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2433
- *,
2434
- provider: Literal["litellm"],
2435
- model: str,
2436
- stream: Literal[True],
2437
- tools: Literal[None] = None,
2438
- response_model: type[_ResponseModelT],
2439
- output_parser: Literal[None] = None,
2440
- json_mode: bool | None = None,
2441
- client: Any = None, # noqa: ANN401
2442
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
2443
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2444
-
2445
-
2446
- @overload
2447
- def override(
2448
- provider_agnostic_call: Callable[_P, _R],
2449
- *,
2450
- provider: Literal["litellm"],
2451
- model: str,
2452
- stream: Literal[True],
2453
- tools: Literal[None] = None,
2454
- response_model: type[_ResponseModelT],
2455
- output_parser: Literal[None] = None,
2456
- json_mode: bool | None = None,
2457
- client: Any = None, # noqa: ANN401
2458
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
2459
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2460
-
2461
-
2462
- # Mistral Async/Iterable[_ResponseModelT]
2463
- @overload
2464
- def override(
2465
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2466
- *,
2467
- provider: Literal["mistral"],
2468
- model: str,
2469
- stream: Literal[True],
2470
- tools: Literal[None] = None,
2471
- response_model: type[_ResponseModelT],
2472
- output_parser: Literal[None] = None,
2473
- json_mode: bool | None = None,
2474
- client: Any = None, # noqa: ANN401
2475
- call_params: CommonCallParams | MistralCallParams | None = None,
2476
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2477
-
2478
-
2479
- @overload
2480
- def override(
2481
- provider_agnostic_call: Callable[_P, _R],
2482
- *,
2483
- provider: Literal["mistral"],
2484
- model: str,
2485
- stream: Literal[True],
2486
- tools: Literal[None] = None,
2487
- response_model: type[_ResponseModelT],
2488
- output_parser: Literal[None] = None,
2489
- json_mode: bool | None = None,
2490
- client: Any = None, # noqa: ANN401
2491
- call_params: CommonCallParams | MistralCallParams | None = None,
2492
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2493
-
2494
-
2495
- # OpenAI Async/Iterable[_ResponseModelT]
2496
- @overload
2497
- def override(
2498
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2499
- *,
2500
- provider: Literal["openai"],
2501
- model: str,
2502
- stream: Literal[True],
2503
- tools: Literal[None] = None,
2504
- response_model: type[_ResponseModelT],
2505
- output_parser: Literal[None] = None,
2506
- json_mode: bool | None = None,
2507
- client: Any = None, # noqa: ANN401
2508
- call_params: CommonCallParams | OpenAICallParams | None = None,
2509
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2510
-
2511
-
2512
- @overload
2513
- def override(
2514
- provider_agnostic_call: Callable[_P, _R],
2515
- *,
2516
- provider: Literal["openai"],
2517
- model: str,
2518
- stream: Literal[True],
2519
- tools: Literal[None] = None,
2520
- response_model: type[_ResponseModelT],
2521
- output_parser: Literal[None] = None,
2522
- json_mode: bool | None = None,
2523
- client: Any = None, # noqa: ANN401
2524
- call_params: CommonCallParams | OpenAICallParams | None = None,
2525
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2526
-
2527
-
2528
- # Vertex Async/Iterable[_ResponseModelT]
2529
- @overload
2530
- def override(
2531
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2532
- *,
2533
- provider: Literal["vertex"],
2534
- model: str,
2535
- stream: Literal[True],
2536
- tools: Literal[None] = None,
2537
- response_model: type[_ResponseModelT],
2538
- output_parser: Literal[None] = None,
2539
- json_mode: bool | None = None,
2540
- client: Any = None, # noqa: ANN401
2541
- call_params: CommonCallParams | VertexCallParams | None = None,
2542
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2543
-
2544
-
2545
- @overload
2546
- def override(
2547
- provider_agnostic_call: Callable[_P, _R],
2548
- *,
2549
- provider: Literal["vertex"],
2550
- model: str,
2551
- stream: Literal[True],
2552
- tools: Literal[None] = None,
2553
- response_model: type[_ResponseModelT],
2554
- output_parser: Literal[None] = None,
2555
- json_mode: bool | None = None,
2556
- client: Any = None, # noqa: ANN401
2557
- call_params: CommonCallParams | VertexCallParams | None = None,
2558
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2559
-
2560
-
2561
- # XAI Async/Iterable[_ResponseModelT]
2562
- @overload
2563
- def override(
2564
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2565
- *,
2566
- provider: Literal["xai"],
2567
- model: str,
2568
- stream: Literal[True],
2569
- tools: Literal[None] = None,
2570
- response_model: type[_ResponseModelT],
2571
- output_parser: Literal[None] = None,
2572
- json_mode: bool | None = None,
2573
- client: Any = None, # noqa: ANN401
2574
- call_params: CommonCallParams | XAICallParams | None = None,
2575
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2576
-
2577
-
2578
- @overload
2579
- def override(
2580
- provider_agnostic_call: Callable[_P, _R],
2581
- *,
2582
- provider: Literal["xai"],
2583
- model: str,
2584
- stream: Literal[True],
2585
- tools: Literal[None] = None,
2586
- response_model: type[_ResponseModelT],
2587
- output_parser: Literal[None] = None,
2588
- json_mode: bool | None = None,
2589
- client: Any = None, # noqa: ANN401
2590
- call_params: CommonCallParams | XAICallParams | None = None,
2591
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2592
-
2593
-
2594
- # Generic Async/Iterable[_ResponseModelT] (for when provider is None or a LocalProvider)
2595
- @overload
2596
- def override(
2597
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2598
- *,
2599
- provider: LocalProvider | None = None,
2600
- model: str | None = None,
2601
- stream: Literal[True],
2602
- tools: Literal[None] = None,
2603
- response_model: type[_ResponseModelT],
2604
- output_parser: Literal[None] = None,
2605
- json_mode: bool | None = None,
2606
- client: Any = None, # noqa: ANN401
2607
- call_params: CommonCallParams | None = None,
2608
- ) -> Callable[_P, Awaitable[AsyncIterable[_ResponseModelT]]]: ...
2609
-
2610
-
2611
- @overload
2612
- def override(
2613
- provider_agnostic_call: Callable[_P, _R],
2614
- *,
2615
- provider: LocalProvider | None = None,
2616
- model: str | None = None,
2617
- stream: Literal[True],
2618
- tools: Literal[None] = None,
2619
- response_model: type[_ResponseModelT],
2620
- output_parser: Literal[None] = None,
2621
- json_mode: bool | None = None,
2622
- client: Any = None, # noqa: ANN401
2623
- call_params: CommonCallParams | None = None,
2624
- ) -> Callable[_P, Iterable[_ResponseModelT]]: ...
2625
-
2626
-
2627
- ### (_ResponseModelT | CallResponse) ###
2628
- # Anthropic (_ResponseModelT | CallResponse)
2629
- @overload
2630
- def override(
2631
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2632
- *,
2633
- provider: Literal["anthropic"],
2634
- model: str,
2635
- stream: Literal[None, False] = None,
2636
- tools: list[type[BaseTool] | Callable],
2637
- response_model: type[_ResponseModelT],
2638
- output_parser: Literal[None] = None,
2639
- json_mode: bool | None = None,
2640
- client: Any = None, # noqa: ANN401
2641
- call_params: CommonCallParams | AnthropicCallParams | None = None,
2642
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2643
-
2644
-
2645
- @overload
2646
- def override(
2647
- provider_agnostic_call: Callable[_P, _R],
2648
- *,
2649
- provider: Literal["anthropic"],
2650
- model: str,
2651
- stream: Literal[None, False] = None,
2652
- tools: list[type[BaseTool] | Callable],
2653
- response_model: type[_ResponseModelT],
2654
- output_parser: Literal[None] = None,
2655
- json_mode: bool | None = None,
2656
- client: Any = None, # noqa: ANN401
2657
- call_params: CommonCallParams | AnthropicCallParams | None = None,
2658
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2659
-
2660
-
2661
- # Azure (_ResponseModelT | CallResponse)
2662
- @overload
2663
- def override(
2664
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2665
- *,
2666
- provider: Literal["azure"],
2667
- model: str,
2668
- stream: Literal[None, False] = None,
2669
- tools: list[type[BaseTool] | Callable],
2670
- response_model: type[_ResponseModelT],
2671
- output_parser: Literal[None] = None,
2672
- json_mode: bool | None = None,
2673
- client: Any = None, # noqa: ANN401
2674
- call_params: CommonCallParams | AzureCallParams | None = None,
2675
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2676
-
2677
-
2678
- @overload
2679
- def override(
2680
- provider_agnostic_call: Callable[_P, _R],
2681
- *,
2682
- provider: Literal["azure"],
2683
- model: str,
2684
- stream: Literal[None, False] = None,
2685
- tools: list[type[BaseTool] | Callable],
2686
- response_model: type[_ResponseModelT],
2687
- output_parser: Literal[None] = None,
2688
- json_mode: bool | None = None,
2689
- client: Any = None, # noqa: ANN401
2690
- call_params: CommonCallParams | AzureCallParams | None = None,
2691
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2692
-
2693
-
2694
- # Bedrock (_ResponseModelT | CallResponse)
2695
- @overload
2696
- def override(
2697
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2698
- *,
2699
- provider: Literal["bedrock"],
2700
- model: str,
2701
- stream: Literal[None, False] = None,
2702
- tools: list[type[BaseTool] | Callable],
2703
- response_model: type[_ResponseModelT],
2704
- output_parser: Literal[None] = None,
2705
- json_mode: bool | None = None,
2706
- client: Any = None, # noqa: ANN401
2707
- call_params: CommonCallParams | BedrockCallParams | None = None,
2708
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2709
-
2710
-
2711
- @overload
2712
- def override(
2713
- provider_agnostic_call: Callable[_P, _R],
2714
- *,
2715
- provider: Literal["bedrock"],
2716
- model: str,
2717
- stream: Literal[None, False] = None,
2718
- tools: list[type[BaseTool] | Callable],
2719
- response_model: type[_ResponseModelT],
2720
- output_parser: Literal[None] = None,
2721
- json_mode: bool | None = None,
2722
- client: Any = None, # noqa: ANN401
2723
- call_params: CommonCallParams | BedrockCallParams | None = None,
2724
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2725
-
2726
-
2727
- # Cohere (_ResponseModelT | CallResponse)
2728
- @overload
2729
- def override(
2730
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2731
- *,
2732
- provider: Literal["cohere"],
2733
- model: str,
2734
- stream: Literal[None, False] = None,
2735
- tools: list[type[BaseTool] | Callable],
2736
- response_model: type[_ResponseModelT],
2737
- output_parser: Literal[None] = None,
2738
- json_mode: bool | None = None,
2739
- client: Any = None, # noqa: ANN401
2740
- call_params: CommonCallParams | CohereCallParams | None = None,
2741
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2742
-
2743
-
2744
- @overload
2745
- def override(
2746
- provider_agnostic_call: Callable[_P, _R],
2747
- *,
2748
- provider: Literal["cohere"],
2749
- model: str,
2750
- stream: Literal[None, False] = None,
2751
- tools: list[type[BaseTool] | Callable],
2752
- response_model: type[_ResponseModelT],
2753
- output_parser: Literal[None] = None,
2754
- json_mode: bool | None = None,
2755
- client: Any = None, # noqa: ANN401
2756
- call_params: CommonCallParams | CohereCallParams | None = None,
2757
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2758
-
2759
-
2760
- # Gemini (_ResponseModelT | CallResponse)
2761
- @overload
2762
- def override(
2763
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2764
- *,
2765
- provider: Literal["gemini"],
2766
- model: str,
2767
- stream: Literal[None, False] = None,
2768
- tools: list[type[BaseTool] | Callable],
2769
- response_model: type[_ResponseModelT],
2770
- output_parser: Literal[None] = None,
2771
- json_mode: bool | None = None,
2772
- client: Any = None, # noqa: ANN401
2773
- call_params: CommonCallParams | GeminiCallParams | None = None,
2774
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2775
-
2776
-
2777
- @overload
2778
- def override(
2779
- provider_agnostic_call: Callable[_P, _R],
2780
- *,
2781
- provider: Literal["gemini"],
2782
- model: str,
2783
- stream: Literal[None, False] = None,
2784
- tools: list[type[BaseTool] | Callable],
2785
- response_model: type[_ResponseModelT],
2786
- output_parser: Literal[None] = None,
2787
- json_mode: bool | None = None,
2788
- client: Any = None, # noqa: ANN401
2789
- call_params: CommonCallParams | GeminiCallParams | None = None,
2790
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2791
-
2792
-
2793
- # Google (_ResponseModelT | CallResponse)
2794
- @overload
2795
- def override(
2796
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2797
- *,
2798
- provider: Literal["google"],
2799
- model: str,
2800
- stream: Literal[None, False] = None,
2801
- tools: list[type[BaseTool] | Callable],
2802
- response_model: type[_ResponseModelT],
2803
- output_parser: Literal[None] = None,
2804
- json_mode: bool | None = None,
2805
- client: Any = None, # noqa: ANN401
2806
- call_params: CommonCallParams | GoogleCallParams | None = None,
2807
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2808
-
2809
-
2810
- @overload
2811
- def override(
2812
- provider_agnostic_call: Callable[_P, _R],
2813
- *,
2814
- provider: Literal["google"],
2815
- model: str,
2816
- stream: Literal[None, False] = None,
2817
- tools: list[type[BaseTool] | Callable],
2818
- response_model: type[_ResponseModelT],
2819
- output_parser: Literal[None] = None,
2820
- json_mode: bool | None = None,
2821
- client: Any = None, # noqa: ANN401
2822
- call_params: CommonCallParams | GoogleCallParams | None = None,
2823
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2824
-
2825
-
2826
- # Groq (_ResponseModelT | CallResponse)
2827
- @overload
2828
- def override(
2829
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2830
- *,
2831
- provider: Literal["groq"],
2832
- model: str,
2833
- stream: Literal[None, False] = None,
2834
- tools: list[type[BaseTool] | Callable],
2835
- response_model: type[_ResponseModelT],
2836
- output_parser: Literal[None] = None,
2837
- json_mode: bool | None = None,
2838
- client: Any = None, # noqa: ANN401
2839
- call_params: CommonCallParams | GroqCallParams | None = None,
2840
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2841
-
2842
-
2843
- @overload
2844
- def override(
2845
- provider_agnostic_call: Callable[_P, _R],
2846
- *,
2847
- provider: Literal["groq"],
2848
- model: str,
2849
- stream: Literal[None, False] = None,
2850
- tools: list[type[BaseTool] | Callable],
2851
- response_model: type[_ResponseModelT],
2852
- output_parser: Literal[None] = None,
2853
- json_mode: bool | None = None,
2854
- client: Any = None, # noqa: ANN401
2855
- call_params: CommonCallParams | GroqCallParams | None = None,
2856
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2857
-
2858
-
2859
- # LiteLLM (_ResponseModelT | CallResponse)
2860
- @overload
2861
- def override(
2862
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2863
- *,
2864
- provider: Literal["litellm"],
2865
- model: str,
2866
- stream: Literal[None, False] = None,
2867
- tools: list[type[BaseTool] | Callable],
2868
- response_model: type[_ResponseModelT],
2869
- output_parser: Literal[None] = None,
2870
- json_mode: bool | None = None,
2871
- client: Any = None, # noqa: ANN401
2872
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
2873
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2874
-
2875
-
2876
- @overload
2877
- def override(
2878
- provider_agnostic_call: Callable[_P, _R],
2879
- *,
2880
- provider: Literal["litellm"],
2881
- model: str,
2882
- stream: Literal[None, False] = None,
2883
- tools: list[type[BaseTool] | Callable],
2884
- response_model: type[_ResponseModelT],
2885
- output_parser: Literal[None] = None,
2886
- json_mode: bool | None = None,
2887
- client: Any = None, # noqa: ANN401
2888
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
2889
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2890
-
2891
-
2892
- # Mistral (_ResponseModelT | CallResponse)
2893
- @overload
2894
- def override(
2895
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2896
- *,
2897
- provider: Literal["mistral"],
2898
- model: str,
2899
- stream: Literal[None, False] = None,
2900
- tools: list[type[BaseTool] | Callable],
2901
- response_model: type[_ResponseModelT],
2902
- output_parser: Literal[None] = None,
2903
- json_mode: bool | None = None,
2904
- client: Any = None, # noqa: ANN401
2905
- call_params: CommonCallParams | MistralCallParams | None = None,
2906
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2907
-
2908
-
2909
- @overload
2910
- def override(
2911
- provider_agnostic_call: Callable[_P, _R],
2912
- *,
2913
- provider: Literal["mistral"],
2914
- model: str,
2915
- stream: Literal[None, False] = None,
2916
- tools: list[type[BaseTool] | Callable],
2917
- response_model: type[_ResponseModelT],
2918
- output_parser: Literal[None] = None,
2919
- json_mode: bool | None = None,
2920
- client: Any = None, # noqa: ANN401
2921
- call_params: CommonCallParams | MistralCallParams | None = None,
2922
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2923
-
2924
-
2925
- # OpenAI (_ResponseModelT | CallResponse)
2926
- @overload
2927
- def override(
2928
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2929
- *,
2930
- provider: Literal["openai"],
2931
- model: str,
2932
- stream: Literal[None, False] = None,
2933
- tools: list[type[BaseTool] | Callable],
2934
- response_model: type[_ResponseModelT],
2935
- output_parser: Literal[None] = None,
2936
- json_mode: bool | None = None,
2937
- client: Any = None, # noqa: ANN401
2938
- call_params: CommonCallParams | OpenAICallParams | None = None,
2939
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2940
-
2941
-
2942
- @overload
2943
- def override(
2944
- provider_agnostic_call: Callable[_P, _R],
2945
- *,
2946
- provider: Literal["openai"],
2947
- model: str,
2948
- stream: Literal[None, False] = None,
2949
- tools: list[type[BaseTool] | Callable],
2950
- response_model: type[_ResponseModelT],
2951
- output_parser: Literal[None] = None,
2952
- json_mode: bool | None = None,
2953
- client: Any = None, # noqa: ANN401
2954
- call_params: CommonCallParams | OpenAICallParams | None = None,
2955
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2956
-
2957
-
2958
- # Vertex (_ResponseModelT | CallResponse)
2959
- @overload
2960
- def override(
2961
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2962
- *,
2963
- provider: Literal["vertex"],
2964
- model: str,
2965
- stream: Literal[None, False] = None,
2966
- tools: list[type[BaseTool] | Callable],
2967
- response_model: type[_ResponseModelT],
2968
- output_parser: Literal[None] = None,
2969
- json_mode: bool | None = None,
2970
- client: Any = None, # noqa: ANN401
2971
- call_params: CommonCallParams | VertexCallParams | None = None,
2972
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
2973
-
2974
-
2975
- @overload
2976
- def override(
2977
- provider_agnostic_call: Callable[_P, _R],
2978
- *,
2979
- provider: Literal["vertex"],
2980
- model: str,
2981
- stream: Literal[None, False] = None,
2982
- tools: list[type[BaseTool] | Callable],
2983
- response_model: type[_ResponseModelT],
2984
- output_parser: Literal[None] = None,
2985
- json_mode: bool | None = None,
2986
- client: Any = None, # noqa: ANN401
2987
- call_params: CommonCallParams | VertexCallParams | None = None,
2988
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
2989
-
2990
-
2991
- # XAI (_ResponseModelT | CallResponse)
2992
- @overload
2993
- def override(
2994
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
2995
- *,
2996
- provider: Literal["xai"],
2997
- model: str,
2998
- stream: Literal[None, False] = None,
2999
- tools: list[type[BaseTool] | Callable],
3000
- response_model: type[_ResponseModelT],
3001
- output_parser: Literal[None] = None,
3002
- json_mode: bool | None = None,
3003
- client: Any = None, # noqa: ANN401
3004
- call_params: CommonCallParams | XAICallParams | None = None,
3005
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
3006
-
3007
-
3008
- @overload
3009
- def override(
3010
- provider_agnostic_call: Callable[_P, _R],
3011
- *,
3012
- provider: Literal["xai"],
3013
- model: str,
3014
- stream: Literal[None, False] = None,
3015
- tools: list[type[BaseTool] | Callable],
3016
- response_model: type[_ResponseModelT],
3017
- output_parser: Literal[None] = None,
3018
- json_mode: bool | None = None,
3019
- client: Any = None, # noqa: ANN401
3020
- call_params: CommonCallParams | XAICallParams | None = None,
3021
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
3022
-
3023
-
3024
- # Generic (_ResponseModelT | CallResponse)
3025
- @overload
3026
- def override(
3027
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3028
- *,
3029
- provider: LocalProvider | None = None,
3030
- model: str | None = None,
3031
- stream: Literal[None, False] = None,
3032
- tools: list[type[BaseTool] | Callable],
3033
- response_model: type[_ResponseModelT],
3034
- output_parser: Literal[None] = None,
3035
- json_mode: bool | None = None,
3036
- client: Any = None, # noqa: ANN401
3037
- call_params: CommonCallParams | None = None,
3038
- ) -> Callable[_P, Awaitable[_ResponseModelT | CallResponse]]: ...
3039
-
3040
-
3041
- @overload
3042
- def override(
3043
- provider_agnostic_call: Callable[_P, _R],
3044
- *,
3045
- provider: LocalProvider | None = None,
3046
- model: str | None = None,
3047
- stream: Literal[None, False] = None,
3048
- tools: list[type[BaseTool] | Callable],
3049
- response_model: type[_ResponseModelT],
3050
- output_parser: Literal[None] = None,
3051
- json_mode: bool | None = None,
3052
- client: Any = None, # noqa: ANN401
3053
- call_params: CommonCallParams | None = None,
3054
- ) -> Callable[_P, _ResponseModelT | CallResponse]: ...
3055
-
3056
-
3057
- ### (_ParsedOutputT | CallResponse) ###
3058
- # Anthropic (_ParsedOutputT | CallResponse)
3059
- @overload
3060
- def override(
3061
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3062
- *,
3063
- provider: Literal["anthropic"],
3064
- model: str,
3065
- stream: Literal[None, False] = None,
3066
- tools: list[type[BaseTool] | Callable],
3067
- response_model: type[_ResponseModelT],
3068
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3069
- json_mode: bool | None = None,
3070
- client: Any = None, # noqa: ANN401
3071
- call_params: CommonCallParams | AnthropicCallParams | None = None,
3072
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3073
-
3074
-
3075
- @overload
3076
- def override(
3077
- provider_agnostic_call: Callable[_P, _R],
3078
- *,
3079
- provider: Literal["anthropic"],
3080
- model: str,
3081
- stream: Literal[None, False] = None,
3082
- tools: list[type[BaseTool] | Callable],
3083
- response_model: type[_ResponseModelT],
3084
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3085
- json_mode: bool | None = None,
3086
- client: Any = None, # noqa: ANN401
3087
- call_params: CommonCallParams | AnthropicCallParams | None = None,
3088
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3089
-
3090
-
3091
- # Azure (_ParsedOutputT | CallResponse)
3092
- @overload
3093
- def override(
3094
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3095
- *,
3096
- provider: Literal["azure"],
3097
- model: str,
3098
- stream: Literal[None, False] = None,
3099
- tools: list[type[BaseTool] | Callable],
3100
- response_model: type[_ResponseModelT],
3101
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3102
- json_mode: bool | None = None,
3103
- client: Any = None, # noqa: ANN401
3104
- call_params: CommonCallParams | AzureCallParams | None = None,
3105
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3106
-
3107
-
3108
- @overload
3109
- def override(
3110
- provider_agnostic_call: Callable[_P, _R],
3111
- *,
3112
- provider: Literal["azure"],
3113
- model: str,
3114
- stream: Literal[None, False] = None,
3115
- tools: list[type[BaseTool] | Callable],
3116
- response_model: type[_ResponseModelT],
3117
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3118
- json_mode: bool | None = None,
3119
- client: Any = None, # noqa: ANN401
3120
- call_params: CommonCallParams | AzureCallParams | None = None,
3121
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3122
-
3123
-
3124
- # Bedrock (_ParsedOutputT | CallResponse)
3125
- @overload
3126
- def override(
3127
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3128
- *,
3129
- provider: Literal["bedrock"],
3130
- model: str,
3131
- stream: Literal[None, False] = None,
3132
- tools: list[type[BaseTool] | Callable],
3133
- response_model: type[_ResponseModelT],
3134
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3135
- json_mode: bool | None = None,
3136
- client: Any = None, # noqa: ANN401
3137
- call_params: CommonCallParams | BedrockCallParams | None = None,
3138
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3139
-
3140
-
3141
- @overload
3142
- def override(
3143
- provider_agnostic_call: Callable[_P, _R],
3144
- *,
3145
- provider: Literal["bedrock"],
3146
- model: str,
3147
- stream: Literal[None, False] = None,
3148
- tools: list[type[BaseTool] | Callable],
3149
- response_model: type[_ResponseModelT],
3150
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3151
- json_mode: bool | None = None,
3152
- client: Any = None, # noqa: ANN401
3153
- call_params: CommonCallParams | BedrockCallParams | None = None,
3154
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3155
-
3156
-
3157
- # Cohere (_ParsedOutputT | CallResponse)
3158
- @overload
3159
- def override(
3160
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3161
- *,
3162
- provider: Literal["cohere"],
3163
- model: str,
3164
- stream: Literal[None, False] = None,
3165
- tools: list[type[BaseTool] | Callable],
3166
- response_model: type[_ResponseModelT],
3167
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3168
- json_mode: bool | None = None,
3169
- client: Any = None, # noqa: ANN401
3170
- call_params: CommonCallParams | CohereCallParams | None = None,
3171
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3172
-
3173
-
3174
- @overload
3175
- def override(
3176
- provider_agnostic_call: Callable[_P, _R],
3177
- *,
3178
- provider: Literal["cohere"],
3179
- model: str,
3180
- stream: Literal[None, False] = None,
3181
- tools: list[type[BaseTool] | Callable],
3182
- response_model: type[_ResponseModelT],
3183
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3184
- json_mode: bool | None = None,
3185
- client: Any = None, # noqa: ANN401
3186
- call_params: CommonCallParams | CohereCallParams | None = None,
3187
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3188
-
3189
-
3190
- # Gemini (_ParsedOutputT | CallResponse)
3191
- @overload
3192
- def override(
3193
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3194
- *,
3195
- provider: Literal["gemini"],
3196
- model: str,
3197
- stream: Literal[None, False] = None,
3198
- tools: list[type[BaseTool] | Callable],
3199
- response_model: type[_ResponseModelT],
3200
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3201
- json_mode: bool | None = None,
3202
- client: Any = None, # noqa: ANN401
3203
- call_params: CommonCallParams | GeminiCallParams | None = None,
3204
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3205
-
3206
-
3207
- @overload
3208
- def override(
3209
- provider_agnostic_call: Callable[_P, _R],
3210
- *,
3211
- provider: Literal["gemini"],
3212
- model: str,
3213
- stream: Literal[None, False] = None,
3214
- tools: list[type[BaseTool] | Callable],
3215
- response_model: type[_ResponseModelT],
3216
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3217
- json_mode: bool | None = None,
3218
- client: Any = None, # noqa: ANN401
3219
- call_params: CommonCallParams | GeminiCallParams | None = None,
3220
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3221
-
3222
-
3223
- # Google (_ParsedOutputT | CallResponse)
3224
- @overload
3225
- def override(
3226
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3227
- *,
3228
- provider: Literal["google"],
3229
- model: str,
3230
- stream: Literal[None, False] = None,
3231
- tools: list[type[BaseTool] | Callable],
3232
- response_model: type[_ResponseModelT],
3233
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3234
- json_mode: bool | None = None,
3235
- client: Any = None, # noqa: ANN401
3236
- call_params: CommonCallParams | GoogleCallParams | None = None,
3237
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3238
-
3239
-
3240
- @overload
3241
- def override(
3242
- provider_agnostic_call: Callable[_P, _R],
3243
- *,
3244
- provider: Literal["google"],
3245
- model: str,
3246
- stream: Literal[None, False] = None,
3247
- tools: list[type[BaseTool] | Callable],
3248
- response_model: type[_ResponseModelT],
3249
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3250
- json_mode: bool | None = None,
3251
- client: Any = None, # noqa: ANN401
3252
- call_params: CommonCallParams | GoogleCallParams | None = None,
3253
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3254
-
3255
-
3256
- # Groq (_ParsedOutputT | CallResponse)
3257
- @overload
3258
- def override(
3259
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3260
- *,
3261
- provider: Literal["groq"],
3262
- model: str,
3263
- stream: Literal[None, False] = None,
3264
- tools: list[type[BaseTool] | Callable],
3265
- response_model: type[_ResponseModelT],
3266
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3267
- json_mode: bool | None = None,
3268
- client: Any = None, # noqa: ANN401
3269
- call_params: CommonCallParams | GroqCallParams | None = None,
3270
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3271
-
3272
-
3273
- @overload
3274
- def override(
3275
- provider_agnostic_call: Callable[_P, _R],
3276
- *,
3277
- provider: Literal["groq"],
3278
- model: str,
3279
- stream: Literal[None, False] = None,
3280
- tools: list[type[BaseTool] | Callable],
3281
- response_model: type[_ResponseModelT],
3282
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3283
- json_mode: bool | None = None,
3284
- client: Any = None, # noqa: ANN401
3285
- call_params: CommonCallParams | GroqCallParams | None = None,
3286
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3287
-
3288
-
3289
- # LiteLLM (_ParsedOutputT | CallResponse)
3290
- @overload
3291
- def override(
3292
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3293
- *,
3294
- provider: Literal["litellm"],
3295
- model: str,
3296
- stream: Literal[None, False] = None,
3297
- tools: list[type[BaseTool] | Callable],
3298
- response_model: type[_ResponseModelT],
3299
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3300
- json_mode: bool | None = None,
3301
- client: Any = None, # noqa: ANN401
3302
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
3303
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3304
-
3305
-
3306
- @overload
3307
- def override(
3308
- provider_agnostic_call: Callable[_P, _R],
3309
- *,
3310
- provider: Literal["litellm"],
3311
- model: str,
3312
- stream: Literal[None, False] = None,
3313
- tools: list[type[BaseTool] | Callable],
3314
- response_model: type[_ResponseModelT],
3315
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3316
- json_mode: bool | None = None,
3317
- client: Any = None, # noqa: ANN401
3318
- call_params: CommonCallParams | LiteLLMCallParams | None = None,
3319
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3320
-
3321
-
3322
- # Mistral (_ParsedOutputT | CallResponse)
3323
- @overload
3324
- def override(
3325
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3326
- *,
3327
- provider: Literal["mistral"],
3328
- model: str,
3329
- stream: Literal[None, False] = None,
3330
- tools: list[type[BaseTool] | Callable],
3331
- response_model: type[_ResponseModelT],
3332
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3333
- json_mode: bool | None = None,
3334
- client: Any = None, # noqa: ANN401
3335
- call_params: CommonCallParams | MistralCallParams | None = None,
3336
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3337
-
3338
-
3339
- @overload
3340
- def override(
3341
- provider_agnostic_call: Callable[_P, _R],
3342
- *,
3343
- provider: Literal["mistral"],
3344
- model: str,
3345
- stream: Literal[None, False] = None,
3346
- tools: list[type[BaseTool] | Callable],
3347
- response_model: type[_ResponseModelT],
3348
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3349
- json_mode: bool | None = None,
3350
- client: Any = None, # noqa: ANN401
3351
- call_params: CommonCallParams | MistralCallParams | None = None,
3352
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3353
-
3354
-
3355
- # OpenAI (_ParsedOutputT | CallResponse)
3356
- @overload
3357
- def override(
3358
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3359
- *,
3360
- provider: Literal["openai"],
3361
- model: str,
3362
- stream: Literal[None, False] = None,
3363
- tools: list[type[BaseTool] | Callable],
3364
- response_model: type[_ResponseModelT],
3365
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3366
- json_mode: bool | None = None,
3367
- client: Any = None, # noqa: ANN401
3368
- call_params: CommonCallParams | OpenAICallParams | None = None,
3369
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3370
-
3371
-
3372
- @overload
3373
- def override(
3374
- provider_agnostic_call: Callable[_P, _R],
3375
- *,
3376
- provider: Literal["openai"],
3377
- model: str,
3378
- stream: Literal[None, False] = None,
3379
- tools: list[type[BaseTool] | Callable],
3380
- response_model: type[_ResponseModelT],
3381
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3382
- json_mode: bool | None = None,
3383
- client: Any = None, # noqa: ANN401
3384
- call_params: CommonCallParams | OpenAICallParams | None = None,
3385
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3386
-
3387
-
3388
- # Vertex (_ParsedOutputT | CallResponse)
3389
- @overload
3390
- def override(
3391
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3392
- *,
3393
- provider: Literal["vertex"],
3394
- model: str,
3395
- stream: Literal[None, False] = None,
3396
- tools: list[type[BaseTool] | Callable],
3397
- response_model: type[_ResponseModelT],
3398
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3399
- json_mode: bool | None = None,
3400
- client: Any = None, # noqa: ANN401
3401
- call_params: CommonCallParams | VertexCallParams | None = None,
3402
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3403
-
3404
-
3405
- @overload
3406
- def override(
3407
- provider_agnostic_call: Callable[_P, _R],
3408
- *,
3409
- provider: Literal["vertex"],
3410
- model: str,
3411
- stream: Literal[None, False] = None,
3412
- tools: list[type[BaseTool] | Callable],
3413
- response_model: type[_ResponseModelT],
3414
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3415
- json_mode: bool | None = None,
3416
- client: Any = None, # noqa: ANN401
3417
- call_params: CommonCallParams | VertexCallParams | None = None,
3418
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3419
-
3420
-
3421
- # XAI (_ParsedOutputT | CallResponse)
3422
- @overload
3423
- def override(
3424
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3425
- *,
3426
- provider: Literal["xai"],
3427
- model: str,
3428
- stream: Literal[None, False] = None,
3429
- tools: list[type[BaseTool] | Callable],
3430
- response_model: type[_ResponseModelT],
3431
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3432
- json_mode: bool | None = None,
3433
- client: Any = None, # noqa: ANN401
3434
- call_params: CommonCallParams | XAICallParams | None = None,
3435
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3436
-
3437
-
3438
- @overload
3439
- def override(
3440
- provider_agnostic_call: Callable[_P, _R],
3441
- *,
3442
- provider: Literal["xai"],
3443
- model: str,
3444
- stream: Literal[None, False] = None,
3445
- tools: list[type[BaseTool] | Callable],
3446
- response_model: type[_ResponseModelT],
3447
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3448
- json_mode: bool | None = None,
3449
- client: Any = None, # noqa: ANN401
3450
- call_params: CommonCallParams | XAICallParams | None = None,
3451
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3452
-
3453
-
3454
- # Generic (_ParsedOutputT | CallResponse)
3455
- @overload
3456
- def override(
3457
- provider_agnostic_call: Callable[_P, Awaitable[_R]],
3458
- *,
3459
- provider: LocalProvider | None = None,
3460
- model: str | None = None,
3461
- stream: Literal[None, False] = None,
3462
- tools: list[type[BaseTool] | Callable],
3463
- response_model: type[_ResponseModelT],
3464
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3465
- json_mode: bool | None = None,
3466
- client: Any = None, # noqa: ANN401
3467
- call_params: CommonCallParams | None = None,
3468
- ) -> Callable[_P, Awaitable[_ParsedOutputT | CallResponse]]: ...
3469
-
3470
-
3471
- @overload
3472
- def override(
3473
- provider_agnostic_call: Callable[_P, _R],
3474
- *,
3475
- provider: LocalProvider | None = None,
3476
- model: str | None = None,
3477
- stream: Literal[None, False] = None,
3478
- tools: list[type[BaseTool] | Callable],
3479
- response_model: type[_ResponseModelT],
3480
- output_parser: Callable[[_ResponseModelT], _ParsedOutputT],
3481
- json_mode: bool | None = None,
3482
- client: Any = None, # noqa: ANN401
3483
- call_params: CommonCallParams | None = None,
3484
- ) -> Callable[_P, _ParsedOutputT | CallResponse]: ...
3485
-
3486
-
3487
- ### ORIGINAL DEFINITION ###
3488
- def override(
3489
- provider_agnostic_call: Callable[_P, Awaitable[_R]] | Callable[_P, _R],
3490
- *,
3491
- provider: Provider | LocalProvider | None = None,
3492
- model: str | None = None,
3493
- stream: bool | StreamConfig | None = None,
3494
- tools: list[type[BaseTool] | Callable] | None = None,
3495
- response_model: type[_ResponseModelT] | None = None,
3496
- output_parser: Callable[[Any], _ParsedOutputT] | None = None,
3497
- json_mode: bool | None = None,
3498
- client: Any = None, # noqa: ANN401
3499
- call_params: CommonCallParams
3500
- | AnthropicCallParams
3501
- | AzureCallParams
3502
- | BedrockCallParams
3503
- | CohereCallParams
3504
- | GeminiCallParams
3505
- | GoogleCallParams
3506
- | GroqCallParams
3507
- | MistralCallParams
3508
- | OpenAICallParams
3509
- | VertexCallParams
3510
- | XAICallParams
3511
- | None = None,
3512
- ) -> Callable[
3513
- _P,
3514
- Awaitable[_R]
3515
- | Awaitable[CallResponse]
3516
- | Awaitable[Stream]
3517
- | Awaitable[_ResponseModelT]
3518
- | Awaitable[_ParsedOutputT]
3519
- | Awaitable[AsyncIterable[_ResponseModelT]]
3520
- | Awaitable[_ResponseModelT | CallResponse]
3521
- | Awaitable[_ParsedOutputT | CallResponse]
3522
- | _R
3523
- | CallResponse
3524
- | Stream
3525
- | _ResponseModelT
3526
- | _ParsedOutputT
3527
- | Iterable[_ResponseModelT]
3528
- | (_ResponseModelT | CallResponse)
3529
- | (_ParsedOutputT | CallResponse),
3530
- ]:
3531
- """Overrides the provider-specific call with the specified provider.
3532
-
3533
- This function creates a new function that wraps the original function
3534
- and temporarily sets a context with the specified overrides when called.
3535
- It supports both setting overrides (provider, model, client, call_params)
3536
- and structural overrides (stream, tools, response_model, output_parser).
3537
-
3538
- Example:
3539
- ```python
3540
- @llm.call(provider="openai", model="gpt-4o-mini")
3541
- def recommend_book(genre: str) -> str:
3542
- return f"Recommend a {genre} book"
3543
-
3544
- # Override the model for all calls to the function
3545
- recommend_claude_book = override(
3546
- recommend_book,
3547
- provider="anthropic",
3548
- model="claude-3-5-sonnet-20240620"
3549
- )
3550
- response = recommend_claude_book("fantasy") # Uses claude-3-5-sonnet
3551
-
3552
- # Override to use streaming
3553
- stream_book = override(
3554
- recommend_book,
3555
- stream=True
3556
- )
3557
- stream = stream_book("fantasy") # Returns a Stream object
3558
- ```
3559
-
3560
- Args:
3561
- provider_agnostic_call: The provider-agnostic call to override.
3562
- provider: The provider to override with.
3563
- model: The model to override with.
3564
- stream: Whether to stream the response.
3565
- tools: The tools to use for the LLM API call.
3566
- response_model: The response model to structure the response into.
3567
- output_parser: A function to parse the response.
3568
- json_mode: Whether to use JSON mode.
3569
- client: The client to override with.
3570
- call_params: The call params to override with.
3571
-
3572
- Returns:
3573
- The overridden function with appropriate return type.
3574
- """
3575
- if (provider and not model) or (model and not provider):
3576
- raise ValueError(
3577
- "Provider and model must both be overridden if either is overridden."
3578
- )
3579
-
3580
- if fn_is_async(provider_agnostic_call):
3581
-
3582
- @wraps(provider_agnostic_call)
3583
- async def inner_async(
3584
- *args: _P.args, **kwargs: _P.kwargs
3585
- ) -> (
3586
- Awaitable[_R]
3587
- | Awaitable[CallResponse]
3588
- | Awaitable[Stream]
3589
- | Awaitable[_ResponseModelT]
3590
- | Awaitable[_ParsedOutputT]
3591
- | Awaitable[AsyncIterable[_ResponseModelT]]
3592
- | Awaitable[_ResponseModelT | CallResponse]
3593
- | Awaitable[_ParsedOutputT | CallResponse]
3594
- ):
3595
- # THIS IS NOT TYPE SAFE BUT WILL WORK SO WE IGNORE
3596
- with _context(
3597
- provider=provider,
3598
- model=model,
3599
- stream=stream,
3600
- tools=tools,
3601
- response_model=response_model,
3602
- output_parser=output_parser,
3603
- json_mode=json_mode,
3604
- client=client,
3605
- call_params=call_params,
3606
- ):
3607
- return await provider_agnostic_call(*args, **kwargs) # pyright: ignore [reportReturnType]
3608
-
3609
- return inner_async # pyright: ignore [reportReturnType]
3610
- else:
3611
-
3612
- @wraps(provider_agnostic_call)
3613
- def inner(
3614
- *args: _P.args, **kwargs: _P.kwargs
3615
- ) -> (
3616
- _R
3617
- | CallResponse
3618
- | Stream
3619
- | _ResponseModelT
3620
- | _ParsedOutputT
3621
- | Iterable[_ResponseModelT]
3622
- | (_ResponseModelT | CallResponse)
3623
- | (_ParsedOutputT | CallResponse)
3624
- ):
3625
- # THIS IS NOT TYPE SAFE BUT WILL WORK SO WE IGNORE
3626
- with _context(
3627
- provider=provider,
3628
- model=model,
3629
- stream=stream,
3630
- tools=tools,
3631
- response_model=response_model,
3632
- output_parser=output_parser,
3633
- json_mode=json_mode,
3634
- client=client,
3635
- call_params=call_params,
3636
- ):
3637
- return provider_agnostic_call(*args, **kwargs)
3638
-
3639
- return inner