moderation_service.py 871 B

12345678910111213141516171819202122
  1. from core.moderation.factory import ModerationFactory, ModerationOutputsResult
  2. from extensions.ext_database import db
  3. from models.model import App, AppModelConfig
  4. class ModerationService:
  5. def moderation_for_outputs(self, app_id: str, app_model: App, text: str) -> ModerationOutputsResult:
  6. app_model_config: AppModelConfig = None
  7. app_model_config = (
  8. db.session.query(AppModelConfig).filter(AppModelConfig.id == app_model.app_model_config_id).first()
  9. )
  10. if not app_model_config:
  11. raise ValueError("app model config not found")
  12. name = app_model_config.sensitive_word_avoidance_dict["type"]
  13. config = app_model_config.sensitive_word_avoidance_dict["config"]
  14. moderation = ModerationFactory(name, app_id, app_model.tenant_id, config)
  15. return moderation.moderation_for_outputs(text)