diff --git a/semantic_router/encoders/aurelio.py b/semantic_router/encoders/aurelio.py
index 8b2501ba4faa0a22a5a18c5500a300e77fa63f95..c50c6c4e51d648221b2421cdf4dcfb3481ef6c35 100644
--- a/semantic_router/encoders/aurelio.py
+++ b/semantic_router/encoders/aurelio.py
@@ -1,6 +1,6 @@
 import os
 from typing import Any, List, Optional
-from pydantic.v1 import Field
+from pydantic import Field
 
 from aurelio_sdk import AurelioClient, AsyncAurelioClient, EmbeddingResponse
 
diff --git a/semantic_router/encoders/clip.py b/semantic_router/encoders/clip.py
index d30f5e1fa8c80a54ec8131f62ca99a14ce663ddf..065ff115bede8d4597b57a62857627ea8099525f 100644
--- a/semantic_router/encoders/clip.py
+++ b/semantic_router/encoders/clip.py
@@ -1,7 +1,7 @@
 from typing import Any, List, Optional
 
 import numpy as np
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 from typing import Dict
 from semantic_router.encoders import DenseEncoder
 
diff --git a/semantic_router/encoders/cohere.py b/semantic_router/encoders/cohere.py
index 04b878141a4b33d742d5bb28a5bfc8bcd1347d19..e919bae110769f87f3c76ff58104ef14a30b34a7 100644
--- a/semantic_router/encoders/cohere.py
+++ b/semantic_router/encoders/cohere.py
@@ -1,7 +1,7 @@
 import os
 from typing import Any, List, Optional
 
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.encoders import DenseEncoder
 from semantic_router.utils.defaults import EncoderDefault
diff --git a/semantic_router/encoders/fastembed.py b/semantic_router/encoders/fastembed.py
index 5cda5e643746c660cd6e820cb767a6a333981b2d..2c9977955994f100366d67ef75a419f83fd55bce 100644
--- a/semantic_router/encoders/fastembed.py
+++ b/semantic_router/encoders/fastembed.py
@@ -1,7 +1,7 @@
 from typing import Any, List, Optional
 
 import numpy as np
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.encoders import DenseEncoder
 
diff --git a/semantic_router/encoders/huggingface.py b/semantic_router/encoders/huggingface.py
index c791e1c35a24d4f42e32e9e6291101249acfb5ff..f553a082f663bb6dc697c9ecd80eb581fb21be73 100644
--- a/semantic_router/encoders/huggingface.py
+++ b/semantic_router/encoders/huggingface.py
@@ -25,7 +25,7 @@ import time
 import os
 from typing import Any, List, Optional, Dict
 
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.encoders import DenseEncoder
 from semantic_router.utils.logger import logger
diff --git a/semantic_router/encoders/mistral.py b/semantic_router/encoders/mistral.py
index 46bc89aec0ed9ed41fffc5734fa5a7658f6f5cd7..6c3a2f5ed64f2a2c581b1aa8241fb81930c07c42 100644
--- a/semantic_router/encoders/mistral.py
+++ b/semantic_router/encoders/mistral.py
@@ -4,7 +4,7 @@ import os
 from time import sleep
 from typing import Any, List, Optional
 
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.encoders import DenseEncoder
 from semantic_router.utils.defaults import EncoderDefault
diff --git a/semantic_router/encoders/openai.py b/semantic_router/encoders/openai.py
index fb8a83f097e252a7fcd03a356f648077eb267cda..065e32b7934726be90c6ca9a2fde35619c2d8215 100644
--- a/semantic_router/encoders/openai.py
+++ b/semantic_router/encoders/openai.py
@@ -2,7 +2,7 @@ from asyncio import sleep as asleep
 import os
 from time import sleep
 from typing import Any, List, Optional, Union
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 import openai
 from openai import OpenAIError
