File tree Expand file tree Collapse file tree 5 files changed +18
-0
lines changed
pydantic_ai_slim/pydantic_ai Expand file tree Collapse file tree 5 files changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -239,6 +239,7 @@ async def _messages_create(
239
239
timeout = model_settings .get ('timeout' , NOT_GIVEN ),
240
240
metadata = model_settings .get ('anthropic_metadata' , NOT_GIVEN ),
241
241
extra_headers = {'User-Agent' : get_user_agent ()},
242
+ extra_body = model_settings .get ('extra_body' ),
242
243
)
243
244
except APIStatusError as e :
244
245
if (status_code := e .status_code ) >= 400 :
Original file line number Diff line number Diff line change @@ -218,6 +218,7 @@ async def _completions_create(
218
218
frequency_penalty = model_settings .get ('frequency_penalty' , NOT_GIVEN ),
219
219
logit_bias = model_settings .get ('logit_bias' , NOT_GIVEN ),
220
220
extra_headers = {'User-Agent' : get_user_agent ()},
221
+ extra_body = model_settings .get ('extra_body' ),
221
222
)
222
223
except APIStatusError as e :
223
224
if (status_code := e .status_code ) >= 400 :
Original file line number Diff line number Diff line change @@ -284,6 +284,7 @@ async def _completions_create(
284
284
reasoning_effort = model_settings .get ('openai_reasoning_effort' , NOT_GIVEN ),
285
285
user = model_settings .get ('openai_user' , NOT_GIVEN ),
286
286
extra_headers = {'User-Agent' : get_user_agent ()},
287
+ extra_body = model_settings .get ('extra_body' ),
287
288
)
288
289
except APIStatusError as e :
289
290
if (status_code := e .status_code ) >= 400 :
@@ -623,6 +624,7 @@ async def _responses_create(
623
624
reasoning = reasoning ,
624
625
user = model_settings .get ('openai_user' , NOT_GIVEN ),
625
626
extra_headers = {'User-Agent' : get_user_agent ()},
627
+ extra_body = model_settings .get ('extra_body' ),
626
628
)
627
629
except APIStatusError as e :
628
630
if (status_code := e .status_code ) >= 400 :
Original file line number Diff line number Diff line change @@ -141,6 +141,16 @@ class ModelSettings(TypedDict, total=False):
141
141
* Cohere
142
142
"""
143
143
144
+ extra_body : object
145
+ """Extra body to send to the model.
146
+
147
+ Supported by:
148
+
149
+ * OpenAI
150
+ * Anthropic
151
+ * Groq
152
+ """
153
+
144
154
145
155
def merge_model_settings (base : ModelSettings | None , overrides : ModelSettings | None ) -> ModelSettings | None :
146
156
"""Merge two sets of model settings, preferring the overrides.
Original file line number Diff line number Diff line change @@ -176,6 +176,7 @@ async def test_request_simple_success(allow_model_requests: None):
176
176
'model' : 'gpt-4o' ,
177
177
'n' : 1 ,
178
178
'extra_headers' : {'User-Agent' : IsStr (regex = r'pydantic-ai\/.*' )},
179
+ 'extra_body' : None ,
179
180
},
180
181
{
181
182
'messages' : [
@@ -186,6 +187,7 @@ async def test_request_simple_success(allow_model_requests: None):
186
187
'model' : 'gpt-4o' ,
187
188
'n' : 1 ,
188
189
'extra_headers' : {'User-Agent' : IsStr (regex = r'pydantic-ai\/.*' )},
190
+ 'extra_body' : None ,
189
191
},
190
192
]
191
193
@@ -559,6 +561,7 @@ async def test_system_prompt_role(
559
561
'model' : 'gpt-4o' ,
560
562
'n' : 1 ,
561
563
'extra_headers' : {'User-Agent' : IsStr (regex = r'pydantic-ai\/.*' )},
564
+ 'extra_body' : None ,
562
565
}
563
566
]
564
567
@@ -635,6 +638,7 @@ async def test_image_url_input(allow_model_requests: None):
635
638
],
636
639
'n' : 1 ,
637
640
'extra_headers' : {'User-Agent' : IsStr (regex = r'pydantic-ai\/.*' )},
641
+ 'extra_body' : None ,
638
642
}
639
643
]
640
644
)
You can’t perform that action at this time.
0 commit comments