local_model_provider.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # coding=utf-8
  2. """
  3. @project: maxkb
  4. @Author:虎
  5. @file: zhipu_model_provider.py
  6. @date:2024/04/19 13:5
  7. @desc:
  8. """
  9. import os
  10. from django.utils.translation import gettext as _
  11. from common.utils.common import get_file_content
  12. from maxkb.conf import PROJECT_DIR
  13. from models_provider.base_model_provider import ModelProvideInfo, ModelTypeConst, ModelInfo, IModelProvider, \
  14. ModelInfoManage
  15. from models_provider.impl.local_model_provider.credential.embedding import LocalEmbeddingCredential
  16. from models_provider.impl.local_model_provider.credential.reranker import LocalRerankerCredential
  17. from models_provider.impl.local_model_provider.model.embedding import LocalEmbedding
  18. from models_provider.impl.local_model_provider.model.reranker import LocalReranker
  19. embedding_text2vec_base_chinese = ModelInfo('shibing624/text2vec-base-chinese', '', ModelTypeConst.EMBEDDING,
  20. LocalEmbeddingCredential(), LocalEmbedding)
  21. bge_reranker_v2_m3 = ModelInfo('BAAI/bge-reranker-v2-m3', '', ModelTypeConst.RERANKER,
  22. LocalRerankerCredential(), LocalReranker)
  23. model_info_manage = (ModelInfoManage.builder().append_model_info(embedding_text2vec_base_chinese)
  24. .append_default_model_info(embedding_text2vec_base_chinese)
  25. .append_model_info(bge_reranker_v2_m3)
  26. .append_default_model_info(bge_reranker_v2_m3)
  27. .build())
  28. class LocalModelProvider(IModelProvider):
  29. def get_model_info_manage(self):
  30. return model_info_manage
  31. def get_model_provide_info(self):
  32. return ModelProvideInfo(provider='model_local_provider', name=_('local model'), icon=get_file_content(
  33. os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'local_model_provider', 'icon',
  34. 'local_icon_svg')))