evalstone/patches/local/evalscope/models/openai_responses.py.patch
sora 13274243a0 Bump vendored EvalScope and add K3-ready DPV4 configs.
Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 07:30:48 +00:00

105 lines
4.4 KiB
Diff

--- /tmp/evalscope-sync/src-v191/evalscope/models/openai_responses.py 2026-07-21 03:18:18.000000000 +0000
+++ /data1/syy/evalscope/evalstone/evalscope/evalscope/models/openai_responses.py 2026-09-01 03:48:30.959904179 +0000
@@ -74,27 +74,29 @@
) -> ModelOutput:
request, tools, config = self._build_request(input, tools, tool_choice, config)
- try:
- t_start = time.monotonic()
- ttft: Optional[float] = None
-
- response = retry_call(
- self.client.responses.create,
- retries=config.retries,
- sleep_interval=config.retry_interval,
- **request,
- )
- if not self._is_response_object(response):
- response, ttft = collect_response_stream(response, request_start=t_start)
-
- total_time = time.monotonic() - t_start
- return self._build_output(response, tools, total_time, ttft)
-
- except (BadRequestError, UnprocessableEntityError, PermissionDeniedError) as ex:
- return self.handle_bad_request(ex)
- except ValueError as ex:
- logger.error(f'Model [{self.model_name}] returned an invalid response: {ex}')
- raise
+ with self._track_logical_request():
+ try:
+ t_start = time.monotonic()
+ ttft: Optional[float] = None
+
+ response = retry_call(
+ self.client.responses.create,
+ retries=config.retries,
+ sleep_interval=config.retry_interval,
+ on_attempt=self.request_stats.on_attempt,
+ **request,
+ )
+ if not self._is_response_object(response):
+ response, ttft = collect_response_stream(response, request_start=t_start)
+
+ total_time = time.monotonic() - t_start
+ return self._build_output(response, tools, total_time, ttft)
+
+ except (BadRequestError, UnprocessableEntityError, PermissionDeniedError) as ex:
+ return self.handle_bad_request(ex)
+ except ValueError as ex:
+ logger.error(f'Model [{self.model_name}] returned an invalid response: {ex}')
+ raise
async def generate_async(
self,
@@ -105,27 +107,29 @@
) -> ModelOutput:
request, tools, config = self._build_request(input, tools, tool_choice, config)
- try:
- t_start = time.monotonic()
- ttft: Optional[float] = None
-
- response = await async_retry_call(
- self.async_client.responses.create,
- retries=config.retries,
- sleep_interval=config.retry_interval,
- **request,
- )
- if not self._is_response_object(response):
- response, ttft = await async_collect_response_stream(response, request_start=t_start)
-
- total_time = time.monotonic() - t_start
- return self._build_output(response, tools, total_time, ttft)
-
- except (BadRequestError, UnprocessableEntityError, PermissionDeniedError) as ex:
- return self.handle_bad_request(ex)
- except ValueError as ex:
- logger.error(f'Model [{self.model_name}] returned an invalid response: {ex}')
- raise
+ with self._track_logical_request():
+ try:
+ t_start = time.monotonic()
+ ttft: Optional[float] = None
+
+ response = await async_retry_call(
+ self.async_client.responses.create,
+ retries=config.retries,
+ sleep_interval=config.retry_interval,
+ on_attempt=self.request_stats.on_attempt,
+ **request,
+ )
+ if not self._is_response_object(response):
+ response, ttft = await async_collect_response_stream(response, request_start=t_start)
+
+ total_time = time.monotonic() - t_start
+ return self._build_output(response, tools, total_time, ttft)
+
+ except (BadRequestError, UnprocessableEntityError, PermissionDeniedError) as ex:
+ return self.handle_bad_request(ex)
+ except ValueError as ex:
+ logger.error(f'Model [{self.model_name}] returned an invalid response: {ex}')
+ raise
def _build_request(
self,