anthropic_model_provider.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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.anthropic_model_provider.credential.image import AnthropicImageModelCredential
  14. from models_provider.impl.anthropic_model_provider.credential.llm import AnthropicLLMModelCredential
  15. from models_provider.impl.anthropic_model_provider.model.image import AnthropicImage
  16. from models_provider.impl.anthropic_model_provider.model.llm import AnthropicChatModel
  17. from maxkb.conf import PROJECT_DIR
  18. openai_llm_model_credential = AnthropicLLMModelCredential()
  19. openai_image_model_credential = AnthropicImageModelCredential()
  20. model_info_list = [
  21. ModelInfo('claude-3-opus-20240229', '', ModelTypeConst.LLM,
  22. openai_llm_model_credential, AnthropicChatModel
  23. ),
  24. ModelInfo('claude-3-sonnet-20240229', '', ModelTypeConst.LLM, openai_llm_model_credential,
  25. AnthropicChatModel),
  26. ModelInfo('claude-3-haiku-20240307', '', ModelTypeConst.LLM, openai_llm_model_credential,
  27. AnthropicChatModel),
  28. ModelInfo('claude-3-5-sonnet-20240620', '', ModelTypeConst.LLM, openai_llm_model_credential,
  29. AnthropicChatModel),
  30. ModelInfo('claude-3-5-haiku-20241022', '', ModelTypeConst.LLM, openai_llm_model_credential,
  31. AnthropicChatModel),
  32. ModelInfo('claude-3-5-sonnet-20241022', '', ModelTypeConst.LLM, openai_llm_model_credential,
  33. AnthropicChatModel),
  34. ]
  35. image_model_info = [
  36. ModelInfo('claude-3-5-sonnet-20241022', '', ModelTypeConst.IMAGE, openai_image_model_credential,
  37. AnthropicImage),
  38. ]
  39. model_info_manage = (
  40. ModelInfoManage.builder()
  41. .append_model_info_list(model_info_list)
  42. .append_default_model_info(model_info_list[0])
  43. .append_model_info_list(image_model_info)
  44. .append_default_model_info(image_model_info[0])
  45. .build()
  46. )
  47. class AnthropicModelProvider(IModelProvider):
  48. def get_model_info_manage(self):
  49. return model_info_manage
  50. def get_model_provide_info(self):
  51. return ModelProvideInfo(provider='model_anthropic_provider', name='Anthropic', icon=get_file_content(
  52. os.path.join(PROJECT_DIR, "apps", 'models_provider', 'impl', 'anthropic_model_provider', 'icon',
  53. 'anthropic_icon_svg')))