
     JoiX                     J    d dl mZmZ d dlmZmZmZmZ  G d de          ZdS )    )ABCabstractmethod)ListDictAnyOptionalc                       e Zd ZdZedefd            Ze	 d	dedeeee	f                  de
eeee	f                           defd            ZdS )
BaseLLMz,Abstract base class for LLM implementations.returnc                     dS )z%Return the display name of the model.N )selfs    +/root/projects/butler/slack_bot/llm/base.pyget_model_namezBaseLLM.get_model_name   s	     	    Nmessagecontexttoolsc                     dS )ac  
        Generate a response for the given message and context.
        
        Args:
            message: The user's input message.
            context: Conversation history (list of dicts with 'role' and 'content').
            tools: Optional list of tool definitions.
            
        Returns:
            The text response from the LLM.
        Nr   )r   r   r   r   s       r   generate_responsezBaseLLM.generate_response   s	    $ 	r   )N)__name__
__module____qualname____doc__r   strr   r   r   r   r   r   r   r   r   r
   r
      s        66    ^ 
 15	  d38n% T#s(^,-	
 
   ^  r   r
   N)	abcr   r   typingr   r   r   r   r
   r   r   r   <module>r      su    # # # # # # # # , , , , , , , , , , , ,    c     r   