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