From 88e60ef81fe3c4ece249dc36be7fd64a3552355d Mon Sep 17 00:00:00 2001 From: wj-Mcat <1435130236@qq.com> Date: Thu, 11 Apr 2024 14:56:26 +0800 Subject: [PATCH 1/6] add qianfan models --- erniebot/src/erniebot/intro.py | 4 ++++ .../src/erniebot/resources/chat_completion.py | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/erniebot/src/erniebot/intro.py b/erniebot/src/erniebot/intro.py index aece8f8c4..da85e01e9 100644 --- a/erniebot/src/erniebot/intro.py +++ b/erniebot/src/erniebot/intro.py @@ -28,6 +28,10 @@ def list() -> List[Tuple[str, str]]: ("ernie-turbo", "文心大模型(ernie-turbo)"), ("ernie-4.0", "文心大模型(ernie-4.0)"), ("ernie-longtext", "文心大模型(ernie-longtext)"), + ("ernie_speed", " 文心大模型(ernie_speed)"), + ("ernie-speed-128k", " 文心大模型(ernie-speed-128k)"), + ("ernie-tiny-8k", " 文心大模型(ernie-tiny-8k)"), + ("ernie-char-8k", " 文心大模型(ernie-char-8k)"), ("ernie-text-embedding", "文心百中语义模型"), ("ernie-vilg-v2", "文心一格模型"), ] diff --git a/erniebot/src/erniebot/resources/chat_completion.py b/erniebot/src/erniebot/resources/chat_completion.py index ee0982836..a9ef192e0 100644 --- a/erniebot/src/erniebot/resources/chat_completion.py +++ b/erniebot/src/erniebot/resources/chat_completion.py @@ -64,6 +64,18 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "ernie-longtext": { "model_id": "ernie_bot_8k", }, + "ernie_speed": { + "model_id": "ernie_speed", + }, + "ernie-speed-128k": { + "model_id": "ernie-speed-128k", + }, + "ernie-tiny-8k": { + "model_id": "ernie-tiny-8k", + }, + "ernie-char-8k": { + "model_id": "ernie-char-8k", + }, }, }, APIType.AISTUDIO: { @@ -81,6 +93,18 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "ernie-longtext": { "model_id": "ernie_bot_8k", }, + "ernie_speed": { + "model_id": "ernie_speed", + }, + "ernie-speed-128k": { + "model_id": "ernie-speed-128k", + }, + "ernie-tiny-8k": { + "model_id": "ernie-tiny-8k", + }, + "ernie-char-8k": { + "model_id": "ernie-char-8k", + }, }, }, APIType.CUSTOM: { From 00246d6db9abebe86090303509d1b8828357d4fd Mon Sep 17 00:00:00 2001 From: wj-Mcat <1435130236@qq.com> Date: Thu, 11 Apr 2024 15:46:34 +0800 Subject: [PATCH 2/6] add check_models --- .../src/erniebot/resources/chat_completion.py | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/erniebot/src/erniebot/resources/chat_completion.py b/erniebot/src/erniebot/resources/chat_completion.py index e10c990e9..5c9dd7ffd 100644 --- a/erniebot/src/erniebot/resources/chat_completion.py +++ b/erniebot/src/erniebot/resources/chat_completion.py @@ -55,6 +55,9 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "ernie-3.5": { "model_id": "completions", }, + "ernie-3.5-8k": { + "model_id": "completions", + }, "ernie-turbo": { "model_id": "eb-instant", }, @@ -62,7 +65,8 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "model_id": "completions_pro", }, "ernie-longtext": { - "model_id": "ernie_bot_8k", + # ernie-longtext(ernie_bot_8k) will be deprecated in 2024.4.11 + "model_id": "completions", }, "ernie-speed": { "model_id": "ernie_speed", @@ -84,6 +88,9 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "ernie-3.5": { "model_id": "completions", }, + "ernie-3.5-8k": { + "model_id": "completions", + }, "ernie-turbo": { "model_id": "eb-instant", }, @@ -91,7 +98,8 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "model_id": "completions_pro", }, "ernie-longtext": { - "model_id": "ernie_bot_8k", + # ernie-longtext(ernie_bot_8k) will be deprecated in 2024.4.11 + "model_id": "completions", }, "ernie-speed": { "model_id": "ernie_speed", @@ -117,7 +125,7 @@ class ChatCompletion(EBResource, CreatableWithStreaming): "model_id": "completions_pro", }, "ernie-longtext": { - "model_id": "ernie_bot_8k", + "model_id": "completions", }, "ernie-speed": { "model_id": "ernie_speed", @@ -126,6 +134,11 @@ class ChatCompletion(EBResource, CreatableWithStreaming): }, } + @staticmethod + def check_models(model: str): + if model in ["ernie-longtext", "ernie-bot-8k"]: + logging.warning(f"{model} will be deprecated after 2024.4.11, so we will automatically map it to ernie-3.5-8k") + @overload @classmethod def create( @@ -279,6 +292,8 @@ def create( kwargs["headers"] = headers if request_timeout is not None: kwargs["request_timeout"] = request_timeout + + cls.check_models(model) resp = resource.create_resource(**kwargs) return transform(ChatCompletionResponse.from_mapping, resp) @@ -435,6 +450,8 @@ async def acreate( kwargs["headers"] = headers if request_timeout is not None: kwargs["request_timeout"] = request_timeout + + cls.check_models(model) resp = await resource.acreate_resource(**kwargs) return transform(ChatCompletionResponse.from_mapping, resp) From 5e0eb9de22344181d7ce35dc1651850973eebbfb Mon Sep 17 00:00:00 2001 From: wj-Mcat <1435130236@qq.com> Date: Thu, 11 Apr 2024 15:47:59 +0800 Subject: [PATCH 3/6] remove longtext --- erniebot/src/erniebot/resources/chat_completion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erniebot/src/erniebot/resources/chat_completion.py b/erniebot/src/erniebot/resources/chat_completion.py index 5c9dd7ffd..e26335878 100644 --- a/erniebot/src/erniebot/resources/chat_completion.py +++ b/erniebot/src/erniebot/resources/chat_completion.py @@ -136,7 +136,7 @@ class ChatCompletion(EBResource, CreatableWithStreaming): @staticmethod def check_models(model: str): - if model in ["ernie-longtext", "ernie-bot-8k"]: + if model in ["ernie-bot-8k"]: logging.warning(f"{model} will be deprecated after 2024.4.11, so we will automatically map it to ernie-3.5-8k") @overload From 4b0fed8818c309dc1a80074791ca31ec1837eaa0 Mon Sep 17 00:00:00 2001 From: wj-Mcat <1435130236@qq.com> Date: Thu, 11 Apr 2024 16:04:09 +0800 Subject: [PATCH 4/6] update chat-completions --- .../src/erniebot/resources/chat_completion.py | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/erniebot/src/erniebot/resources/chat_completion.py b/erniebot/src/erniebot/resources/chat_completion.py index e26335878..2976a6c7f 100644 --- a/erniebot/src/erniebot/resources/chat_completion.py +++ b/erniebot/src/erniebot/resources/chat_completion.py @@ -134,11 +134,6 @@ class ChatCompletion(EBResource, CreatableWithStreaming): }, } - @staticmethod - def check_models(model: str): - if model in ["ernie-bot-8k"]: - logging.warning(f"{model} will be deprecated after 2024.4.11, so we will automatically map it to ernie-3.5-8k") - @overload @classmethod def create( @@ -293,7 +288,6 @@ def create( if request_timeout is not None: kwargs["request_timeout"] = request_timeout - cls.check_models(model) resp = resource.create_resource(**kwargs) return transform(ChatCompletionResponse.from_mapping, resp) @@ -451,10 +445,31 @@ async def acreate( if request_timeout is not None: kwargs["request_timeout"] = request_timeout - cls.check_models(model) resp = await resource.acreate_resource(**kwargs) return transform(ChatCompletionResponse.from_mapping, resp) + def _check_model_kwargs(self, model_name: str, kwargs: dict[str, Any]): + if model_name in ("ernie-turbo"): + for arg in ( + "functions", + "stop", + "disable_search", + "enable_citation", + "tool_choice", + ): + if arg in kwargs: + raise errors.InvalidArgumentError(f"`{arg}` is not supported by the {model_name} model.") + + if model_name in ("ernie-speed", "ernie-speed-128k", "ernie-char-8k", "ernie-tiny-8k"): + for arg in ( + "functions", + "disable_search", + "enable_citation", + "tool_choice", + ): + if arg in kwargs: + raise errors.InvalidArgumentError(f"`{arg}` is not supported by the {model_name} model.") + def _prepare_create(self, kwargs: Dict[str, Any]) -> RequestWithStream: def _update_model_name(given_name: str, old_name_to_new_name: Dict[str, str]) -> str: if given_name in old_name_to_new_name: @@ -506,7 +521,8 @@ def _set_val_if_key_exists(src: dict, dst: dict, key: str) -> None: "ernie-bot": "ernie-3.5", "ernie-bot-turbo": "ernie-turbo", "ernie-bot-4": "ernie-4.0", - "ernie-bot-8k": "ernie-longtext", + "ernie-bot-8k": "ernie-3.5-8k", + "ernie-longtext": "ernie-3.5-8k", }, ) @@ -528,16 +544,8 @@ def _set_val_if_key_exists(src: dict, dst: dict, key: str) -> None: # params params = {} - if model in ("ernie-turbo", "ernie-speed"): - for arg in ( - "functions", - "stop", - "disable_search", - "enable_citation", - "tool_choice", - ): - if arg in kwargs: - raise errors.InvalidArgumentError(f"`{arg}` is not supported by the {model} model.") + self._check_model_kwargs(model, kwargs) + params["messages"] = messages if "functions" in kwargs: functions = kwargs["functions"] From 83cd5242352d180342c4fd8dd3ae92a9c8652e3d Mon Sep 17 00:00:00 2001 From: wj-Mcat <1435130236@qq.com> Date: Thu, 11 Apr 2024 17:34:53 +0800 Subject: [PATCH 5/6] fix lint --- erniebot/src/erniebot/resources/chat_completion.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erniebot/src/erniebot/resources/chat_completion.py b/erniebot/src/erniebot/resources/chat_completion.py index 2976a6c7f..ca3317a5a 100644 --- a/erniebot/src/erniebot/resources/chat_completion.py +++ b/erniebot/src/erniebot/resources/chat_completion.py @@ -444,12 +444,12 @@ async def acreate( kwargs["headers"] = headers if request_timeout is not None: kwargs["request_timeout"] = request_timeout - + resp = await resource.acreate_resource(**kwargs) return transform(ChatCompletionResponse.from_mapping, resp) - def _check_model_kwargs(self, model_name: str, kwargs: dict[str, Any]): - if model_name in ("ernie-turbo"): + def _check_model_kwargs(self, model_name: str, kwargs: Dict[str, Any]) -> None: + if model_name in ("ernie-turbo",): for arg in ( "functions", "stop", @@ -469,7 +469,7 @@ def _check_model_kwargs(self, model_name: str, kwargs: dict[str, Any]): ): if arg in kwargs: raise errors.InvalidArgumentError(f"`{arg}` is not supported by the {model_name} model.") - + def _prepare_create(self, kwargs: Dict[str, Any]) -> RequestWithStream: def _update_model_name(given_name: str, old_name_to_new_name: Dict[str, str]) -> str: if given_name in old_name_to_new_name: From 625a971fe5c9a5de23723876cf8f369d1b84b98b Mon Sep 17 00:00:00 2001 From: wj-Mcat <1435130236@qq.com> Date: Thu, 11 Apr 2024 17:38:38 +0800 Subject: [PATCH 6/6] fix ernie-speed --- erniebot/src/erniebot/intro.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erniebot/src/erniebot/intro.py b/erniebot/src/erniebot/intro.py index da85e01e9..e19fe4906 100644 --- a/erniebot/src/erniebot/intro.py +++ b/erniebot/src/erniebot/intro.py @@ -28,7 +28,7 @@ def list() -> List[Tuple[str, str]]: ("ernie-turbo", "文心大模型(ernie-turbo)"), ("ernie-4.0", "文心大模型(ernie-4.0)"), ("ernie-longtext", "文心大模型(ernie-longtext)"), - ("ernie_speed", " 文心大模型(ernie_speed)"), + ("ernie-speed", " 文心大模型(ernie-speed)"), ("ernie-speed-128k", " 文心大模型(ernie-speed-128k)"), ("ernie-tiny-8k", " 文心大模型(ernie-tiny-8k)"), ("ernie-char-8k", " 文心大模型(ernie-char-8k)"),