12345678910111213141516171819202122232425262728293031323334353637 |
- 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
|