| from typing import Optional |
|
|
| from configs import dify_config |
| from services.recommend_app.recommend_app_factory import RecommendAppRetrievalFactory |
|
|
|
|
| class 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 |
|
|