llm.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # coding=utf-8
  2. """
  3. @project: maxkb
  4. @Author:虎
  5. @file: llm.py
  6. @date:2024/4/18 15:28
  7. @desc:
  8. """
  9. from typing import List, Dict
  10. from langchain_core.messages import BaseMessage, get_buffer_string
  11. from langchain_openai.chat_models import ChatOpenAI
  12. from common.config.tokenizer_manage_config import TokenizerManage
  13. from models_provider.base_model_provider import MaxKBBaseModel
  14. from models_provider.impl.base_chat_open_ai import BaseChatOpenAI
  15. def custom_get_token_ids(text: str):
  16. tokenizer = TokenizerManage.get_tokenizer()
  17. return tokenizer.encode(text)
  18. class SiliconCloudChatModel(MaxKBBaseModel, BaseChatOpenAI):
  19. @staticmethod
  20. def is_cache_model():
  21. return False
  22. @staticmethod
  23. def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
  24. optional_params = MaxKBBaseModel.filter_optional_params(model_kwargs)
  25. return SiliconCloudChatModel(
  26. model=model_name,
  27. openai_api_base=model_credential.get('api_base'),
  28. openai_api_key=model_credential.get('api_key'),
  29. **optional_params,
  30. )