From 87e49058dffddde562969b0b82c547cb806f048e Mon Sep 17 00:00:00 2001
From: James Briggs <35938317+jamescalam@users.noreply.github.com>
Date: Sun, 28 Jan 2024 13:39:15 +0100
Subject: [PATCH] fix type issues

---
 docs/06-threshold-optimization.ipynb | 2 +-
 docs/encoders/openai-embed-3.ipynb   | 4 +---
 semantic_router/encoders/openai.py   | 7 ++++---
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/docs/06-threshold-optimization.ipynb b/docs/06-threshold-optimization.ipynb
index ab46f3ab..cdb649fe 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 70f85834..c4a1ef01 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 7ed4746c..7957f913 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")
-- 
GitLab