# coding=utf-8 """ @project: maxkb @Author:虎 @file: azure_model_provider.py @date:2023/10/31 16:19 @desc: """ import os from common.utils.common import get_file_content from models_provider.base_model_provider import IModelProvider, ModelProvideInfo, ModelInfo, \ ModelTypeConst, ModelInfoManage from models_provider.impl.azure_model_provider.credential.embedding import AzureOpenAIEmbeddingCredential from models_provider.impl.azure_model_provider.credential.image import AzureOpenAIImageModelCredential from models_provider.impl.azure_model_provider.credential.llm import AzureLLMModelCredential from models_provider.impl.azure_model_provider.credential.stt import AzureOpenAISTTModelCredential from models_provider.impl.azure_model_provider.credential.tti import AzureOpenAITextToImageModelCredential from models_provider.impl.azure_model_provider.credential.tts import AzureOpenAITTSModelCredential from models_provider.impl.azure_model_provider.model.azure_chat_model import AzureChatModel from models_provider.impl.azure_model_provider.model.embedding import AzureOpenAIEmbeddingModel from models_provider.impl.azure_model_provider.model.image import AzureOpenAIImage from models_provider.impl.azure_model_provider.model.stt import AzureOpenAISpeechToText from models_provider.impl.azure_model_provider.model.tti import AzureOpenAITextToImage from models_provider.impl.azure_model_provider.model.tts import AzureOpenAITextToSpeech from maxkb.conf import PROJECT_DIR from django.utils.translation import gettext_lazy as _ base_azure_llm_model_credential = AzureLLMModelCredential() base_azure_embedding_model_credential = AzureOpenAIEmbeddingCredential() base_azure_image_model_credential = AzureOpenAIImageModelCredential() base_azure_tti_model_credential = AzureOpenAITextToImageModelCredential() base_azure_tts_model_credential = AzureOpenAITTSModelCredential() base_azure_stt_model_credential = AzureOpenAISTTModelCredential() default_model_info = [ ModelInfo('Azure OpenAI', '', ModelTypeConst.LLM, base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview' ), ModelInfo('gpt-4', '', ModelTypeConst.LLM, base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview' ), ModelInfo('gpt-4o', '', ModelTypeConst.LLM, base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview' ), ModelInfo('gpt-4o-mini', '', ModelTypeConst.LLM, base_azure_llm_model_credential, AzureChatModel, api_version='2024-02-15-preview' ), ] embedding_model_info = [ ModelInfo('text-embedding-3-large', '', ModelTypeConst.EMBEDDING, base_azure_embedding_model_credential, AzureOpenAIEmbeddingModel, api_version='2023-05-15' ), ModelInfo('text-embedding-3-small', '', ModelTypeConst.EMBEDDING, base_azure_embedding_model_credential, AzureOpenAIEmbeddingModel, api_version='2023-05-15' ), ModelInfo('text-embedding-ada-002', '', ModelTypeConst.EMBEDDING, base_azure_embedding_model_credential, AzureOpenAIEmbeddingModel, api_version='2023-05-15' ), ] image_model_info = [ ModelInfo('gpt-4o', '', ModelTypeConst.IMAGE, base_azure_image_model_credential, AzureOpenAIImage, api_version='2023-05-15' ), ModelInfo('gpt-4o-mini', '', ModelTypeConst.IMAGE, base_azure_image_model_credential, AzureOpenAIImage, api_version='2023-05-15' ), ] tti_model_info = [ ModelInfo('dall-e-3', '', ModelTypeConst.TTI, base_azure_tti_model_credential, AzureOpenAITextToImage, api_version='2023-05-15' ), ] tts_model_info = [ ModelInfo('tts', '', ModelTypeConst.TTS, base_azure_tts_model_credential, AzureOpenAITextToSpeech, api_version='2023-05-15' ), ] stt_model_info = [ ModelInfo('whisper', '', ModelTypeConst.STT, base_azure_stt_model_credential, AzureOpenAISpeechToText, api_version='2023-05-15' ), ] model_info_manage = ( ModelInfoManage.builder() .append_default_model_info(default_model_info[0]) .append_model_info_list(default_model_info) .append_model_info_list(embedding_model_info) .append_default_model_info(embedding_model_info[0]) .append_model_info_list(image_model_info) .append_default_model_info(image_model_info[0]) .append_model_info_list(stt_model_info) .append_default_model_info(stt_model_info[0]) .append_model_info_list(tts_model_info) .append_default_model_info(tts_model_info[0]) .append_model_info_list(tti_model_info) .append_default_model_info(tti_model_info[0]) .build() ) class AzureModelProvider(IModelProvider): def get_model_info_manage(self): return model_info_manage def get_model_provide_info(self): return ModelProvideInfo(provider='model_azure_provider', name='Azure OpenAI', icon=get_file_content( os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'azure_model_provider', 'icon', 'azure_icon_svg')))