From 1afd0e3b07d97f1183510ec173e0106ec7505893 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Tue, 1 Sep 2026 14:08:09 +0800 Subject: [PATCH] refactor: remove TencentCloudModelProvider from model provider constants --- .../constants/model_provider_constants.py | 2 - .../tencent_cloud_model_provider/__init__.py | 8 -- .../credential/__init__.py | 0 .../credential/llm.py | 97 ------------------- .../icon/__init__.py | 0 .../icon/tencent_cloud_icon_svg | 15 --- .../model/__init__.py | 0 .../tencent_cloud_model_provider/model/llm.py | 37 ------- .../tencent_cloud_model_provider.py | 60 ------------ 9 files changed, 219 deletions(-) delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/__init__.py delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/credential/__init__.py delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/credential/llm.py delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/icon/__init__.py delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/icon/tencent_cloud_icon_svg delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/model/__init__.py delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/model/llm.py delete mode 100644 apps/models_provider/impl/tencent_cloud_model_provider/tencent_cloud_model_provider.py diff --git a/apps/models_provider/constants/model_provider_constants.py b/apps/models_provider/constants/model_provider_constants.py index d49343eea5d..eb8494e33be 100644 --- a/apps/models_provider/constants/model_provider_constants.py +++ b/apps/models_provider/constants/model_provider_constants.py @@ -17,7 +17,6 @@ from models_provider.impl.openai_model_provider.openai_model_provider import OpenAIModelProvider from models_provider.impl.regolo_model_provider.regolo_model_provider import RegoloModelProvider from models_provider.impl.siliconCloud_model_provider.siliconCloud_model_provider import SiliconCloudModelProvider -from models_provider.impl.tencent_cloud_model_provider.tencent_cloud_model_provider import TencentCloudModelProvider from models_provider.impl.tencent_model_provider.tencent_model_provider import TencentModelProvider from models_provider.impl.vllm_model_provider.vllm_model_provider import VllmModelProvider from models_provider.impl.volcanic_engine_model_provider.volcanic_engine_model_provider import ( @@ -42,7 +41,6 @@ class ModelProvideConstants(Enum): model_gemini_provider = GeminiModelProvider() model_volcanic_engine_provider = VolcanicEngineModelProvider() model_tencent_provider = TencentModelProvider() - model_tencent_cloud_provider = TencentCloudModelProvider() model_aws_bedrock_provider = BedrockModelProvider() model_local_provider = LocalModelProvider() model_xinference_provider = XinferenceModelProvider() diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/__init__.py b/apps/models_provider/impl/tencent_cloud_model_provider/__init__.py deleted file mode 100644 index 906f7224d02..00000000000 --- a/apps/models_provider/impl/tencent_cloud_model_provider/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# coding=utf-8 -""" -@project: maxkb -@Author:虎 -@file: __init__.py.py -@date:2024/3/28 16:25 -@desc: -""" diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/credential/__init__.py b/apps/models_provider/impl/tencent_cloud_model_provider/credential/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/credential/llm.py b/apps/models_provider/impl/tencent_cloud_model_provider/credential/llm.py deleted file mode 100644 index 0770761aa49..00000000000 --- a/apps/models_provider/impl/tencent_cloud_model_provider/credential/llm.py +++ /dev/null @@ -1,97 +0,0 @@ -# coding=utf-8 -""" -@project: MaxKB -@Author:虎 -@file: llm.py -@date:2024/7/11 18:32 -@desc: -""" - -from typing import Dict - -from django.utils.translation import gettext_lazy as _, gettext -from langchain_core.messages import HumanMessage - -from common import forms -from common.exception.app_exception import AppApiException -from common.forms import BaseForm, TooltipLabel -from models_provider.base_model_provider import BaseModelCredential, ValidCode -from common.utils.logger import maxkb_logger - - -class TencentCloudLLMModelParams(BaseForm): - temperature = forms.SliderField( - TooltipLabel( - _("Temperature"), - _("Higher values make the output more random, while lower values make it more focused and deterministic"), - ), - required=True, - default_value=0.7, - _min=0.1, - _max=1.0, - _step=0.01, - precision=2, - ) - - max_tokens = forms.SliderField( - TooltipLabel( - _("Output the maximum Tokens"), _("Specify the maximum number of tokens that the model can generate") - ), - required=True, - default_value=8192, - _min=1, - _max=100000, - _step=1, - precision=0, - ) - - -class TencentCloudLLMModelCredential(BaseForm, BaseModelCredential): - def is_valid( - self, - model_type: str, - model_name, - model_credential: Dict[str, object], - model_params, - provider, - raise_exception=False, - ): - model_type_list = provider.get_model_type_list() - if not any(list(filter(lambda mt: mt.get("value") == model_type, model_type_list))): - raise AppApiException( - ValidCode.valid_error.value, - gettext("{model_type} Model type is not supported").format(model_type=model_type), - ) - - for key in ["api_base", "api_key"]: - if key not in model_credential: - if raise_exception: - raise AppApiException(ValidCode.valid_error.value, gettext("{key} is required").format(key=key)) - else: - return False - try: - model = provider.get_model(model_type, model_name, model_credential, **model_params) - model.invoke([HumanMessage(content=gettext("Hello"))]) - except Exception as e: - maxkb_logger.error(f"Exception: {e}", exc_info=True) - if isinstance(e, AppApiException): - raise e - if raise_exception: - raise AppApiException( - ValidCode.valid_error.value, - gettext("Verification failed, please check whether the parameters are correct: {error}").format( - error=str(e) - ), - ) - else: - return False - return True - - def encryption_dict(self, model: Dict[str, object]): - return {**model, "api_key": super().encryption(model.get("api_key", ""))} - - api_base = forms.TextInputField("API URL", required=True) - api_key = forms.PasswordInputField("API Key", required=True) - - def get_model_params_setting_form(self, model_name): - return TencentCloudLLMModelParams() diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/icon/__init__.py b/apps/models_provider/impl/tencent_cloud_model_provider/icon/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/icon/tencent_cloud_icon_svg b/apps/models_provider/impl/tencent_cloud_model_provider/icon/tencent_cloud_icon_svg deleted file mode 100644 index ff559eaff44..00000000000 --- a/apps/models_provider/impl/tencent_cloud_model_provider/icon/tencent_cloud_icon_svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/model/__init__.py b/apps/models_provider/impl/tencent_cloud_model_provider/model/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/model/llm.py b/apps/models_provider/impl/tencent_cloud_model_provider/model/llm.py deleted file mode 100644 index cfd2001c7e2..00000000000 --- a/apps/models_provider/impl/tencent_cloud_model_provider/model/llm.py +++ /dev/null @@ -1,37 +0,0 @@ -# coding=utf-8 -""" -@project: maxkb -@Author:虎 -@file: llm.py -@date:2024/4/18 15:28 -@desc: -""" - -from typing import Dict - -from common.config.tokenizer_manage_config import TokenizerManage -from models_provider.base_model_provider import MaxKBBaseModel -from models_provider.impl.base_chat_open_ai import BaseChatOpenAI - - -def custom_get_token_ids(text: str): - tokenizer = TokenizerManage.get_tokenizer() - return tokenizer.encode(text) - - -class TencentCloudChatModel(MaxKBBaseModel, BaseChatOpenAI): - @staticmethod - def is_cache_model(): - return False - - @staticmethod - def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs): - optional_params = MaxKBBaseModel.filter_optional_params(model_kwargs) - azure_chat_open_ai = TencentCloudChatModel( - model=model_name, - openai_api_base=model_credential.get("api_base"), - openai_api_key=model_credential.get("api_key"), - custom_get_token_ids=custom_get_token_ids, - **optional_params, - ) - return azure_chat_open_ai diff --git a/apps/models_provider/impl/tencent_cloud_model_provider/tencent_cloud_model_provider.py b/apps/models_provider/impl/tencent_cloud_model_provider/tencent_cloud_model_provider.py deleted file mode 100644 index 3e8d9a5f465..00000000000 --- a/apps/models_provider/impl/tencent_cloud_model_provider/tencent_cloud_model_provider.py +++ /dev/null @@ -1,60 +0,0 @@ -# coding=utf-8 -""" -@project: maxkb -@Author:虎 -@file: openai_model_provider.py -@date:2024/3/28 16:26 -@desc: -""" - -import os - -from common.utils.common import get_file_content -from models_provider.base_model_provider import ( - IModelProvider, - ModelProvideInfo, - ModelInfo, - ModelTypeConst, - ModelInfoManage, -) -from models_provider.impl.tencent_cloud_model_provider.credential.llm import TencentCloudLLMModelCredential -from models_provider.impl.tencent_cloud_model_provider.model.llm import TencentCloudChatModel -from maxkb.conf import PROJECT_DIR -from django.utils.translation import gettext_lazy as _ - -openai_llm_model_credential = TencentCloudLLMModelCredential() -model_info_list = [ - ModelInfo("deepseek-v3", "", ModelTypeConst.LLM, openai_llm_model_credential, TencentCloudChatModel), - ModelInfo("deepseek-r1", "", ModelTypeConst.LLM, openai_llm_model_credential, TencentCloudChatModel), -] - -model_info_manage = ( - ModelInfoManage.builder() - .append_model_info_list(model_info_list) - .append_default_model_info( - ModelInfo("deepseek-v3", "", ModelTypeConst.LLM, openai_llm_model_credential, TencentCloudChatModel) - ) - .build() -) - - -class TencentCloudModelProvider(IModelProvider): - def get_model_info_manage(self): - return model_info_manage - - def get_model_provide_info(self): - return ModelProvideInfo( - provider="model_tencent_cloud_provider", - name=_("Tencent Cloud"), - icon=get_file_content( - os.path.join( - PROJECT_DIR, - "apps", - "models_provider", - "impl", - "tencent_cloud_model_provider", - "icon", - "tencent_cloud_icon_svg", - ) - ), - )