Commit 3852e25d

Lilian <lilian@openai.com>
2022-06-15 12:15:44
V0.20.0: Add moderation endpoint (#134) (#101)
* V0.19.1: Add moderation endpoint (#134) * Add moderation endpoint * Add version * version to model * s/version/model * fix formatting * model default to None * fix test * update value error message * version to 0.20.0
1 parent 64c4533
Changed files (4)
openai/api_resources/__init__.py
@@ -10,4 +10,5 @@ from openai.api_resources.error_object import ErrorObject  # noqa: F401
 from openai.api_resources.file import File  # noqa: F401
 from openai.api_resources.fine_tune import FineTune  # noqa: F401
 from openai.api_resources.model import Model  # noqa: F401
+from openai.api_resources.moderation import Moderation  # noqa: F401
 from openai.api_resources.search import Search  # noqa: F401
openai/api_resources/moderation.py
@@ -0,0 +1,22 @@
+from typing import List, Optional, Union
+
+from openai.openai_object import OpenAIObject
+
+
+class Moderation(OpenAIObject):
+    VALID_MODEL_NAMES: List[str] = ["text-moderation-stable", "text-moderation-latest"]
+
+    @classmethod
+    def get_url(self):
+        return "/moderations"
+
+    @classmethod
+    def create(cls, input: Union[str, List[str]], model: Optional[str] = None):
+        if model not in cls.VALID_MODEL_NAMES:
+            raise ValueError(
+                f"The parameter model should be chosen from {cls.VALID_MODEL_NAMES} "
+                f"and it is default to be None."
+            )
+
+        instance = cls()
+        return instance.request("post", cls.get_url(), {"input": input, "model": model})
openai/__init__.py
@@ -18,6 +18,7 @@ from openai.api_resources import (
     File,
     FineTune,
     Model,
+    Moderation,
     Search,
 )
 from openai.error import APIError, InvalidRequestError, OpenAIError
@@ -55,6 +56,7 @@ __all__ = [
     "FineTune",
     "InvalidRequestError",
     "Model",
+    "Moderation",
     "OpenAIError",
     "Search",
     "api_base",
openai/version.py
@@ -1,1 +1,1 @@
-VERSION = "0.19.0"
+VERSION = "0.20.0"