@ -2,7 +2,7 @@ import asyncio
import inspect
import inspect
import warnings
import warnings
from abc import ABC , abstractmethod
from abc import ABC , abstractmethod
from typing import Dict, List , Optional
from typing import Any, Dict, List , Mapping , Optional
from pydantic import Extra , Field , root_validator
from pydantic import Extra , Field , root_validator
@ -65,11 +65,14 @@ class BaseChatModel(BaseLanguageModel, ABC):
) - > LLMResult :
) - > LLMResult :
""" Top Level call """
""" Top Level call """
params = self . dict ( )
params [ " stop " ] = stop
callback_manager = CallbackManager . configure (
callback_manager = CallbackManager . configure (
callbacks , self . callbacks , self . verbose
callbacks , self . callbacks , self . verbose
)
)
run_manager = callback_manager . on_chat_model_start (
run_manager = callback_manager . on_chat_model_start (
{ " name " : self . __class__ . __name__ } , messages
{ " name " : self . __class__ . __name__ } , messages , invocation_params = params
)
)
new_arg_supported = inspect . signature ( self . _generate ) . parameters . get (
new_arg_supported = inspect . signature ( self . _generate ) . parameters . get (
@ -98,12 +101,14 @@ class BaseChatModel(BaseLanguageModel, ABC):
callbacks : Callbacks = None ,
callbacks : Callbacks = None ,
) - > LLMResult :
) - > LLMResult :
""" Top Level call """
""" Top Level call """
params = self . dict ( )
params [ " stop " ] = stop
callback_manager = AsyncCallbackManager . configure (
callback_manager = AsyncCallbackManager . configure (
callbacks , self . callbacks , self . verbose
callbacks , self . callbacks , self . verbose
)
)
run_manager = await callback_manager . on_chat_model_start (
run_manager = await callback_manager . on_chat_model_start (
{ " name " : self . __class__ . __name__ } , messages
{ " name " : self . __class__ . __name__ } , messages , invocation_params = params
)
)
new_arg_supported = inspect . signature ( self . _agenerate ) . parameters . get (
new_arg_supported = inspect . signature ( self . _agenerate ) . parameters . get (
@ -181,6 +186,22 @@ class BaseChatModel(BaseLanguageModel, ABC):
result = self ( [ HumanMessage ( content = message ) ] , stop = stop )
result = self ( [ HumanMessage ( content = message ) ] , stop = stop )
return result . content
return result . content
@property
def _identifying_params ( self ) - > Mapping [ str , Any ] :
""" Get the identifying parameters. """
return { }
@property
@abstractmethod
def _llm_type ( self ) - > str :
""" Return type of chat model. """
def dict ( self , * * kwargs : Any ) - > Dict :
""" Return a dictionary of the LLM. """
starter_dict = dict ( self . _identifying_params )
starter_dict [ " _type " ] = self . _llm_type
return starter_dict
class SimpleChatModel ( BaseChatModel ) :
class SimpleChatModel ( BaseChatModel ) :
def _generate (
def _generate (