mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 03:32:23 +08:00
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
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
|