o
    ưi                     @   s$  d dl mZmZ d dlmZmZmZ deeee	f defddZ
G dd deZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZd#S )$    )UnionLiteral)	BaseModelFieldfield_validatorvreturnc                 C   s   | di g fv r	dS t | trd| v r| d S t | trFg }| D ]!}t |tr6d|v r6|d r5||d  qt |tr@|| qd|S t | trM| S td)N  text
zContent must be a string)
isinstancedictlistappendstrjoin
ValueError)r   new_vitemr	   r	   S/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/sap/chat/models.pyvalidate_different_content   s$   




r   c                   @   .   e Zd ZU edddZed ed< eed< dS )TextContentr   typedefaultaliastype_N)__name__
__module____qualname__r   r   r   __annotations__r   r	   r	   r	   r   r         
 r   c                   @   s"   e Zd ZU eed< dZeed< dS )ImageURLContenturlautodetailN)r   r    r!   r   r"   r'   r	   r	   r	   r   r$      s   
 r$   c                   @   r   )ImageContentZ	image_urlr   r   r   N)r   r    r!   r   r   r   r"   r$   r	   r	   r	   r   r(   #   r#   r(   c                   @   s   e Zd ZU eed< eed< dS )FunctionObjname	argumentsN)r   r    r!   r   r"   r	   r	   r	   r   r)   (   s   
 r)   c                   @   sb   e Zd ZU dZeed< eed< di dZeed< dZe	ed< e
dd	d
ededefddZdS )FunctionToolr
   descriptionr*   objectr   
properties
parametersFstrictbeforemoder   r   c                 C   s6   |sdi dS d|vrddi|}d|vri |d< |S )zMEnsure parameters has type='object' as required by SAP Orchestration Service.r.   r/   r   r0   r	   )clsr   r	   r	   r   ensure_object_type3   s   
zFunctionTool.ensure_object_typeN)r   r    r!   r-   r   r"   r1   r   r2   boolr   classmethodr7   r	   r	   r	   r   r,   -   s   
 
r,   c                   @   r   )ChatCompletionToolfunctionr   r   r   N)r   r    r!   r   r   r   r"   r,   r	   r	   r	   r   r:   @   r#   r:   c                   @   s6   e Zd ZU eed< edddZed ed< eed< dS )MessageToolCallidr;   r   r   r   N)	r   r    r!   r   r"   r   r   r   r)   r	   r	   r	   r   r<   E   s   
 r<   c                   @   s:   e Zd ZU dZdZed ed< eed< eddde	Z
dS )	
SAPMessagez>
    Model for SystemChatMessage and DeveloperChatMessage
    system)r?   Z	developerrolecontentr3   r4   N)r   r    r!   __doc__r@   r   r"   r   r   r   _content_validatorr	   r	   r	   r   r>   K   s
   
 r>   c                   @   s>   e Zd ZU dZed ed< eeee	e
eee	f  f ed< dS )SAPUserMessageuserr@   rA   N)r   r    r!   r@   r   r"   r   r   r   r(   r   r	   r	   r	   r   rD   V   s
   
 rD   c                   @   sV   e Zd ZU dZed ed< dZeed< dZeed< g Z	e
e ed< edddeZd	S )
SAPAssistantMessageZ	assistantr@   r
   rA   refusal
tool_callsr3   r4   N)r   r    r!   r@   r   r"   rA   r   rG   rH   r   r<   r   r   rC   r	   r	   r	   r   rF   ]   s   
 rF   c                   @   s>   e Zd ZU dZed ed< eed< eed< edddeZ	dS )SAPToolChatMessageZtoolr@   Ztool_call_idrA   r3   r4   N)
r   r    r!   r@   r   r"   r   r   r   rC   r	   r	   r	   r   rI   g   s
   
 rI   c                   @   s&   e Zd ZU edddZed ed< dS )ResponseFormatr   r   r   )r   Zjson_objectr   N)r   r    r!   r   r   r   r"   r	   r	   r	   r   rJ   o   s   
 rJ   c                   @   sB   e Zd ZU dZeed< eed< eeddZeed< dZ	e
ed< d	S )
JSONResponseSchemar
   r-   r*   Zschema)default_factoryr   schema_Fr2   N)r   r    r!   r-   r   r"   r   r   rM   r2   r8   r	   r	   r	   r   rK   s   s
   
 rK   c                   @   r   )ResponseFormatJSONSchemaZjson_schemar   r   r   N)r   r    r!   r   r   r   r"   rK   r	   r	   r	   r   rN   z   r#   rN   N)typingr   r   Zpydanticr   r   r   r   r   r   r   r   r$   r(   r)   r,   r:   r<   r>   rD   rF   rI   rJ   rK   rN   r	   r	   r	   r   <module>   s"    
