xf_model_provider.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # coding=utf-8
  2. """
  3. @project: maxkb
  4. @Author:虎
  5. @file: xf_model_provider.py
  6. @date:2024/04/19 14:47
  7. @desc:
  8. """
  9. import os
  10. import ssl
  11. from common.utils.common import get_file_content
  12. from models_provider.base_model_provider import ModelProvideInfo, ModelTypeConst, ModelInfo, IModelProvider, \
  13. ModelInfoManage
  14. from models_provider.impl.xf_model_provider.credential.embedding import XFEmbeddingCredential
  15. from models_provider.impl.xf_model_provider.credential.image import XunFeiImageModelCredential
  16. from models_provider.impl.xf_model_provider.credential.llm import XunFeiLLMModelCredential
  17. from models_provider.impl.xf_model_provider.credential.stt import XunFeiSTTModelCredential
  18. from models_provider.impl.xf_model_provider.credential.tts import XunFeiTTSModelCredential
  19. from models_provider.impl.xf_model_provider.credential.tts.super_humanoid_tts import XunFeiSuperHumanoidTTSModelCredential
  20. from models_provider.impl.xf_model_provider.credential.tts.default_tts import XunFeiDefaultTTSModelCredential
  21. from models_provider.impl.xf_model_provider.credential.zh_en_stt import ZhEnXunFeiSTTModelCredential
  22. from models_provider.impl.xf_model_provider.model.embedding import XFEmbedding
  23. from models_provider.impl.xf_model_provider.model.llm import XFChatSparkLLM
  24. from models_provider.impl.xf_model_provider.model.stt import XFSparkSpeechToText
  25. from models_provider.impl.xf_model_provider.model.tts import XFSparkTextToSpeech
  26. from models_provider.impl.xf_model_provider.model.tts.super_humanoid_tts import XFSparkSuperHumanoidTextToSpeech
  27. from models_provider.impl.xf_model_provider.model.tts.default_tts import XFSparkDefaultTextToSpeech
  28. from maxkb.conf import PROJECT_DIR
  29. from django.utils.translation import gettext as _
  30. from models_provider.impl.xf_model_provider.model.zh_en_stt import XFZhEnSparkSpeechToText
  31. ssl._create_default_https_context = ssl.create_default_context()
  32. xunfei_model_credential = XunFeiLLMModelCredential()
  33. stt_model_credential = XunFeiSTTModelCredential()
  34. zh_en_stt_credential = ZhEnXunFeiSTTModelCredential()
  35. image_model_credential = XunFeiImageModelCredential()
  36. # TTS credentials
  37. tts_model_credential = XunFeiTTSModelCredential()
  38. super_humanoid_tts_credential = XunFeiSuperHumanoidTTSModelCredential()
  39. default_tts_credential = XunFeiDefaultTTSModelCredential()
  40. embedding_model_credential = XFEmbeddingCredential()
  41. model_info_list = [
  42. ModelInfo('generalv3.5', '', ModelTypeConst.LLM, xunfei_model_credential, XFChatSparkLLM),
  43. ModelInfo('generalv3', '', ModelTypeConst.LLM, xunfei_model_credential, XFChatSparkLLM),
  44. ModelInfo('generalv2', '', ModelTypeConst.LLM, xunfei_model_credential, XFChatSparkLLM),
  45. ModelInfo('iat', _('Chinese and English recognition'), ModelTypeConst.STT, stt_model_credential,
  46. XFSparkSpeechToText),
  47. ModelInfo('slm', _('Chinese and English recognition'), ModelTypeConst.STT, zh_en_stt_credential,
  48. XFZhEnSparkSpeechToText),
  49. # 具体 TTS 模型
  50. ModelInfo('tts', _('Online TTS'), ModelTypeConst.TTS, tts_model_credential, XFSparkTextToSpeech),
  51. ModelInfo('tts-super-humanoid', _('Super Humanoid TTS'), ModelTypeConst.TTS, super_humanoid_tts_credential,
  52. XFSparkSuperHumanoidTextToSpeech),
  53. ModelInfo('embedding', '', ModelTypeConst.EMBEDDING, embedding_model_credential, XFEmbedding)
  54. ]
  55. model_info_manage = (
  56. ModelInfoManage.builder()
  57. .append_model_info_list(model_info_list)
  58. .append_default_model_info(
  59. ModelInfo('generalv3.5', '', ModelTypeConst.LLM, xunfei_model_credential, XFChatSparkLLM))
  60. .append_default_model_info(
  61. ModelInfo('iat', _('Chinese and English recognition'), ModelTypeConst.STT, stt_model_credential,
  62. XFSparkSpeechToText),
  63. )
  64. # default TTS 工厂入口
  65. .append_default_model_info(
  66. ModelInfo('default', _('default'), ModelTypeConst.TTS, default_tts_credential, XFSparkDefaultTextToSpeech))
  67. .append_default_model_info(
  68. ModelInfo('embedding', '', ModelTypeConst.EMBEDDING, embedding_model_credential, XFEmbedding))
  69. .build()
  70. )
  71. class XunFeiModelProvider(IModelProvider):
  72. def get_model_info_manage(self):
  73. return model_info_manage
  74. def get_model_provide_info(self):
  75. return ModelProvideInfo(provider='model_xf_provider', name=_('iFlytek Spark'), icon=get_file_content(
  76. os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'xf_model_provider', 'icon',
  77. 'xf_icon_svg')))