Team Ai
Apppublic

Underground-Digital/Workflow-Engine

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
openai_moderation.py141 linesDownload Raw Back to __mock
1import re2from typing import Any, Literal, Union3 4from openai._types import NOT_GIVEN, NotGiven5from openai.resources.moderations import Moderations6from openai.types import ModerationCreateResponse7from openai.types.moderation import Categories, CategoryScores, Moderation8 9from core.model_runtime.errors.invoke import InvokeAuthorizationError10 11 12class MockModerationClass:13    def moderation_create(14        self: Moderations,15        *,16        input: Union[str, list[str]],17        model: Union[str, Literal["text-moderation-latest", "text-moderation-stable"]] | NotGiven = NOT_GIVEN,18        **kwargs: Any,19    ) -> ModerationCreateResponse:20        if isinstance(input, str):21            input = [input]22 23        if not re.match(r"^(https?):\/\/[^\s\/$.?#].[^\s]*$", str(self._client.base_url)):24            raise InvokeAuthorizationError("Invalid base url")25 26        if len(self._client.api_key) < 18:27            raise InvokeAuthorizationError("Invalid API key")28 29        for text in input:30            result = []31            if "kill" in text:32                moderation_categories = {33                    "harassment": False,34                    "harassment/threatening": False,35                    "hate": False,36                    "hate/threatening": False,37                    "self-harm": False,38                    "self-harm/instructions": False,39                    "self-harm/intent": False,40                    "sexual": False,41                    "sexual/minors": False,42                    "violence": False,43                    "violence/graphic": False,44                    "illicit": False,45                    "illicit/violent": False,46                }47                moderation_categories_scores = {48                    "harassment": 1.0,49                    "harassment/threatening": 1.0,50                    "hate": 1.0,51                    "hate/threatening": 1.0,52                    "self-harm": 1.0,53                    "self-harm/instructions": 1.0,54                    "self-harm/intent": 1.0,55                    "sexual": 1.0,56                    "sexual/minors": 1.0,57                    "violence": 1.0,58                    "violence/graphic": 1.0,59                    "illicit": 1.0,60                    "illicit/violent": 1.0,61                }62                category_applied_input_types = {63                    "sexual": ["text", "image"],64                    "hate": ["text"],65                    "harassment": ["text"],66                    "self-harm": ["text", "image"],67                    "sexual/minors": ["text"],68                    "hate/threatening": ["text"],69                    "violence/graphic": ["text", "image"],70                    "self-harm/intent": ["text", "image"],71                    "self-harm/instructions": ["text", "image"],72                    "harassment/threatening": ["text"],73                    "violence": ["text", "image"],74                    "illicit": ["text"],75                    "illicit/violent": ["text"],76                }77                result.append(78                    Moderation(79                        flagged=True,80                        categories=Categories(**moderation_categories),81                        category_scores=CategoryScores(**moderation_categories_scores),82                        category_applied_input_types=category_applied_input_types,83                    )84                )85            else:86                moderation_categories = {87                    "harassment": False,88                    "harassment/threatening": False,89                    "hate": False,90                    "hate/threatening": False,91                    "self-harm": False,92                    "self-harm/instructions": False,93                    "self-harm/intent": False,94                    "sexual": False,95                    "sexual/minors": False,96                    "violence": False,97                    "violence/graphic": False,98                    "illicit": False,99                    "illicit/violent": False,100                }101                moderation_categories_scores = {102                    "harassment": 0.0,103                    "harassment/threatening": 0.0,104                    "hate": 0.0,105                    "hate/threatening": 0.0,106                    "self-harm": 0.0,107                    "self-harm/instructions": 0.0,108                    "self-harm/intent": 0.0,109                    "sexual": 0.0,110                    "sexual/minors": 0.0,111                    "violence": 0.0,112                    "violence/graphic": 0.0,113                    "illicit": 0.0,114                    "illicit/violent": 0.0,115                }116                category_applied_input_types = {117                    "sexual": ["text", "image"],118                    "hate": ["text"],119                    "harassment": ["text"],120                    "self-harm": ["text", "image"],121                    "sexual/minors": ["text"],122                    "hate/threatening": ["text"],123                    "violence/graphic": ["text", "image"],124                    "self-harm/intent": ["text", "image"],125                    "self-harm/instructions": ["text", "image"],126                    "harassment/threatening": ["text"],127                    "violence": ["text", "image"],128                    "illicit": ["text"],129                    "illicit/violent": ["text"],130                }131                result.append(132                    Moderation(133                        flagged=False,134                        categories=Categories(**moderation_categories),135                        category_scores=CategoryScores(**moderation_categories_scores),136                        category_applied_input_types=category_applied_input_types,137                    )138                )139 140        return ModerationCreateResponse(id="shiroii kuloko", model=model, results=result)141