3333
3434 from datacustomcode .io .reader .base import BaseDataCloudReader
3535 from datacustomcode .io .writer .base import BaseDataCloudWriter , WriteMode
36+ from datacustomcode .proxy .client .base import BaseProxyClient
3637 from datacustomcode .spark .base import BaseSparkSessionProvider
3738
3839
@@ -106,12 +107,14 @@ class Client:
106107 _reader : BaseDataCloudReader
107108 _writer : BaseDataCloudWriter
108109 _file : DefaultFindFilePath
110+ _proxy : BaseProxyClient
109111 _data_layer_history : dict [DataCloudObjectType , set [str ]]
110112
111113 def __new__ (
112114 cls ,
113115 reader : Optional [BaseDataCloudReader ] = None ,
114116 writer : Optional ["BaseDataCloudWriter" ] = None ,
117+ proxy : Optional [BaseProxyClient ] = None ,
115118 spark_provider : Optional ["BaseSparkSessionProvider" ] = None ,
116119 ) -> Client :
117120 if cls ._instance is None :
@@ -143,9 +146,21 @@ def __new__(
143146 elif reader is None or (
144147 config .reader_config is not None and config .reader_config .force
145148 ):
149+ if config .proxy_config is None :
150+ raise ValueError (
151+ "Proxy config is required when reader is built from config"
152+ )
153+ proxy_init = config .proxy_config .to_object (spark )
154+ print (f"chuy1 reader, proxy_init: { proxy_init } " )
155+
146156 reader_init = config .reader_config .to_object (spark ) # type: ignore
157+ print (f"chuy2 reader, reader_init: { reader_init } , spark: { spark } " )
147158 else :
159+ print ("chuy2 reader" )
148160 reader_init = reader
161+ if config .proxy_config is None :
162+ raise ValueError ("Proxy config is required when reader is provided" )
163+ proxy_init = config .proxy_config .to_object (spark )
149164 if config .writer_config is None and writer is None :
150165 raise ValueError (
151166 "Writer config is required when writer is not provided"
@@ -159,6 +174,7 @@ def __new__(
159174 cls ._instance ._reader = reader_init
160175 cls ._instance ._writer = writer_init
161176 cls ._instance ._file = DefaultFindFilePath ()
177+ cls ._instance ._proxy = proxy_init
162178 cls ._instance ._data_layer_history = {
163179 DataCloudObjectType .DLO : set (),
164180 DataCloudObjectType .DMO : set (),
@@ -217,6 +233,9 @@ def write_to_dmo(
217233 self ._validate_data_layer_history_does_not_contain (DataCloudObjectType .DLO )
218234 return self ._writer .write_to_dmo (name , dataframe , write_mode , ** kwargs )
219235
236+ def call_llm_gateway (self , LLM_MODEL_ID : str , prompt : str , maxTokens : int ):
237+ self ._proxy .call_llm_gateway (LLM_MODEL_ID , prompt , maxTokens )
238+
220239 def find_file_path (self , file_name : str ) -> Path :
221240 """Return a file path"""
222241
0 commit comments