From c6642f8f412adeed09ccc3b5e8ce63bdc8a8192e Mon Sep 17 00:00:00 2001 From: octo-patch Date: Sun, 19 Apr 2026 09:19:04 +0800 Subject: [PATCH] fix: skip temperature for OpenAI reasoning/new models in visit tool (fixes #211) --- WebAgent/WebResummer/src/tool_visit.py | 12 +++++++----- inference/tool_visit.py | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/WebAgent/WebResummer/src/tool_visit.py b/WebAgent/WebResummer/src/tool_visit.py index 50d68d10..e7e74c29 100644 --- a/WebAgent/WebResummer/src/tool_visit.py +++ b/WebAgent/WebResummer/src/tool_visit.py @@ -86,13 +86,15 @@ def call_server(self, msgs, max_retries=2): api_key=SUMMARY_API_KEY, base_url=SUMMARY_URL, ) + # Reasoning models (o1, o3, o4) and some newer models (e.g. gpt-5) do not support + # the temperature parameter; skip it for those model families. + _NO_TEMPERATURE_PREFIXES = ("o1", "o3", "o4", "gpt-5") for attempt in range(max_retries): try: - chat_response = client.chat.completions.create( - model=SUMMARY_MODEL_NAME, - messages=msgs, - temperature=0.7 - ) + create_kwargs = dict(model=SUMMARY_MODEL_NAME, messages=msgs) + if not any(SUMMARY_MODEL_NAME.startswith(p) for p in _NO_TEMPERATURE_PREFIXES): + create_kwargs["temperature"] = 0.7 + chat_response = client.chat.completions.create(**create_kwargs) content = chat_response.choices[0].message.content print(content) if content: diff --git a/inference/tool_visit.py b/inference/tool_visit.py index 6a03bac1..e13edb33 100644 --- a/inference/tool_visit.py +++ b/inference/tool_visit.py @@ -104,13 +104,15 @@ def call_server(self, msgs, max_retries=2): api_key=api_key, base_url=url_llm, ) + # Reasoning models (o1, o3, o4) and some newer models (e.g. gpt-5) do not support + # the temperature parameter; skip it for those model families. + _NO_TEMPERATURE_PREFIXES = ("o1", "o3", "o4", "gpt-5") for attempt in range(max_retries): try: - chat_response = client.chat.completions.create( - model=model_name, - messages=msgs, - temperature=0.7 - ) + create_kwargs = dict(model=model_name, messages=msgs) + if not any(model_name.startswith(p) for p in _NO_TEMPERATURE_PREFIXES): + create_kwargs["temperature"] = 0.7 + chat_response = client.chat.completions.create(**create_kwargs) content = chat_response.choices[0].message.content if content: try: