azure_model_provider.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. # coding=utf-8
  2. """
  3. @project: maxkb
  4. @Author:虎
  5. @file: azure_model_provider.py
  6. @date:2023/10/31 16:19
  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.azure_model_provider.credential.embedding import AzureOpenAIEmbeddingCredential
  14. from models_provider.impl.azure_model_provider.credential.image import AzureOpenAIImageModelCredential
  15. from models_provider.impl.azure_model_provider.credential.llm import AzureLLMModelCredential
  16. from models_provider.impl.azure_model_provider.credential.stt import AzureOpenAISTTModelCredential
  17. from models_provider.impl.azure_model_provider.credential.tti import AzureOpenAITextToImageModelCredential
  18. from models_provider.impl.azure_model_provider.credential.tts import AzureOpenAITTSModelCredential
  19. from models_provider.impl.azure_model_provider.model.azure_chat_model import AzureChatModel
  20. from models_provider.impl.azure_model_provider.model.embedding import AzureOpenAIEmbeddingModel
  21. from models_provider.impl.azure_model_provider.model.image import AzureOpenAIImage
  22. from models_provider.impl.azure_model_provider.model.stt import AzureOpenAISpeechToText
  23. from models_provider.impl.azure_model_provider.model.tti import AzureOpenAITextToImage
  24. from models_provider.impl.azure_model_provider.model.tts import AzureOpenAITextToSpeech
  25. from maxkb.conf import PROJECT_DIR
  26. from django.utils.translation import gettext_lazy as _
  27. base_azure_llm_model_credential = AzureLLMModelCredential()
  28. base_azure_embedding_model_credential = AzureOpenAIEmbeddingCredential()
  29. base_azure_image_model_credential = AzureOpenAIImageModelCredential()
  30. base_azure_tti_model_credential = AzureOpenAITextToImageModelCredential()
  31. base_azure_tts_model_credential = AzureOpenAITTSModelCredential()
  32. base_azure_stt_model_credential = AzureOpenAISTTModelCredential()
  33. default_model_info = [
  34. ModelInfo('Azure OpenAI', '', ModelTypeConst.LLM,
  35. base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview'
  36. ),
  37. ModelInfo('gpt-4', '', ModelTypeConst.LLM,
  38. base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview'
  39. ),
  40. ModelInfo('gpt-4o', '', ModelTypeConst.LLM,
  41. base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview'
  42. ),
  43. ModelInfo('gpt-4o-mini', '', ModelTypeConst.LLM,
  44. base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview'
  45. ),
  46. ]
  47. embedding_model_info = [
  48. ModelInfo('text-embedding-3-large', '', ModelTypeConst.EMBEDDING,
  49. base_azure_embedding_model_credential, AzureOpenAIEmbeddingModel, api_version='2023-05-15'
  50. ),
  51. ModelInfo('text-embedding-3-small', '', ModelTypeConst.EMBEDDING,
  52. base_azure_embedding_model_credential, AzureOpenAIEmbeddingModel, api_version='2023-05-15'
  53. ),
  54. ModelInfo('text-embedding-ada-002', '', ModelTypeConst.EMBEDDING,
  55. base_azure_embedding_model_credential, AzureOpenAIEmbeddingModel, api_version='2023-05-15'
  56. ),
  57. ]
  58. image_model_info = [
  59. ModelInfo('gpt-4o', '', ModelTypeConst.IMAGE,
  60. base_azure_image_model_credential, AzureOpenAIImage, api_version='2023-05-15'
  61. ),
  62. ModelInfo('gpt-4o-mini', '', ModelTypeConst.IMAGE,
  63. base_azure_image_model_credential, AzureOpenAIImage, api_version='2023-05-15'
  64. ),
  65. ]
  66. tti_model_info = [
  67. ModelInfo('dall-e-3', '', ModelTypeConst.TTI,
  68. base_azure_tti_model_credential, AzureOpenAITextToImage, api_version='2023-05-15'
  69. ),
  70. ]
  71. tts_model_info = [
  72. ModelInfo('tts', '', ModelTypeConst.TTS,
  73. base_azure_tts_model_credential, AzureOpenAITextToSpeech, api_version='2023-05-15'
  74. ),
  75. ]
  76. stt_model_info = [
  77. ModelInfo('whisper', '', ModelTypeConst.STT,
  78. base_azure_stt_model_credential, AzureOpenAISpeechToText, api_version='2023-05-15'
  79. ),
  80. ]
  81. model_info_manage = (
  82. ModelInfoManage.builder()
  83. .append_default_model_info(default_model_info[0])
  84. .append_model_info_list(default_model_info)
  85. .append_model_info_list(embedding_model_info)
  86. .append_default_model_info(embedding_model_info[0])
  87. .append_model_info_list(image_model_info)
  88. .append_default_model_info(image_model_info[0])
  89. .append_model_info_list(stt_model_info)
  90. .append_default_model_info(stt_model_info[0])
  91. .append_model_info_list(tts_model_info)
  92. .append_default_model_info(tts_model_info[0])
  93. .append_model_info_list(tti_model_info)
  94. .append_default_model_info(tti_model_info[0])
  95. .build()
  96. )
  97. class AzureModelProvider(IModelProvider):
  98. def get_model_info_manage(self):
  99. return model_info_manage
  100. def get_model_provide_info(self):
  101. return ModelProvideInfo(provider='model_azure_provider', name='Azure OpenAI', icon=get_file_content(
  102. os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'azure_model_provider', 'icon',
  103. 'azure_icon_svg')))