siliconCloud_model_provider.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. # coding=utf-8
  2. """
  3. @project: maxkb
  4. @Author:虎
  5. @file: openai_model_provider.py
  6. @date:2024/3/28 16:26
  7. @desc:
  8. """
  9. import os
  10. from common.utils.common import get_file_content
  11. from models_provider.base_model_provider import IModelProvider, ModelProvideInfo, ModelInfo, \
  12. ModelTypeConst, ModelInfoManage
  13. from models_provider.impl.siliconCloud_model_provider.credential.embedding import \
  14. SiliconCloudEmbeddingCredential
  15. from models_provider.impl.siliconCloud_model_provider.credential.image import SiliconCloudImageModelCredential
  16. from models_provider.impl.siliconCloud_model_provider.credential.llm import SiliconCloudLLMModelCredential
  17. from models_provider.impl.siliconCloud_model_provider.credential.reranker import SiliconCloudRerankerCredential
  18. from models_provider.impl.siliconCloud_model_provider.credential.stt import SiliconCloudSTTModelCredential
  19. from models_provider.impl.siliconCloud_model_provider.credential.tti import \
  20. SiliconCloudTextToImageModelCredential
  21. from models_provider.impl.siliconCloud_model_provider.credential.tts import SiliconCloudTTSModelCredential
  22. from models_provider.impl.siliconCloud_model_provider.model.embedding import SiliconCloudEmbeddingModel
  23. from models_provider.impl.siliconCloud_model_provider.model.image import SiliconCloudImage
  24. from models_provider.impl.siliconCloud_model_provider.model.llm import SiliconCloudChatModel
  25. from models_provider.impl.siliconCloud_model_provider.model.reranker import SiliconCloudReranker
  26. from models_provider.impl.siliconCloud_model_provider.model.stt import SiliconCloudSpeechToText
  27. from models_provider.impl.siliconCloud_model_provider.model.tti import SiliconCloudTextToImage
  28. from models_provider.impl.siliconCloud_model_provider.model.tts import SiliconCloudTextToSpeech
  29. from maxkb.conf import PROJECT_DIR
  30. from django.utils.translation import gettext as _
  31. openai_llm_model_credential = SiliconCloudLLMModelCredential()
  32. openai_stt_model_credential = SiliconCloudSTTModelCredential()
  33. openai_reranker_model_credential = SiliconCloudRerankerCredential()
  34. openai_tti_model_credential = SiliconCloudTextToImageModelCredential()
  35. openai_image_model_credential = SiliconCloudImageModelCredential()
  36. openai_tts_model_credential = SiliconCloudTTSModelCredential()
  37. model_info_list = [
  38. ModelInfo('deepseek-ai/DeepSeek-R1-Distill-Llama-8B', '', ModelTypeConst.LLM,
  39. openai_llm_model_credential, SiliconCloudChatModel
  40. ),
  41. ModelInfo('deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', '', ModelTypeConst.LLM,
  42. openai_llm_model_credential,
  43. SiliconCloudChatModel),
  44. ModelInfo('deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B', '',
  45. ModelTypeConst.LLM, openai_llm_model_credential,
  46. SiliconCloudChatModel),
  47. ModelInfo('Qwen/Qwen2.5-7B-Instruct',
  48. '',
  49. ModelTypeConst.LLM, openai_llm_model_credential,
  50. SiliconCloudChatModel),
  51. ModelInfo('Qwen/Qwen2.5-Coder-7B-Instruct', '',
  52. ModelTypeConst.LLM, openai_llm_model_credential,
  53. SiliconCloudChatModel),
  54. ModelInfo('internlm/internlm2_5-7b-chat', '',
  55. ModelTypeConst.LLM, openai_llm_model_credential,
  56. SiliconCloudChatModel),
  57. ModelInfo('Qwen/Qwen2-1.5B-Instruct', '',
  58. ModelTypeConst.LLM, openai_llm_model_credential,
  59. SiliconCloudChatModel),
  60. ModelInfo('THUDM/glm-4-9b-chat', '',
  61. ModelTypeConst.LLM, openai_llm_model_credential,
  62. SiliconCloudChatModel),
  63. ModelInfo('FunAudioLLM/SenseVoiceSmall', '',
  64. ModelTypeConst.STT, openai_stt_model_credential,
  65. SiliconCloudSpeechToText),
  66. ]
  67. open_ai_embedding_credential = SiliconCloudEmbeddingCredential()
  68. model_info_embedding_list = [
  69. ModelInfo('netease-youdao/bce-embedding-base_v1', '',
  70. ModelTypeConst.EMBEDDING, open_ai_embedding_credential,
  71. SiliconCloudEmbeddingModel),
  72. ModelInfo('BAAI/bge-m3', '',
  73. ModelTypeConst.EMBEDDING, open_ai_embedding_credential,
  74. SiliconCloudEmbeddingModel),
  75. ModelInfo('BAAI/bge-large-en-v1.5', '',
  76. ModelTypeConst.EMBEDDING, open_ai_embedding_credential,
  77. SiliconCloudEmbeddingModel),
  78. ModelInfo('BAAI/bge-large-zh-v1.5', '',
  79. ModelTypeConst.EMBEDDING, open_ai_embedding_credential,
  80. SiliconCloudEmbeddingModel),
  81. ]
  82. model_info_tti_list = [
  83. ModelInfo('deepseek-ai/Janus-Pro-7B', '',
  84. ModelTypeConst.TTI, openai_tti_model_credential,
  85. SiliconCloudTextToImage),
  86. ModelInfo('stabilityai/stable-diffusion-3-5-large', '',
  87. ModelTypeConst.TTI, openai_tti_model_credential,
  88. SiliconCloudTextToImage),
  89. ModelInfo('black-forest-labs/FLUX.1-schnell', '',
  90. ModelTypeConst.TTI, openai_tti_model_credential,
  91. SiliconCloudTextToImage),
  92. ModelInfo('stabilityai/stable-diffusion-3-medium', '',
  93. ModelTypeConst.TTI, openai_tti_model_credential,
  94. SiliconCloudTextToImage),
  95. ModelInfo('stabilityai/stable-diffusion-xl-base-1.0', '',
  96. ModelTypeConst.TTI, openai_tti_model_credential,
  97. SiliconCloudTextToImage),
  98. ModelInfo('stabilityai/stable-diffusion-2-1', '',
  99. ModelTypeConst.TTI, openai_tti_model_credential,
  100. SiliconCloudTextToImage),
  101. ]
  102. model_rerank_list = [
  103. ModelInfo('netease-youdao/bce-reranker-base_v1', '', ModelTypeConst.RERANKER,
  104. openai_reranker_model_credential, SiliconCloudReranker
  105. ),
  106. ModelInfo('BAAI/bge-reranker-v2-m3', '', ModelTypeConst.RERANKER,
  107. openai_reranker_model_credential, SiliconCloudReranker
  108. ),
  109. ]
  110. model_tts_list = [
  111. ModelInfo('FunAudioLLM/CosyVoice2-0.5B', '',
  112. ModelTypeConst.TTS, openai_tts_model_credential,
  113. SiliconCloudTextToSpeech),
  114. ]
  115. model_image_info_list = [
  116. ModelInfo('Qwen/Qwen3-VL-32B-Instruct', '',
  117. ModelTypeConst.IMAGE, openai_image_model_credential,
  118. SiliconCloudImage),
  119. ]
  120. model_info_manage = (
  121. ModelInfoManage.builder()
  122. .append_model_info_list(model_info_list)
  123. .append_default_model_info(
  124. ModelInfo('gpt-3.5-turbo', _('The latest gpt-3.5-turbo, updated with OpenAI adjustments'), ModelTypeConst.LLM,
  125. openai_llm_model_credential, SiliconCloudChatModel
  126. ))
  127. .append_model_info_list(model_info_embedding_list)
  128. .append_default_model_info(model_info_embedding_list[0])
  129. .append_model_info_list(model_info_tti_list)
  130. .append_default_model_info(model_info_tti_list[0])
  131. .append_default_model_info(ModelInfo('whisper-1', '',
  132. ModelTypeConst.STT, openai_stt_model_credential,
  133. SiliconCloudSpeechToText))
  134. .append_model_info_list(model_rerank_list)
  135. .append_default_model_info(model_rerank_list[0])
  136. .append_model_info_list(model_tts_list)
  137. .append_default_model_info(model_tts_list[0])
  138. .append_model_info_list(model_image_info_list)
  139. .append_default_model_info(model_image_info_list[0])
  140. .build()
  141. )
  142. class SiliconCloudModelProvider(IModelProvider):
  143. def get_model_info_manage(self):
  144. return model_info_manage
  145. def get_model_provide_info(self):
  146. return ModelProvideInfo(provider='model_siliconCloud_provider', name='SILICONFLOW', icon=get_file_content(
  147. os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'siliconCloud_model_provider',
  148. 'icon',
  149. 'siliconCloud_icon_svg')))