recommended_app_service.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from typing import Optional
  2. from configs import dify_config
  3. from services.recommend_app.recommend_app_factory import RecommendAppRetrievalFactory
  4. class RecommendedAppService:
  5. @classmethod
  6. def get_recommended_apps_and_categories(cls, language: str) -> dict:
  7. """
  8. Get recommended apps and categories.
  9. :param language: language
  10. :return:
  11. """
  12. mode = dify_config.HOSTED_FETCH_APP_TEMPLATES_MODE
  13. retrieval_instance = RecommendAppRetrievalFactory.get_recommend_app_factory(mode)()
  14. result = retrieval_instance.get_recommended_apps_and_categories(language)
  15. if not result.get("recommended_apps") and language != "en-US":
  16. result = (
  17. RecommendAppRetrievalFactory.get_buildin_recommend_app_retrieval().fetch_recommended_apps_from_builtin(
  18. "en-US"
  19. )
  20. )
  21. return result
  22. @classmethod
  23. def get_recommend_app_detail(cls, app_id: str) -> Optional[dict]:
  24. """
  25. Get recommend app detail.
  26. :param app_id: app id
  27. :return:
  28. """
  29. mode = dify_config.HOSTED_FETCH_APP_TEMPLATES_MODE
  30. retrieval_instance = RecommendAppRetrievalFactory.get_recommend_app_factory(mode)()
  31. result = retrieval_instance.get_recommend_app_detail(app_id)
  32. return result