moderation_service.py 910 B

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