Skip to content

Commit d32c683

Browse files
fix: skip JSON fallback when web_search tool is present
When web_search tools are used, falling back to JSON mode causes an error because OpenAI doesn't support JSON mode with web search. This fix detects web_search tools in lm_kwargs and skips the JSON fallback, raising the original error instead for better debugging. Fixes #8958
1 parent 8a7bcfd commit d32c683

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

dspy/adapters/chat_adapter.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ def __call__(
4444
# On context window exceeded error or already using JSONAdapter, we don't want to retry with a different
4545
# adapter.
4646
raise e
47+
48+
tools = lm_kwargs.get('tools', [])
49+
has_web_search = any(tool.get('type') == 'web_search' for tool in tools if isinstance(tool, dict))
50+
51+
if has_web_search:
52+
# Don't fall back to JSON mode with web search - raise the original error
53+
raise e
4754
return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs)
4855

4956
async def acall(

0 commit comments

Comments
 (0)