diff --git a/semantic_router/index/base.py b/semantic_router/index/base.py
index 97fe3bd4eadc4066f172ed159d0adef7f88f4e5b..884106c0fbe5b6fa79f201b761d2b18368282be5 100644
--- a/semantic_router/index/base.py
+++ b/semantic_router/index/base.py
@@ -2,7 +2,7 @@ from typing import Any, List, Optional, Tuple, Union, Dict
 import json
 
 import numpy as np
-from pydantic.v1 import BaseModel
+from pydantic import BaseModel
 
 from semantic_router.schema import ConfigParameter, SparseEmbedding, Utterance
 from semantic_router.route import Route
diff --git a/semantic_router/index/pinecone.py b/semantic_router/index/pinecone.py
index 303b47157533fbe71a74231ce550a2485d1f8e30..b4ba144e89fefe739f5a1d0dbc1ac84be58460f6 100644
--- a/semantic_router/index/pinecone.py
+++ b/semantic_router/index/pinecone.py
@@ -8,7 +8,7 @@ import json
 from typing import Any, Dict, List, Optional, Union, Tuple
 
 import numpy as np
-from pydantic.v1 import BaseModel, Field
+from pydantic import BaseModel, Field
 
 from semantic_router.index.base import BaseIndex
 from semantic_router.schema import ConfigParameter, SparseEmbedding
diff --git a/semantic_router/index/qdrant.py b/semantic_router/index/qdrant.py
index 0da5c25eb9dd8891a5d1aa9ef1338b8a07c0caf3..12337eda0085b7557dcdcc931e7051a1d4383063 100644
--- a/semantic_router/index/qdrant.py
+++ b/semantic_router/index/qdrant.py
@@ -1,7 +1,7 @@
 from typing import Any, Dict, List, Optional, Tuple, Union
 
 import numpy as np
-from pydantic.v1 import Field
+from pydantic import Field
 
 from semantic_router.index.base import BaseIndex
 from semantic_router.schema import ConfigParameter, Metric, SparseEmbedding, Utterance
diff --git a/semantic_router/llms/base.py b/semantic_router/llms/base.py
index bbd39b4ef4fdfe2fa6527cba6419d91137fd7946..02ea277765e7c9bcfe031e6c743f8bce3ffb0f9e 100644
--- a/semantic_router/llms/base.py
+++ b/semantic_router/llms/base.py
@@ -1,7 +1,7 @@
 import json
 from typing import Any, List, Optional, Dict
 
-from pydantic.v1 import BaseModel
+from pydantic import BaseModel
 
 from semantic_router.schema import Message
 from semantic_router.utils.logger import logger
diff --git a/semantic_router/llms/cohere.py b/semantic_router/llms/cohere.py
index 05a9b1bdb0f84f175103e741742777525469a3f1..d37f979d623613c91bbc9a433b6b03d7a9f9cb3f 100644
--- a/semantic_router/llms/cohere.py
+++ b/semantic_router/llms/cohere.py
@@ -1,7 +1,7 @@
 import os
 from typing import Any, List, Optional
 
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.llms import BaseLLM
 from semantic_router.schema import Message
diff --git a/semantic_router/llms/llamacpp.py b/semantic_router/llms/llamacpp.py
index 102f7fff7d253533a9b6e195cf5aaa8f7a9d3984..8431be14f93753abef286d66c36904c85ed8873e 100644
--- a/semantic_router/llms/llamacpp.py
+++ b/semantic_router/llms/llamacpp.py
@@ -2,7 +2,7 @@ from contextlib import contextmanager
 from pathlib import Path
 from typing import Any, Optional, List, Dict
 
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.llms.base import BaseLLM
 from semantic_router.schema import Message
diff --git a/semantic_router/llms/mistral.py b/semantic_router/llms/mistral.py
index 8ddd1482975f4cb091816bcd197c416ac3e39da7..732cd7b17f9ca09ac4104c70bd7883c3ff8b970a 100644
--- a/semantic_router/llms/mistral.py
+++ b/semantic_router/llms/mistral.py
@@ -1,7 +1,7 @@
 import os
 from typing import Any, List, Optional
 
