From 70992609d42df09cba91be6048c89e27e1977fe8 Mon Sep 17 00:00:00 2001 From: Jialei Date: Mon, 5 Feb 2024 20:27:27 +0800 Subject: [PATCH] feat: add moonshot support (#2398) --- .../model_providers/moonshot/__init__.py | 0 .../moonshot/_assets/icon_l_en.png | Bin 0 -> 13654 bytes .../moonshot/_assets/icon_s_en.png | Bin 0 -> 7419 bytes .../model_providers/moonshot/llm/__init__.py | 0 .../moonshot/llm/_position.yaml | 3 ++ .../model_providers/moonshot/llm/llm.py | 24 +++++++++++++ .../moonshot/llm/moonshot-v1-128k.yaml | 29 ++++++++++++++++ .../moonshot/llm/moonshot-v1-32k.yaml | 29 ++++++++++++++++ .../moonshot/llm/moonshot-v1-8k.yaml | 29 ++++++++++++++++ .../model_providers/moonshot/moonshot.py | 30 ++++++++++++++++ .../model_providers/moonshot/moonshot.yaml | 32 ++++++++++++++++++ 11 files changed, 176 insertions(+) create mode 100644 api/core/model_runtime/model_providers/moonshot/__init__.py create mode 100644 api/core/model_runtime/model_providers/moonshot/_assets/icon_l_en.png create mode 100644 api/core/model_runtime/model_providers/moonshot/_assets/icon_s_en.png create mode 100644 api/core/model_runtime/model_providers/moonshot/llm/__init__.py create mode 100644 api/core/model_runtime/model_providers/moonshot/llm/_position.yaml create mode 100644 api/core/model_runtime/model_providers/moonshot/llm/llm.py create mode 100644 api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-128k.yaml create mode 100644 api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-32k.yaml create mode 100644 api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-8k.yaml create mode 100644 api/core/model_runtime/model_providers/moonshot/moonshot.py create mode 100644 api/core/model_runtime/model_providers/moonshot/moonshot.yaml diff --git a/api/core/model_runtime/model_providers/moonshot/__init__.py b/api/core/model_runtime/model_providers/moonshot/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/api/core/model_runtime/model_providers/moonshot/_assets/icon_l_en.png b/api/core/model_runtime/model_providers/moonshot/_assets/icon_l_en.png new file mode 100644 index 0000000000000000000000000000000000000000..a411526d3d69117dc37e7859666e639d3cda433e GIT binary patch literal 13654 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 literal 0 HcmV?d00001 diff --git a/api/core/model_runtime/model_providers/moonshot/_assets/icon_s_en.png b/api/core/model_runtime/model_providers/moonshot/_assets/icon_s_en.png new file mode 100644 index 0000000000000000000000000000000000000000..58ba4b462376265f9575769b69521f9c9ee8606c GIT binary patch literal 7419 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 W|6f6TT3Q{U04U49m8+653H?93{_?s2 literal 0 HcmV?d00001 diff --git a/api/core/model_runtime/model_providers/moonshot/llm/__init__.py b/api/core/model_runtime/model_providers/moonshot/llm/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/api/core/model_runtime/model_providers/moonshot/llm/_position.yaml b/api/core/model_runtime/model_providers/moonshot/llm/_position.yaml new file mode 100644 index 0000000000..1810ec61d6 --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/llm/_position.yaml @@ -0,0 +1,3 @@ +- moonshot-v1-8k +- moonshot-v1-32k +- moonshot-v1-128k diff --git a/api/core/model_runtime/model_providers/moonshot/llm/llm.py b/api/core/model_runtime/model_providers/moonshot/llm/llm.py new file mode 100644 index 0000000000..26f890b10b --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/llm/llm.py @@ -0,0 +1,24 @@ +from typing import List, Optional, Union, Generator + +from core.model_runtime.entities.llm_entities import LLMResult +from core.model_runtime.entities.message_entities import (PromptMessage, PromptMessageTool) +from core.model_runtime.model_providers.openai_api_compatible.llm.llm import OAIAPICompatLargeLanguageModel + + +class MoonshotLargeLanguageModel(OAIAPICompatLargeLanguageModel): + def _invoke(self, model: str, credentials: dict, + prompt_messages: list[PromptMessage], model_parameters: dict, + tools: Optional[list[PromptMessageTool]] = None, stop: Optional[List[str]] = None, + stream: bool = True, user: Optional[str] = None) \ + -> Union[LLMResult, Generator]: + self._add_custom_parameters(credentials) + return super()._invoke(model, credentials, prompt_messages, model_parameters, tools, stop, stream, user) + + def validate_credentials(self, model: str, credentials: dict) -> None: + self._add_custom_parameters(credentials) + super().validate_credentials(model, credentials) + + @staticmethod + def _add_custom_parameters(credentials: dict) -> None: + credentials['mode'] = 'chat' + credentials['endpoint_url'] = 'https://api.moonshot.cn/v1' diff --git a/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-128k.yaml b/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-128k.yaml new file mode 100644 index 0000000000..fe197b3cfd --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-128k.yaml @@ -0,0 +1,29 @@ +model: moonshot-v1-128k +label: + zh_Hans: moonshot-v1-128k + en_US: moonshot-v1-128k +model_type: llm +features: + - agent-thought +model_properties: + mode: chat + context_size: 4096 +parameter_rules: + - name: temperature + use_template: temperature + - name: top_p + use_template: top_p + - name: presence_penalty + use_template: presence_penalty + - name: frequency_penalty + use_template: frequency_penalty + - name: max_tokens + use_template: max_tokens + default: 512 + min: 1 + max: 4096 +pricing: + input: '0.06' + output: '0.06' + unit: '0.001' + currency: RMB diff --git a/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-32k.yaml b/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-32k.yaml new file mode 100644 index 0000000000..bc12ea5526 --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-32k.yaml @@ -0,0 +1,29 @@ +model: moonshot-v1-32k +label: + zh_Hans: moonshot-v1-32k + en_US: moonshot-v1-32k +model_type: llm +features: + - agent-thought +model_properties: + mode: chat + context_size: 4096 +parameter_rules: + - name: temperature + use_template: temperature + - name: top_p + use_template: top_p + - name: presence_penalty + use_template: presence_penalty + - name: frequency_penalty + use_template: frequency_penalty + - name: max_tokens + use_template: max_tokens + default: 512 + min: 1 + max: 4096 +pricing: + input: '0.024' + output: '0.024' + unit: '0.001' + currency: RMB diff --git a/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-8k.yaml b/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-8k.yaml new file mode 100644 index 0000000000..5643a72195 --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/llm/moonshot-v1-8k.yaml @@ -0,0 +1,29 @@ +model: moonshot-v1-8k +label: + zh_Hans: moonshot-v1-8k + en_US: moonshot-v1-8k +model_type: llm +features: + - agent-thought +model_properties: + mode: chat + context_size: 4096 +parameter_rules: + - name: temperature + use_template: temperature + - name: top_p + use_template: top_p + - name: presence_penalty + use_template: presence_penalty + - name: frequency_penalty + use_template: frequency_penalty + - name: max_tokens + use_template: max_tokens + default: 512 + min: 1 + max: 4096 +pricing: + input: '0.012' + output: '0.012' + unit: '0.001' + currency: RMB diff --git a/api/core/model_runtime/model_providers/moonshot/moonshot.py b/api/core/model_runtime/model_providers/moonshot/moonshot.py new file mode 100644 index 0000000000..c35882e010 --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/moonshot.py @@ -0,0 +1,30 @@ +import logging + +from core.model_runtime.entities.model_entities import AIModelEntity, ModelType +from core.model_runtime.errors.validate import CredentialsValidateFailedError +from core.model_runtime.model_providers.__base.model_provider import ModelProvider + +logger = logging.getLogger(__name__) + + +class MoonshotProvider(ModelProvider): + + def validate_provider_credentials(self, credentials: dict) -> None: + """ + Validate provider credentials + if validate failed, raise exception + + :param credentials: provider credentials, credentials form defined in `provider_credential_schema`. + """ + try: + model_instance = self.get_model_instance(ModelType.LLM) + + model_instance.validate_credentials( + model='moonshot-v1-8k', + credentials=credentials + ) + except CredentialsValidateFailedError as ex: + raise ex + except Exception as ex: + logger.exception(f'{self.get_provider_schema().provider} credentials validate failed') + raise ex diff --git a/api/core/model_runtime/model_providers/moonshot/moonshot.yaml b/api/core/model_runtime/model_providers/moonshot/moonshot.yaml new file mode 100644 index 0000000000..1885ee9d94 --- /dev/null +++ b/api/core/model_runtime/model_providers/moonshot/moonshot.yaml @@ -0,0 +1,32 @@ +provider: moonshot +label: + zh_Hans: 月之暗面 + en_US: Moonshot +description: + en_US: Models provided by Moonshot, such as moonshot-v1-8k, moonshot-v1-32k, and moonshot-v1-128k. + zh_Hans: Moonshot 提供的模型,例如 moonshot-v1-8k、moonshot-v1-32k 和 moonshot-v1-128k。 +icon_small: + en_US: icon_s_en.png +icon_large: + en_US: icon_l_en.png +background: "#FFFFFF" +help: + title: + en_US: Get your API Key from Moonshot + zh_Hans: 从 Moonshot 获取 API Key + url: + en_US: https://platform.moonshot.cn/console/api-keys +supported_model_types: + - llm +configurate_methods: + - predefined-model +provider_credential_schema: + credential_form_schemas: + - variable: api_key + label: + en_US: API Key + type: secret-input + required: true + placeholder: + zh_Hans: 在此输入您的 API Key + en_US: Enter your API Key