Commit 63cc289e

Henrique Oliveira Pinto <hponde@openai.com>
2022-03-18 05:59:27
(Version 0.15.0) Add support for edit call (#82) tag: v0.16.0
* Add support for edit call * Add version bump (0.16.0) Co-authored-by: hallacy <hallacy@openai.com>
1 parent db4750c
Changed files (4)
openai/api_resources/__init__.py
@@ -1,6 +1,7 @@
 from openai.api_resources.answer import Answer  # noqa: F401
 from openai.api_resources.classification import Classification  # noqa: F401
 from openai.api_resources.completion import Completion  # noqa: F401
+from openai.api_resources.edit import Edit  # noqa: F401
 from openai.api_resources.embedding import Embedding  # noqa: F401
 from openai.api_resources.engine import Engine  # noqa: F401
 from openai.api_resources.error_object import ErrorObject  # noqa: F401
openai/api_resources/edit.py
@@ -0,0 +1,32 @@
+import time
+
+from openai import util
+from openai.api_resources.abstract.engine_api_resource import EngineAPIResource
+from openai.error import InvalidRequestError, TryAgain
+
+
+class Edit(EngineAPIResource):
+    engine_required = False
+    OBJECT_NAME = "edit"
+
+    @classmethod
+    def create(cls, *args, **kwargs):
+        """
+        Creates a new edit for the provided input, instruction, and parameters.
+        """
+        start = time.time()
+        timeout = kwargs.pop("timeout", None)
+        if kwargs.get("model", None) is None and kwargs.get("engine", None) is None:
+            raise InvalidRequestError(
+                "Must provide an 'engine' or 'model' parameter to create an Edit.",
+                param="engine",
+            )
+
+        while True:
+            try:
+                return super().create(*args, **kwargs)
+            except TryAgain as e:
+                if timeout is not None and time.time() > start + timeout:
+                    raise
+
+                util.log_info("Waiting for model to warm up", error=e)
openai/__init__.py
@@ -9,6 +9,7 @@ from openai.api_resources import (
     Answer,
     Classification,
     Completion,
+    Edit,
     Embedding,
     Engine,
     ErrorObject,
@@ -42,6 +43,7 @@ __all__ = [
     "Answer",
     "Classification",
     "Completion",
+    "Edit",
     "Embedding",
     "Engine",
     "ErrorObject",
openai/version.py
@@ -1,1 +1,1 @@
-VERSION = "0.15.0"
+VERSION = "0.16.0"