-from pydantic.v1 import PrivateAttr
+from pydantic import PrivateAttr
 
 from semantic_router.llms import BaseLLM
 from semantic_router.schema import Message
diff --git a/semantic_router/route.py b/semantic_router/route.py
index 50d516fa5bbe31d7eff25b8ece8372801649abbd..7008ff0040c29a3d43535a5462328f6cb16741df 100644
--- a/semantic_router/route.py
+++ b/semantic_router/route.py
@@ -2,7 +2,7 @@ import json
 import re
 from typing import Any, Callable, Dict, List, Optional, Union
 
-from pydantic.v1 import BaseModel
+from pydantic import BaseModel
 
 from semantic_router.llms import BaseLLM
 from semantic_router.schema import Message, RouteChoice
diff --git a/semantic_router/routers/base.py b/semantic_router/routers/base.py
index e4376b421b1d9a87b964443795c2ccd4d2e1cab5..3628fda8553a8a6e6979d6684e2fdfaa1611ead5 100644
--- a/semantic_router/routers/base.py
+++ b/semantic_router/routers/base.py
@@ -4,7 +4,7 @@ import os
 import random
 import hashlib
 from typing import Any, Callable, Dict, List, Optional, Tuple, Union
-from pydantic.v1 import BaseModel, Field
+from pydantic import BaseModel, Field
 
 import numpy as np
 import yaml  # type: ignore
diff --git a/semantic_router/routers/hybrid.py b/semantic_router/routers/hybrid.py
index 36ccd8f94c5e4aa1360462a34ad10382f0c92171..994fcb2dfc8c5e4d85589ca5cf777c2ab7a26d26 100644
--- a/semantic_router/routers/hybrid.py
+++ b/semantic_router/routers/hybrid.py
@@ -1,6 +1,6 @@
 from typing import Dict, List, Optional
 import asyncio
-from pydantic.v1 import Field
+from pydantic import Field
 
 import numpy as np
 
diff --git a/semantic_router/schema.py b/semantic_router/schema.py
index c9e63943823aef590f993c0a2910197d2b78a0f9..adb881fa1cedf56a2e103b7208e2b518e1bf0799 100644
--- a/semantic_router/schema.py
+++ b/semantic_router/schema.py
@@ -3,7 +3,7 @@ from difflib import Differ
 from enum import Enum
 import numpy as np
 from typing import List, Optional, Union, Any, Dict, Tuple
-from pydantic.v1 import BaseModel, Field
+from pydantic import BaseModel, Field
 from semantic_router.utils.logger import logger
 from aurelio_sdk.schema import BM25Embedding
 
diff --git a/semantic_router/utils/function_call.py b/semantic_router/utils/function_call.py
index d03c0798836294400c44ddca280a75e09e500988..f5fd5a87fd100482cd65f3502c3f8f67349e36c2 100644
--- a/semantic_router/utils/function_call.py
+++ b/semantic_router/utils/function_call.py
@@ -1,7 +1,7 @@
 import inspect
 from typing import Any, Callable, Dict, List, Optional, Union
 
-from pydantic.v1 import BaseModel
+from pydantic import BaseModel
 
 from semantic_router.llms import BaseLLM
 from semantic_router.schema import Message, RouteChoice
diff --git a/tests/unit/test_schema.py b/tests/unit/test_schema.py
index d0fce781be2bbf948b43b7a48d3047ab7318b92a..bd5d9729a53d40acbbf76ba48b39bd22b92b214e 100644
--- a/tests/unit/test_schema.py
+++ b/tests/unit/test_schema.py
@@ -1,5 +1,5 @@
 import pytest
-from pydantic.v1 import ValidationError
+from pydantic import ValidationError
 
 from semantic_router.schema import (
     Message,