diff --git a/docs/06-threshold-optimization.ipynb b/docs/06-threshold-optimization.ipynb
index ab46f3aba37644310837381475f30aa46ec3246f..cdb649fe17d6da2cd205cc5f656325036b43318a 100644
--- a/docs/06-threshold-optimization.ipynb
+++ b/docs/06-threshold-optimization.ipynb
@@ -194,7 +194,7 @@
     "    \"don't you love politics?\",\n",
     "    \"how's the weather today?\",\n",
     "    \"What's DNA?\",\n",
-    "    \"I'm interested in learning about llama 2\"\n",
+    "    \"I'm interested in learning about llama 2\",\n",
     "]:\n",
     "    print(f\"{utterance} -> {rl(utterance).name}\")"
    ]
diff --git a/docs/encoders/openai-embed-3.ipynb b/docs/encoders/openai-embed-3.ipynb
index 70f8583476ffadaa36e1af70cf526f672f004bc3..c4a1ef01c963f7dfc2ead02c77fac7e16740ff66 100644
--- a/docs/encoders/openai-embed-3.ipynb
+++ b/docs/encoders/openai-embed-3.ipynb
@@ -130,9 +130,7 @@
     ")\n",
     "\n",
     "encoder = OpenAIEncoder(\n",
-    "    name=\"text-embedding-3-large\",\n",
-    "    score_threshold=0.5,\n",
-    "    dimensions=256\n",
+    "    name=\"text-embedding-3-large\", score_threshold=0.5, dimensions=256\n",
     ")"
    ]
   },
diff --git a/semantic_router/encoders/openai.py b/semantic_router/encoders/openai.py
index 7ed4746c5c1fe467dcd39f166b2be0a85af3fbf9..7957f913b342b8fc8a13284783f38d3ca62ce176 100644
--- a/semantic_router/encoders/openai.py
+++ b/semantic_router/encoders/openai.py
@@ -1,9 +1,10 @@
 import os
 from time import sleep
-from typing import List, Optional
+from typing import List, Optional, Union
 
 import openai
 from openai import OpenAIError
+from openai._types import NotGiven
 from openai.types import CreateEmbeddingResponse
 
 from semantic_router.encoders import BaseEncoder
@@ -12,7 +13,7 @@ from semantic_router.utils.logger import logger
 
 class OpenAIEncoder(BaseEncoder):
     client: Optional[openai.Client]
-    dimensions: Optional[int] = None
+    dimensions: Union[int, NotGiven] = NotGiven()
     type: str = "openai"
 
     def __init__(
@@ -20,7 +21,7 @@ class OpenAIEncoder(BaseEncoder):
         name: Optional[str] = None,
         openai_api_key: Optional[str] = None,
         score_threshold: float = 0.82,
-        dimensions: Optional[int] = None,
+        dimensions: Union[int, NotGiven] = NotGiven(),
     ):
         if name is None:
             name = os.getenv("OPENAI_MODEL_NAME", "text-embedding-ada-002")