| 1234567891011121314151617181920212223242526272829303132333435363738 | from typing import Optionalfrom configs import dify_configfrom services.recommend_app.recommend_app_factory import RecommendAppRetrievalFactoryclass RecommendedAppService:    @classmethod    def get_recommended_apps_and_categories(cls, language: str) -> dict:        """        Get recommended apps and categories.        :param language: language        :return:        """        mode = dify_config.HOSTED_FETCH_APP_TEMPLATES_MODE        retrieval_instance = RecommendAppRetrievalFactory.get_recommend_app_factory(mode)()        result = retrieval_instance.get_recommended_apps_and_categories(language)        if not result.get("recommended_apps") and language != "en-US":            result = (                RecommendAppRetrievalFactory.get_buildin_recommend_app_retrieval().fetch_recommended_apps_from_builtin(                    "en-US"                )            )        return result    @classmethod    def get_recommend_app_detail(cls, app_id: str) -> Optional[dict]:        """        Get recommend app detail.        :param app_id: app id        :return:        """        mode = dify_config.HOSTED_FETCH_APP_TEMPLATES_MODE        retrieval_instance = RecommendAppRetrievalFactory.get_recommend_app_factory(mode)()        result = retrieval_instance.get_recommend_app_detail(app_id)        return result
 |