From 8fc634311903ea604e62bdd01bf9b3dcd168fa82 Mon Sep 17 00:00:00 2001 From: zhangsongyang Date: Sun, 27 Apr 2025 11:31:07 +0000 Subject: [PATCH] Update --- opencompass/models/openai_api.py | 71 ++++++++++++++++---------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/opencompass/models/openai_api.py b/opencompass/models/openai_api.py index f48869c5..e67e866e 100644 --- a/opencompass/models/openai_api.py +++ b/opencompass/models/openai_api.py @@ -556,28 +556,27 @@ class OpenAI(BaseAPIModel): class OpenAISDK(OpenAI): - def __init__( - self, - path: str = 'gpt-3.5-turbo', - max_seq_len: int = 16384, - query_per_second: int = 1, - rpm_verbose: bool = False, - retry: int = 2, - key: str | List[str] = 'ENV', - org: str | List[str] | None = None, - meta_template: Dict | None = None, - openai_api_base: str | List[str] = OPENAISDK_API_BASE, - openai_proxy_url: Optional[str] = None, - mode: str = 'none', - logprobs: bool | None = False, - top_logprobs: int | None = None, - temperature: float | None = None, - tokenizer_path: str | None = None, - extra_body: Dict | None = None, - verbose: bool = False, - status_code_mappings: dict = {}, - think_tag: str = '', - ): + def __init__(self, + path: str = 'gpt-3.5-turbo', + max_seq_len: int = 16384, + query_per_second: int = 1, + rpm_verbose: bool = False, + retry: int = 2, + key: str | List[str] = 'ENV', + org: str | List[str] | None = None, + meta_template: Dict | None = None, + openai_api_base: str | List[str] = OPENAISDK_API_BASE, + openai_proxy_url: Optional[str] = None, + mode: str = 'none', + logprobs: bool | None = False, + top_logprobs: int | None = None, + temperature: float | None = None, + tokenizer_path: str | None = None, + extra_body: Dict | None = None, + verbose: bool = False, + http_client_cfg: dict = {}, + status_code_mappings: dict = {}, + think_tag: str = ''): super().__init__( path, max_seq_len, @@ -605,20 +604,20 @@ class OpenAISDK(OpenAI): else: self.openai_api_base = openai_api_base - if self.proxy_url is None: - self.openai_client = OpenAI(base_url=self.openai_api_base, - api_key=key) - else: - proxies = { - 'http://': self.proxy_url, - 'https://': self.proxy_url, - } + if self.proxy_url or http_client_cfg: + if self.proxy_url: + http_client_cfg['proxies'] = { + 'http://': self.proxy_url, + 'https://': self.proxy_url, + } + + self.openai_client = OpenAI( + base_url=self.openai_api_base, + api_key=key, + http_client=httpx.Client( + **http_client_cfg) if http_client_cfg else None, + ) - self.openai_client = OpenAI( - base_url=self.openai_api_base, - api_key=key, - http_client=httpx.Client(proxies=proxies), - ) if self.verbose: self.logger.info(f'Used openai_client: {self.openai_client}') self.status_code_mappings = status_code_mappings @@ -679,6 +678,7 @@ class OpenAISDK(OpenAI): try: if self.verbose: self.logger.info('Start calling OpenAI API') + responses = self.openai_client.chat.completions.create( **query_data, timeout=timeout) # timeout in seconds if self.verbose: @@ -689,7 +689,6 @@ class OpenAISDK(OpenAI): self.logger.info(responses) except Exception: pass # noqa F841 - # Check if response is empty or content is empty if (not responses.choices or not responses.choices[0].message or