regolo_model_provider.py 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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 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 ModelInfo, ModelTypeConst, ModelInfoManage, IModelProvider, \
  14. ModelProvideInfo
  15. from models_provider.impl.regolo_model_provider.credential.embedding import RegoloEmbeddingCredential
  16. from models_provider.impl.regolo_model_provider.credential.llm import RegoloLLMModelCredential
  17. from models_provider.impl.regolo_model_provider.credential.tti import RegoloTextToImageModelCredential
  18. from models_provider.impl.regolo_model_provider.model.embedding import RegoloEmbeddingModel
  19. from models_provider.impl.regolo_model_provider.model.llm import RegoloChatModel
  20. from models_provider.impl.regolo_model_provider.model.tti import RegoloTextToImage
  21. openai_llm_model_credential = RegoloLLMModelCredential()
  22. openai_tti_model_credential = RegoloTextToImageModelCredential()
  23. model_info_list = [
  24. ModelInfo('Phi-4', '', ModelTypeConst.LLM,
  25. openai_llm_model_credential, RegoloChatModel
  26. ),
  27. ModelInfo('DeepSeek-R1-Distill-Qwen-32B', '', ModelTypeConst.LLM,
  28. openai_llm_model_credential,
  29. RegoloChatModel),
  30. ModelInfo('maestrale-chat-v0.4-beta', '',
  31. ModelTypeConst.LLM, openai_llm_model_credential,
  32. RegoloChatModel),
  33. ModelInfo('Llama-3.3-70B-Instruct',
  34. '',
  35. ModelTypeConst.LLM, openai_llm_model_credential,
  36. RegoloChatModel),
  37. ModelInfo('Llama-3.1-8B-Instruct',
  38. '',
  39. ModelTypeConst.LLM, openai_llm_model_credential,
  40. RegoloChatModel),
  41. ModelInfo('DeepSeek-Coder-6.7B-Instruct', '',
  42. ModelTypeConst.LLM, openai_llm_model_credential,
  43. RegoloChatModel)
  44. ]
  45. open_ai_embedding_credential = RegoloEmbeddingCredential()
  46. model_info_embedding_list = [
  47. ModelInfo('gte-Qwen2', '',
  48. ModelTypeConst.EMBEDDING, open_ai_embedding_credential,
  49. RegoloEmbeddingModel),
  50. ]
  51. model_info_tti_list = [
  52. ModelInfo('FLUX.1-dev', '',
  53. ModelTypeConst.TTI, openai_tti_model_credential,
  54. RegoloTextToImage),
  55. ModelInfo('sdxl-turbo', '',
  56. ModelTypeConst.TTI, openai_tti_model_credential,
  57. RegoloTextToImage),
  58. ]
  59. model_info_manage = (
  60. ModelInfoManage.builder()
  61. .append_model_info_list(model_info_list)
  62. .append_default_model_info(
  63. ModelInfo('gpt-3.5-turbo', _('The latest gpt-3.5-turbo, updated with OpenAI adjustments'), ModelTypeConst.LLM,
  64. openai_llm_model_credential, RegoloChatModel
  65. ))
  66. .append_model_info_list(model_info_embedding_list)
  67. .append_default_model_info(model_info_embedding_list[0])
  68. .append_model_info_list(model_info_tti_list)
  69. .append_default_model_info(model_info_tti_list[0])
  70. .build()
  71. )
  72. class RegoloModelProvider(IModelProvider):
  73. def get_model_info_manage(self):
  74. return model_info_manage
  75. def get_model_provide_info(self):
  76. return ModelProvideInfo(provider='model_regolo_provider', name='Regolo', icon=get_file_content(
  77. os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'regolo_model_provider',
  78. 'icon',
  79. 'regolo_icon_svg')))