From 1a1cfc77b0ca676c97c43badf41d2d384943982a Mon Sep 17 00:00:00 2001
From: Logan <logan.markewich@live.com>
Date: Mon, 1 Apr 2024 15:22:03 -0600
Subject: [PATCH] Pydantic Fixes (#12469)

---
 .../core/instrumentation/events/base.py            |  1 +
 .../llama_index/embeddings/voyageai/base.py        | 14 +++++++-------
 .../llama-index-embeddings-voyageai/pyproject.toml |  2 +-
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/llama-index-core/llama_index/core/instrumentation/events/base.py b/llama-index-core/llama_index/core/instrumentation/events/base.py
index 4c7636004f..061aea2605 100644
--- a/llama-index-core/llama_index/core/instrumentation/events/base.py
+++ b/llama-index-core/llama_index/core/instrumentation/events/base.py
@@ -15,6 +15,7 @@ class BaseEvent(BaseModel):
 
     class Config:
         arbitrary_types_allowed = True
+        copy_on_model_validation = "deep"
 
     def dict(self, **kwargs: Any) -> Dict[str, Any]:
         data = super().dict(**kwargs)
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/llama_index/embeddings/voyageai/base.py b/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/llama_index/embeddings/voyageai/base.py
index ac9e92797f..efcc8a677f 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/llama_index/embeddings/voyageai/base.py
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/llama_index/embeddings/voyageai/base.py
@@ -3,11 +3,11 @@
 import logging
 from typing import Any, List, Optional
 
+from llama_index.core.bridge.pydantic import PrivateAttr
 from llama_index.core.base.embeddings.base import BaseEmbedding
 from llama_index.core.callbacks.base import CallbackManager
 
 import voyageai
-from pydantic import PrivateAttr
 
 logger = logging.getLogger(__name__)
 
@@ -23,8 +23,8 @@ class VoyageEmbedding(BaseEmbedding):
             You can either specify the key here or store it as an environment variable.
     """
 
-    client: voyageai.Client = PrivateAttr(None)
-    aclient: voyageai.client_async.AsyncClient = PrivateAttr()
+    _client: voyageai.Client = PrivateAttr(None)
+    _aclient: voyageai.client_async.AsyncClient = PrivateAttr()
     truncation: Optional[bool] = None
 
     def __init__(
@@ -53,8 +53,8 @@ class VoyageEmbedding(BaseEmbedding):
             **kwargs,
         )
 
-        self.client = voyageai.Client(api_key=voyage_api_key)
-        self.aclient = voyageai.AsyncClient(api_key=voyage_api_key)
+        self._client = voyageai.Client(api_key=voyage_api_key)
+        self._aclient = voyageai.AsyncClient(api_key=voyage_api_key)
         self.truncation = truncation
 
     @classmethod
@@ -62,7 +62,7 @@ class VoyageEmbedding(BaseEmbedding):
         return "VoyageEmbedding"
 
     def _get_embedding(self, texts: List[str], input_type: str) -> List[List[float]]:
-        return self.client.embed(
+        return self._client.embed(
             texts,
             model=self.model_name,
             input_type=input_type,
@@ -72,7 +72,7 @@ class VoyageEmbedding(BaseEmbedding):
     async def _aget_embedding(
         self, texts: List[str], input_type: str
     ) -> List[List[float]]:
-        r = await self.aclient.embed(
+        r = await self._aclient.embed(
             texts,
             model=self.model_name,
             input_type=input_type,
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml
index ebad2fa805..27e7d784e3 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml
@@ -27,7 +27,7 @@ exclude = ["**/BUILD"]
 license = "MIT"
 name = "llama-index-embeddings-voyageai"
 readme = "README.md"
-version = "0.1.3"
+version = "0.1.4"
 
 [tool.poetry.dependencies]
 python = ">=3.8.1,<4.0"
-- 
GitLab