revert gpt5 integration (#10228)

### What problem does this PR solve?

  Revert back to chat.completions.

### Type of change

- [ ] Bug Fix (non-breaking change which fixes an issue)
- [ ] New Feature (non-breaking change which adds functionality)
- [ ] Documentation Update
- [ ] Refactoring
- [ ] Performance Improvement
- [x] Other (please describe):
  Revert back to chat.completions.
This commit is contained in:
Billy Bao
2025-09-23 16:06:12 +08:00
committed by GitHub
parent 1c84d1b562
commit 10cbbb76f8
3 changed files with 15 additions and 16 deletions

View File

@ -182,7 +182,7 @@ def chat_completion_openai_like(tenant_id, chat_id):
stream = True stream = True
reference = True reference = True
completion = client.responses.create( completion = client.chat.completions.create(
model=model, model=model,
messages=[ messages=[
{"role": "system", "content": "You are a helpful assistant."}, {"role": "system", "content": "You are a helpful assistant."},

View File

@ -144,7 +144,7 @@ class Base(ABC):
if self.model_name.lower().find("qwen3") >= 0: if self.model_name.lower().find("qwen3") >= 0:
kwargs["extra_body"] = {"enable_thinking": False} kwargs["extra_body"] = {"enable_thinking": False}
response = self.client.responses.create(model=self.model_name, messages=history, **gen_conf, **kwargs) response = self.client.chat.completions.create(model=self.model_name, messages=history, **gen_conf, **kwargs)
if any([not response.choices, not response.choices[0].message, not response.choices[0].message.content]): if any([not response.choices, not response.choices[0].message, not response.choices[0].message.content]):
return "", 0 return "", 0
@ -158,9 +158,9 @@ class Base(ABC):
reasoning_start = False reasoning_start = False
if kwargs.get("stop") or "stop" in gen_conf: if kwargs.get("stop") or "stop" in gen_conf:
response = self.client.responses.create(model=self.model_name, messages=history, stream=True, **gen_conf, stop=kwargs.get("stop")) response = self.client.chat.completions.create(model=self.model_name, messages=history, stream=True, **gen_conf, stop=kwargs.get("stop"))
else: else:
response = self.client.responses.create(model=self.model_name, messages=history, stream=True, **gen_conf) response = self.client.chat.completions.create(model=self.model_name, messages=history, stream=True, **gen_conf)
for resp in response: for resp in response:
if not resp.choices: if not resp.choices:
@ -266,7 +266,7 @@ class Base(ABC):
try: try:
for _ in range(self.max_rounds + 1): for _ in range(self.max_rounds + 1):
logging.info(f"{self.tools=}") logging.info(f"{self.tools=}")
response = self.client.responses.create(model=self.model_name, messages=history, tools=self.tools, tool_choice="auto", **gen_conf) response = self.client.chat.completions.create(model=self.model_name, messages=history, tools=self.tools, tool_choice="auto", **gen_conf)
tk_count += self.total_token_count(response) tk_count += self.total_token_count(response)
if any([not response.choices, not response.choices[0].message]): if any([not response.choices, not response.choices[0].message]):
raise Exception(f"500 response structure error. Response: {response}") raise Exception(f"500 response structure error. Response: {response}")
@ -351,7 +351,7 @@ class Base(ABC):
for _ in range(self.max_rounds + 1): for _ in range(self.max_rounds + 1):
reasoning_start = False reasoning_start = False
logging.info(f"{tools=}") logging.info(f"{tools=}")
response = self.client.responses.create(model=self.model_name, messages=history, stream=True, tools=tools, tool_choice="auto", **gen_conf) response = self.client.chat.completions.create(model=self.model_name, messages=history, stream=True, tools=tools, tool_choice="auto", **gen_conf)
final_tool_calls = {} final_tool_calls = {}
answer = "" answer = ""
for resp in response: for resp in response:
@ -414,7 +414,7 @@ class Base(ABC):
logging.warning(f"Exceed max rounds: {self.max_rounds}") logging.warning(f"Exceed max rounds: {self.max_rounds}")
history.append({"role": "user", "content": f"Exceed max rounds: {self.max_rounds}"}) history.append({"role": "user", "content": f"Exceed max rounds: {self.max_rounds}"})
response = self.client.responses.create(model=self.model_name, messages=history, stream=True, **gen_conf) response = self.client.chat.completions.create(model=self.model_name, messages=history, stream=True, **gen_conf)
for resp in response: for resp in response:
if any([not resp.choices, not resp.choices[0].delta, not hasattr(resp.choices[0].delta, "content")]): if any([not resp.choices, not resp.choices[0].delta, not hasattr(resp.choices[0].delta, "content")]):
raise Exception("500 response structure error.") raise Exception("500 response structure error.")
@ -576,7 +576,7 @@ class BaiChuanChat(Base):
} }
def _chat(self, history, gen_conf={}, **kwargs): def _chat(self, history, gen_conf={}, **kwargs):
response = self.client.responses.create( response = self.client.chat.completions.create(
model=self.model_name, model=self.model_name,
messages=history, messages=history,
extra_body={"tools": [{"type": "web_search", "web_search": {"enable": True, "search_mode": "performance_first"}}]}, extra_body={"tools": [{"type": "web_search", "web_search": {"enable": True, "search_mode": "performance_first"}}]},
@ -598,7 +598,7 @@ class BaiChuanChat(Base):
ans = "" ans = ""
total_tokens = 0 total_tokens = 0
try: try:
response = self.client.responses.create( response = self.client.chat.completions.create(
model=self.model_name, model=self.model_name,
messages=history, messages=history,
extra_body={"tools": [{"type": "web_search", "web_search": {"enable": True, "search_mode": "performance_first"}}]}, extra_body={"tools": [{"type": "web_search", "web_search": {"enable": True, "search_mode": "performance_first"}}]},
@ -668,7 +668,7 @@ class ZhipuChat(Base):
tk_count = 0 tk_count = 0
try: try:
logging.info(json.dumps(history, ensure_ascii=False, indent=2)) logging.info(json.dumps(history, ensure_ascii=False, indent=2))
response = self.client.responses.create(model=self.model_name, messages=history, stream=True, **gen_conf) response = self.client.chat.completions.create(model=self.model_name, messages=history, stream=True, **gen_conf)
for resp in response: for resp in response:
if not resp.choices[0].delta.content: if not resp.choices[0].delta.content:
continue continue
@ -1381,7 +1381,7 @@ class LiteLLMBase(ABC):
drop_params=True, drop_params=True,
timeout=self.timeout, timeout=self.timeout,
) )
# response = self.client.responses.create(model=self.model_name, messages=history, **gen_conf, **kwargs) # response = self.client.chat.completions.create(model=self.model_name, messages=history, **gen_conf, **kwargs)
if any([not response.choices, not response.choices[0].message, not response.choices[0].message.content]): if any([not response.choices, not response.choices[0].message, not response.choices[0].message.content]):
return "", 0 return "", 0

View File

@ -75,7 +75,7 @@ class Base(ABC):
def chat(self, system, history, gen_conf, images=[], **kwargs): def chat(self, system, history, gen_conf, images=[], **kwargs):
try: try:
response = self.client.responses.create( response = self.client.chat.completions.create(
model=self.model_name, model=self.model_name,
messages=self._form_history(system, history, images) messages=self._form_history(system, history, images)
) )
@ -87,7 +87,7 @@ class Base(ABC):
ans = "" ans = ""
tk_count = 0 tk_count = 0
try: try:
response = self.client.responses.create( response = self.client.chat.completions.create(
model=self.model_name, model=self.model_name,
messages=self._form_history(system, history, images), messages=self._form_history(system, history, images),
stream=True stream=True
@ -174,8 +174,7 @@ class GptV4(Base):
def describe(self, image): def describe(self, image):
b64 = self.image2base64(image) b64 = self.image2base64(image)
# Check if this is a GPT-5 model and use responses.create API res = self.client.chat.completions.create(
res = self.client.responses.create(
model=self.model_name, model=self.model_name,
messages=self.prompt(b64), messages=self.prompt(b64),
) )
@ -183,7 +182,7 @@ class GptV4(Base):
def describe_with_prompt(self, image, prompt=None): def describe_with_prompt(self, image, prompt=None):
b64 = self.image2base64(image) b64 = self.image2base64(image)
res = self.client.responses.create( res = self.client.chat.completions.create(
model=self.model_name, model=self.model_name,
messages=self.vision_llm_prompt(b64, prompt), messages=self.vision_llm_prompt(b64, prompt),
) )