@@ -196,6 +196,10 @@ def openai_response(self, client, **kwargs):
196196 """Get the openai response"""
197197 raise NotImplementedError
198198
199+ async def aopenai_response (self , client , ** kwargs ):
200+ """Get the openai response"""
201+ raise NotImplementedError
202+
199203 def invoke (
200204 self , messages : str | BaseMessage | list [BaseMessage ], * args , ** kwargs
201205 ) -> LLMInterface :
@@ -211,8 +215,10 @@ async def ainvoke(
211215 ) -> LLMInterface :
212216 client = self .prepare_client (async_version = True )
213217 input_messages = self .prepare_message (messages )
214- resp = await self .openai_response (
215- client , messages = input_messages , stream = False , ** kwargs
218+ resp = (
219+ await self .aopenai_response (
220+ client , messages = input_messages , stream = False , ** kwargs
221+ )
216222 ).dict ()
217223
218224 return self .prepare_output (resp )
@@ -290,8 +296,7 @@ def prepare_client(self, async_version: bool = False):
290296
291297 return OpenAI (** params )
292298
293- def openai_response (self , client , ** kwargs ):
294- """Get the openai response"""
299+ def prepare_params (self , ** kwargs ):
295300 if "tools_pydantic" in kwargs :
296301 kwargs .pop ("tools_pydantic" )
297302
@@ -313,8 +318,17 @@ def openai_response(self, client, **kwargs):
313318 params = {k : v for k , v in params_ .items () if v is not None }
314319 params .update (kwargs )
315320
321+ return params
322+
323+ def openai_response (self , client , ** kwargs ):
324+ """Get the openai response"""
325+ params = self .prepare_params (** kwargs )
316326 return client .chat .completions .create (** params )
317327
328+ async def aopenai_response (self , client , ** kwargs ):
329+ params = self .prepare_params (** kwargs )
330+ return await client .chat .completions .create (** params )
331+
318332
319333class AzureChatOpenAI (BaseChatOpenAI ):
320334 """OpenAI chat model provided by Microsoft Azure"""
@@ -361,8 +375,7 @@ def prepare_client(self, async_version: bool = False):
361375
362376 return AzureOpenAI (** params )
363377
364- def openai_response (self , client , ** kwargs ):
365- """Get the openai response"""
378+ def prepare_params (self , ** kwargs ):
366379 if "tools_pydantic" in kwargs :
367380 kwargs .pop ("tools_pydantic" )
368381
@@ -384,4 +397,13 @@ def openai_response(self, client, **kwargs):
384397 params = {k : v for k , v in params_ .items () if v is not None }
385398 params .update (kwargs )
386399
400+ return params
401+
402+ def openai_response (self , client , ** kwargs ):
403+ """Get the openai response"""
404+ params = self .prepare_params (** kwargs )
387405 return client .chat .completions .create (** params )
406+
407+ async def aopenai_response (self , client , ** kwargs ):
408+ params = self .prepare_params (** kwargs )
409+ return await client .chat .completions .create (** params )
0 commit comments