
    %Gg                    d   d Z ddlmZ ddlmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZ 	 dd	lmZmZmZmZmZmZ dd
l"m#Z# ddlm$Z$ eeeedf   Z%eee&df   Z' G d de      Z(ee&eee&e)f   e(ee&e#f   f   f   Z*	 e G d de             Z+ G d de      Z, G d de      Z-ee(e-ee&e)f   ee&e#f   f   Z. G d de      Z/e/Z0 G d de/      Z1 G d de      Z2 G d de,      Z3 G d de,      Z4 G d d e      Z5 G d! d"e      Z6e6Z7 G d# d$e&e	      Z8 G d% d&e      Z9e$d'   Z: G d( d)ed*+      Z; G d, d-e9      Z< G d. d/e      Z=d0 Z> G d1 d2e      Z? G d3 d4e?      Z@ G d5 d6e&e	      ZA G d7 d8ed*+      ZB G d9 d:e?      ZC G d; d<e      ZD G d= d>eD      ZE G d? d@eD      ZF G dA dBe	      ZG G dC dDe      ZH G dE dFed*+      ZI G dG dHed*+      ZJ G dI dJeH      ZK G dK dLeH      ZL G dM dNe      ZM G dO dPeM      ZNe G dQ dRe             ZO G dS dTed*+      ZP G dU dVe      ZQ G dW dXed*+      ZR G dY dZe      ZSe3j                           G d[ d\e      ZU G d] d^e      ZV G d_ d`ed*+      ZW G da dbed*+      ZX G dc dde      ZY G de dfe      ZZ G dg dhe      Z[ G di dje      Z\ G dk dle      Z] G dm dne      Z^ G do dpe&e	      Z_ G dq dred*+      Z` G ds dted*+      Za G du dve      Zb G dw dxe      Zcy# e $ r dd	l!mZmZmZmZmZmZ Y w xY w)yzSchemas for the LangSmith API.    )annotations)datetime	timedeltatimezone)Decimal)Enum)	AnyDictList
NamedTupleOptionalProtocolTupleUnionruntime_checkable)UUID)NotRequired	TypedDict)	BaseModelFieldPrivateAttr
StrictBoolStrictFloat	StrictInt)Path)LiteralNc                  &    e Zd ZU dZded<   ded<   y)
Attachmenta  Annotated type that will be stored as an attachment if used.

    Examples:

        .. code-block:: python

            from langsmith import traceable
            from langsmith.schemas import Attachment


            @traceable
            def my_function(bar: int, my_val: Attachment):
                # my_val will be stored as an attachment
                # bar will be stored as inputs
                return bar
    str	mime_typeUnion[bytes, Path]dataN__name__
__module____qualname____doc____annotations__     n/home/kushmeetdev/apache_webroot/langgraph_flaskproject/venv/lib/python3.12/site-packages/langsmith/schemas.pyr   r   2   s    " N
r*   r   c                  ,    e Zd ZdZdddZdd	dZd
dZy)BinaryIOLikez$Protocol for binary IO-like objects.c                     y)zRead function.Nr)   )selfsizes     r+   readzBinaryIOLike.readQ       r*   c                     y)zSeek function.Nr)   )r/   offsetwhences      r+   seekzBinaryIOLike.seekU   r2   r*   c                     y)zGet value function.Nr)   r/   s    r+   getvaluezBinaryIOLike.getvalueY   r2   r*   N))r0   intreturnbytes)r   )r4   r;   r5   r;   r<   r;   )r<   r=   )r$   r%   r&   r'   r1   r6   r9   r)   r*   r+   r-   r-   M   s    .r*   r-   c                      e Zd ZU dZded<    ed      Zded<    ed      Zded<    ed      Zded	<    G d
 d      Z	y)ExampleBasezExample base model.r   
dataset_idNdefaultOptional[Dict[str, Any]]inputsoutputsmetadatac                      e Zd ZdZdZdZy)ExampleBase.Config#Configuration class for the schema.TN)r$   r%   r&   r'   frozenarbitrary_types_allowedr)   r*   r+   ConfigrH   f   s    1"&r*   rL   )
r$   r%   r&   r'   r(   r   rD   rE   rF   rL   r)   r*   r+   r?   r?   ^   sE    ',T':F$:(-d(;G%;).t)<H&<' 'r*   r?   c                  "    e Zd ZU ded<   ded<   y)_AttachmentDictr   r    r!   r"   N)r$   r%   r&   r(   r)   r*   r+   rN   rN   m   s    N
r*   rN   c                       e Zd ZU dZded<    ed       Zded<    ed	      Zd
ed<    ed	      Zd
ed<    ed	      Z	d
ed<   dZ
ded<   dZded<   dZded<   dZded<   dZded<    fdZ xZS )ExampleCreatez Example upload with attachments.Optional[UUID]idc                 H    t        j                  t        j                        S Nr   nowr   utcr)   r*   r+   <lambda>zExampleCreate.<lambda>{       hll9S r*   default_factoryr   
created_atNrA   rC   rD   rE   rF   Optional[Union[str, List[str]]]splitz$Optional[dict[str, _AttachmentLike]]attachmentsFbooluse_source_run_ioOptional[List[str]]use_source_run_attachmentssource_run_idc                $    t        |   di | yzInitialize from dict.Nr)   super__init__r/   r"   	__class__s     r+   ri   zExampleCreate.__init__        4 r*   )r$   r%   r&   r'   r(   r   r\   rD   rE   rF   r^   r_   ra   rc   rd   ri   __classcell__rk   s   @r+   rP   rP   w   s    * 1STJT',T':F$:(-d(;G%;).t)<H&<-1E*18<K5<#t#6: 3:$(M>(! !r*   rP   c                      e Zd ZU dZded<   y)ExampleUpsertWithAttachmentsz Example create with attachments.r   r@   Nr#   r)   r*   r+   rp   rp      s    *r*   rp   c                  0    e Zd ZU dZded<   ded<   ded<   y)	AttachmentInfozInfo for an attachment.r   presigned_urlr-   readerOptional[str]r    Nr#   r)   r*   r+   rr   rr      s    !r*   rr   c                  >    e Zd ZU dZded<    ed       Zded<    e ed      	      Zded
<    ed	      Z	ded<    ee
      Zded<   dZded<    ed	      Zded<   	  ed	      Zded<    ed	      Zded<   	 	 d	 	 	 	 	 	 	 d fdZedd       Zd Z xZS )ExamplezExample model.r   rR   c                 L    t        j                  dt        j                        S )Nr   )tz)r   fromtimestampr   rW   r)   r*   r+   rX   zExample.<lambda>   s     6 6qX\\ J r*   rZ   r   r\   z$00000000-0000-0000-0000-000000000000rA   r@   NOptional[datetime]modified_atz	List[Run]runsrQ   rd   z#Optional[Dict[str, AttachmentInfo]]r_   ru   	_host_url
_tenant_idc                @    t        |   di | || _        || _        y)Initialize a Dataset object.Nr)   )rh   ri   r~   r   )r/   r~   r   kwargsrk   s       r+   ri   zExample.__init__   s#     	"6""$r*   c                    | j                   r^d| j                   d| j                   }| j                  r&| j                    dt	        | j                         | S | j                    | S y)URL of this run within the app.
/datasets/z/e//o/N)r~   r@   rR   r   r   )r/   paths     r+   urlzExample.url   sh     >>0DGG9=D..)S-A,B4&IInn%dV,,r*   c                n    | j                    d| j                   d| j                   d| j                   dS )5Return a string representation of the RunBase object.(id=z, dataset_id=z, link=''))rk   rR   r@   r   r8   s    r+   __repr__zExample.__repr__   s8    ..!dggYmDOO;LHUYU]U]T^^`aar*   )NN)r~   ru   r   rQ   r   r	   r<   Noner<   ru   )r$   r%   r&   r'   r(   r   r\   r   r@   r|   listr}   rd   r_   r   r~   r   ri   propertyr   r   rm   rn   s   @r+   rw   rw      s    H JJ  T*P%QRJR&+D&9K#9D1D)1$(M>(7<T7JK4J.*48I}8!,T!:J: $(%)	% 	% #	% 		%
 
	%  br*   rw   c                      e Zd ZU dZded<   y)ExampleSearchzExample returned via search.r   rR   Nr#   r)   r*   r+   r   r      s
    &Hr*   r   c                  N    e Zd ZU dZ eed      Zded<    eed      Z	ded<   y	)
AttachmentsOperationsz%Operations to perform on attachments.z,Mapping of old attachment names to new names)r[   descriptionzDict[str, str]renamez List of attachment names to keep	List[str]retainN)
r$   r%   r&   r'   r   dictr   r(   r   r   r)   r*   r+   r   r      s5    /"*XFN  *LFI r*   r   c                       e Zd ZU dZded<   dZded<    ed      Zded	<    ed      Zded
<    ed      Z	ded<   dZ
ded<   dZded<   dZded<    G d d      Z fdZ xZS )ExampleUpdatez Example update with attachments.r   rR   NrQ   r@   rA   rC   rD   rE   rF   r]   r^   zOptional[Attachments]r_   zOptional[AttachmentsOperations]attachments_operationsc                      e Zd ZdZdZy)ExampleUpdate.ConfigrI   TNr$   r%   r&   r'   rJ   r)   r*   r+   rL   r      
    1r*   rL   c                $    t        |   di | yrf   rg   rj   s     r+   ri   zExampleUpdate.__init__   rl   r*   )r$   r%   r&   r'   r(   r@   r   rD   rE   rF   r^   r_   r   rL   ri   rm   rn   s   @r+   r   r      s{    *H!%J%',T':F$:(-d(;G%;).t)<H&<-1E*1)-K&->B;B 
! !r*   r   c                      e Zd ZdZdZdZdZy)DataTypezEnum for dataset data types.kvllmchatN)r$   r%   r&   r'   r   r   r   r)   r*   r+   r   r      s    &	B
CDr*   r   c                  L    e Zd ZU dZded<   dZded<   dZded<    G d	 d
      Zy)DatasetBasezDataset base model.r   nameNru   r   zOptional[DataType]	data_typec                      e Zd ZdZdZy)DatasetBase.ConfigrI   TNr   r)   r*   r+   rL   r      r   r*   rL   )r$   r%   r&   r'   r(   r   r   rL   r)   r*   r+   r   r      s)    
I!%K%$(I!( r*   r   )remove_system_messagesconvert_to_openai_messageconvert_to_openai_toolremove_extra_fieldsextract_tools_from_runc                  &    e Zd ZU dZded<   ded<   y)DatasetTransformationz#Schema for dataset transformations.r   r   z%Union[DatasetTransformationType, str]transformation_typeNr#   r)   r*   r+   r   r     s    -
O>>r*   r   F)totalc                  *    e Zd ZU dZded<   ded<    ed      Zded	<   dZd
ed<   dZd
ed<   dZ	ded<   dZ
ded<   dZded<   dZded<    ed      Zded<    ed      Zded<    ed      Zded<   	 	 	 d	 	 	 	 	 	 	 	 	 d fdZedd       Z xZS )DatasetzDataset ORM model.r   rR   r   r\   NrA   r{   r|   Optional[int]example_countsession_countlast_session_start_timerC   inputs_schemaoutputs_schemaz%Optional[List[DatasetTransformation]]transformationsru   r~   rQ   r   _public_pathc                    d|v r|j                  d      |d<   d|v r|j                  d      |d<   t        |   di | || _        || _        || _        y)r   inputs_schema_definitionr   outputs_schema_definitionr   Nr)   )poprh   ri   r~   r   r   )r/   r~   r   r   r   rk   s        r+   ri   zDataset.__init__%  sd     &/&,jj1K&LF?#&&0'-zz2M'NF#$"6""$(r*   c                   | j                   r~| j                  r| j                    | j                   S | j                  r1| j                    dt        | j                         d| j                   S | j                    d| j                   S y)r   r   r   N)r~   r   r   r   rR   r8   s    r+   r   zDataset.url8  s}     >>  ..)$*;*;)<==..)S-A,B*TWWIVVnn%Zy99r*   )NNN)
r~   ru   r   rQ   r   ru   r   r	   r<   r   r   )r$   r%   r&   r'   r(   r   r|   r   r   r   r   r   r   r   r~   r   r   ri   r   r   rm   rn   s   @r+   r   r     s    H&+D&9K#9#'M='#'M='26/6.2M+2/3N,3=AO:A*48I}8!,T!:J:"-d";L-; $(%)&*	) ) #) $	)
 ) 
)&  r*   r   c                  *    e Zd ZU dZdZded<   ded<   y)DatasetVersionz%Class representing a dataset version.Nrb   tagsr   as_of)r$   r%   r&   r'   r   r(   r)   r*   r+   r   r   D  s    / $D
$Or*   r   c                 
    di iS )NrF   r)   r)   r*   r+   _default_extrar   K  s    r*   c                  Z   e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 d	Zd
ed<   	  ee      Zded<   	 d	Z	ded<   	 d	Z
ded<   	 d	Zded<   	  ee      Zded<   	 d	Zded<   	 d	Zded<   	 d	Zded<   	 d	Zded<   	  ee      Zded<   	 ed#d       Zed$d       Zd  Z G d! d"      Zy	)%RunBasea3  Base Run schema.

    A Run is a span representing a single unit of work or operation within your LLM app.
    This could be a single call to an LLM or chain, to a prompt formatting call,
    to a runnable lambda invocation. If you are familiar with OpenTelemetry,
    you can think of a run as a span.
    r   rR   r   r   r   
start_timerun_typeNr{   end_timerZ   Optional[dict]extraru   error
serializedzOptional[List[Dict]]eventsr   rD   rE   rQ   reference_example_idparent_run_idrb   r   z-Union[Attachments, Dict[str, AttachmentInfo]]r_   c                `    | j                   i | _         | j                   j                  di       S zRetrieve the metadata (if any).rF   )r   
setdefaultr8   s    r+   rF   zRunBase.metadata  s,     ::DJzz$$Z44r*   c                8    | j                   j                  d      S )z"Retrieve the revision ID (if any).revision_id)rF   getr8   s    r+   r   zRunBase.revision_id  s     }}  //r*   c                n    | j                    d| j                   d| j                   d| j                   dS )r   r   z, name='z', run_type='r   )rk   rR   r   r   r8   s    r+   r   zRunBase.__repr__  s3    ..!dggYhtyykt}}o]_``r*   c                      e Zd ZdZdZy)RunBase.ConfigrI   TN)r$   r%   r&   r'   rK   r)   r*   r+   rL   r     s    1"&r*   rL   r<   zdict[str, Any])r<   rQ   )r$   r%   r&   r'   r(   r   r   r   r   r   r   r   r   rD   rE   r   r   r   r_   r   rF   r   r   rL   r)   r*   r+   r   r   O  s    	H(
I* M" $(H '-!.AE>A=E=;!%J%F#'F ' .FD.""G^"/+/./@$(M>(@ $D
$6AFBK> 4 5 5 0 0a' 'r*   r   c                      e Zd ZU dZdZded<   	 dZded<   	 dZded<   	 dZd	ed
<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 ded<   	  ed      Zded<   	 dZd ed!<   	  ed      Zded"<   d%d& fd#Zed'd$       Z xZS )(Runz$Run schema when loading from the DB.NrQ   
session_idOptional[List[UUID]]child_run_idszOptional[List[Run]]
child_runsrC   feedback_statsru   app_pathmanifest_idstatusr   prompt_tokenscompletion_tokenstotal_tokensr{   first_token_timeOptional[Decimal]
total_costprompt_costcompletion_costparent_run_idsr   trace_id rA   r   dotted_orderOptional[bool]
in_datasetr~   c                \   |j                  d      sd|j                  d      i|}|j                  dd      xs i }t        |   di |d|i || _        | j
                  j                         s;| j                  s.| j                  j                          | j                   | _        yyy)Initialize a Run object.r   rR   rD   Nr)   )r   r   rh   ri   r~   r   stripr   r   	isoformatrR   )r/   r~   r   rD   rk   s       r+   ri   zRun.__init__  s    zz*% &**T"2=f=FHd+1r161&1"  &&(1C1C#'??#<#<#>"?y ID 2D(r*   c                h    | j                   r&| j                  r| j                    | j                   S y)r   N)r~   r   r8   s    r+   r   zRun.url  s,     >>dmmnn%dmm_55r*   rT   r~   ru   r   r	   r<   r   r   )r$   r%   r&   r'   r   r(   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r~   ri   r   r   rm   rn   s   @r+   r   r     s*   .!%J%-*.M'.(&*J#*M/3N,3&"Hm"7"&K&: FM .#'M='/'+}+/"&L-&1+/(/-$(J!(M%)K")G)-O&-C+/N(/!NCb)L#)
 "&J%+*48I}8J  r*   r   c                  ,    e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
RunTypeEnumz5(Deprecated) Enum for run types. Use string directly.toolchainr   	retriever	embeddingpromptparserN)r$   r%   r&   r'   r  r  r   r  r  r  r  r)   r*   r+   r  r    s(    ?DE
CIIFFr*   r  c                     e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d ed!<   ded"<   d#ed$<   y%)&RunLikeDictz&Run-like dictionary, for type-hinting.r   r   r  r   r   r   r   rD   rE   r{   r   r   ru   r   r   rQ   r   r   Optional[List[dict]]r   rb   r   inputs_s3_urlsoutputs_s3_urlsrR   r   session_namer   input_attachmentsoutput_attachmentsr   r   r   Attachmentsr_   Nr#   r)   r*   r+   r	  r	    s    0
I  !!  
""##((%%&&Nr*   r	  c                  0    e Zd ZU dZdZded<   	 dZded<   y)RunWithAnnotationQueueInfoz&Run schema with annotation queue info.Nr{   last_reviewed_timeadded_at)r$   r%   r&   r'   r  r(   r  r)   r*   r+   r  r    s"    0-1*1.#'H '3r*   r  c                  Z    e Zd ZU dZded<   	  ee      Zded<   	 dZded	<   	 dZ	d
ed<   y)FeedbackSourceBasezBase class for feedback sources.

    This represents whether feedback is submitted from the API, model, human labeler,
        etc.
    r   typerZ   rC   rF   NzOptional[Union[UUID, str]]user_idru   	user_name)
r$   r%   r&   r'   r(   r   r   rF   r  r  r)   r*   r+   r  r    s?     I*).t)DH&D6*.G'.:#I}#<r*   r  c                       e Zd ZU dZdZded<   y)APIFeedbackSourcezAPI feedback source.apizLiteral['api']r  Nr$   r%   r&   r'   r  r(   r)   r*   r+   r  r  *  s     D. r*   r  c                       e Zd ZU dZdZded<   y)ModelFeedbackSourcezModel feedback source.modelzLiteral['model']r  Nr  r)   r*   r+   r  r  0  s     $D
$r*   r  c                      e Zd ZdZdZ	 dZy)FeedbackSourceTypezFeedback source type.r  r   N)r$   r%   r&   r'   APIMODELr)   r*   r+   r"  r"  6  s    
C2E"r*   r"  c                     e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded	<   	 ded
<   	 ded<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	  G d d      Zy)FeedbackBasezFeedback schema.r   rR   Nr{   r\   r|   rQ   run_idr   r   key
SCORE_TYPEscore
VALUE_TYPEvalueru   commentzUnion[str, dict, None]
correctionOptional[FeedbackSourceBase]feedback_sourcer   comparative_experiment_idfeedback_group_idzOptional[Dict]r   c                      e Zd ZdZdZy)FeedbackBase.ConfigrI   TNr   r)   r*   r+   rL   r4  c  r   r*   rL   )r$   r%   r&   r'   r(   r\   r|   r*  r,  r-  r.  r0  r   r1  r2  r   rL   r)   r*   r+   r&  r&  ?  s    H(%)J"),&*K#*2<>	HAE:+E:Q!G]!2)-J&-!48O18%!%J%T04~4X(,~,1 !E> ' r*   r&  c                  (    e Zd ZU dZded<   	 ded<   y)FeedbackCategoryz+Specific value and label pair for feedback.floatr,  ru   labelNr#   r)   r*   r+   r6  r6  i  s    5LCNr*   r6  c                  @    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   y	)
FeedbackConfigz:Represents _how_ a feedback value ought to be interpreted.z0Literal['continuous', 'categorical', 'freeform']r  Optional[float]minmaxz Optional[List[FeedbackCategory]]
categoriesNr#   r)   r*   r+   r:  r:  r  s,    D
::	4	400@r*   r:  c                  <    e Zd ZU dZded<   	 dZded<   	 dZded<   y)	FeedbackCreatez"Schema used for creating feedback.r  r0  NzOptional[FeedbackConfig]feedback_configr   r   )r$   r%   r&   r'   r(   rA  r   r)   r*   r+   r@  r@    s&    ,''%04O-4% E> r*   r@  c                  B    e Zd ZU dZded<   ded<   	 ded<   	 dZded	<   y)
FeedbackzSchema for getting feedback.r   rR   r   r\   r|   Nr/  r0  )r$   r%   r&   r'   r(   r0  r)   r*   r+   rC  rC    s*    &H,248O182r*   rC  c                       e Zd ZU dZded<   	  ed       Zded<   	 dZd	ed
<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 ded<   	 ded<   	  ed      Zded<   dd fdZedd       Zedd       Zedd       Z xZS )TracerSessionzbTracerSession schema for the API.

    Sessions are also referred to as "Projects" in the UI.
    r   rR   c                 H    t        j                  t        j                        S rT   rU   r)   r*   r+   rX   zTracerSession.<lambda>  rY   r*   rZ   r   r   Nr{   r   ru   r   r   rC   r   	tenant_idrQ   reference_dataset_idrA   r~   c                    t        |   di | || _        | j                  j                  0| j                  j                  t        j                        | _        yy)r   N)tzinfor)   )rh   ri   r~   r   rJ  replacer   rW   )r/   r~   r   rk   s      r+   ri   zTracerSession.__init__  sL    "6""??!!)"oo55X\\5JDO *r*   c                l    | j                   r(| j                    d| j                   d| j                   S y)r   r   z/projects/p/N)r~   rG  rR   r8   s    r+   r   zTracerSession.url  s3     >>nn%S(8TWWINNr*   c                X    | j                   d| j                   vri S | j                   d   S r   r   r8   s    r+   rF   zTracerSession.metadata  -     ::4::!=Izz*%%r*   c                X    | j                   d| j                   vrg S | j                   d   S )zRetrieve the tags (if any).r   rN  r8   s    r+   r   zTracerSession.tags  s-     ::tzz!9Izz&!!r*   rT   r   r   r   )r<   r   )r$   r%   r&   r'   r(   r   r   r   r   r   r   r   r~   ri   r   r   rF   r   rm   rn   s   @r+   rE  rE    s    
 	H  1STJT+#'H ')!%K%)D-"&*E#*)O0((J*48I}8K   & & " "r*   rE  c                      e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   y)TracerSessionResultzqA project, hydrated with additional information.

    Sessions are also referred to as "Projects" in the UI.
    r   	run_countzOptional[timedelta]latency_p50latency_p99r   r   r   r{   last_run_start_timerC   r   zOptional[List[Dict[str, Any]]]
run_facetsr   r   r   r   first_token_p50first_token_p99r;  
error_rateNr#   r)   r*   r+   rR  rR    s    
 ,$$?$$6=  D$$H++8,,)..-!!M""G&&C((G((>)r*   rR  c                  <    e Zd ZU dZded<   	 ded<   	 edd       Zy)	BaseMessageLikez7A protocol representing objects similar to BaseMessage.r   contentzDict[Any, Any]additional_kwargsc                     y)z,Type of the Message, used for serialization.Nr)   r8   s    r+   r  zBaseMessageLike.type  s    r*   N)r<   r   )r$   r%   r&   r'   r(   r   r  r)   r*   r+   r\  r\    s(    AL%%%C; ;r*   r\  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)DatasetShareSchemaz*Represents the schema for a dataset share.r   r@   share_tokenr   r   Nr#   r)   r*   r+   ra  ra     s    4 ,	H(r*   ra  c                      e Zd ZU dZded<   	 ded<   	 dZded<   	  ed	 
      Zded<   	  ed 
      Zded<   	 ded<   y)AnnotationQueuezRepresents an annotation queue.r   rR   r   r   Nru   r   c                 H    t        j                  t        j                        S rT   rU   r)   r*   r+   rX   zAnnotationQueue.<lambda>  rY   r*   rZ   r   r\   c                 H    t        j                  t        j                        S rT   rU   r)   r*   r+   rX   zAnnotationQueue.<lambda>  rY   r*   
updated_atrG  )	r$   r%   r&   r'   r(   r   r   r\   rg  r)   r*   r+   rd  rd    sP    )H8
I+!%K%: 1STJT> 1STJTCODr*   rd  c                  X    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 d	ed
<   y)BatchIngestConfigz"Configuration for batch ingestion.r`   use_multipart_endpointr;   scale_up_qsize_triggerscale_up_nthreads_limitscale_down_nempty_trigger
size_limitr   size_limit_bytesNr#   r)   r*   r+   ri  ri    s:    ,  D<  7""AO/##8r*   ri  c                  P    e Zd ZU dZdZded<   	 dZded<   	 dZded	<   	 dZd
ed<   y)LangSmithInfoz'Information about the LangSmith server.r   r   versionNr{   license_expiration_timezOptional[BatchIngestConfig]batch_ingest_configrC   instance_flags)	r$   r%   r&   r'   rr  r(   rs  rt  ru  r)   r*   r+   rq  rq  -  s;    1GS.26/6+7;4;/3N,3r*   rq  c                  D    e Zd ZU dZded<   	 ded<   	 ded<   	 dZded	<   y)
LangSmithSettingsz"Settings for the LangSmith tenant.r   rR   display_namer   r\   Nru   tenant_handle)r$   r%   r&   r'   r(   ry  r)   r*   r+   rw  rw  <  s)    ,G)*#'M='r*   rw  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)	FeedbackIngestTokenz2Represents the schema for a feedback ingest token.r   rR   r   r   r   
expires_atNr#   r)   r*   r+   r{  r{  H  s    <H.	H3+r*   r{  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)	RunEventzRun event schema.r   r   zUnion[datetime, str]timerC   r   Nr#   r)   r*   r+   r~  r~  S  s    
I
$$,r*   r~  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)TimeDeltaInputzTimedelta input schema.r;   dayshoursminutesNr#   r)   r*   r+   r  r  ^  s    !
IJLr*   r  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)DatasetDiffInfoz;Represents the difference information between two datasets.z
List[UUID]examples_modifiedexamples_addedexamples_removedNr#   r)   r*   r+   r  r  i  s     E!!=:  <r*   r  c                      e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded<   	 d	ed
<   	 d	ed<   	 ded<   	 dZded<   	 dZded<   	 dZ	ded<   	 e
dd       Zy)ComparativeExperimentzRepresents a comparative experiment.

    This information summarizes evaluation results comparing
    two or more models on a given dataset.
    r   rR   Nru   r   r   rG  r   r\   r|   rH  rC   r   r
  experiments_infor   c                X    | j                   d| j                   vri S | j                   d   S r   rN  r8   s    r+   rF   zComparativeExperiment.metadata  rO  r*   r   )r$   r%   r&   r'   r(   r   r   r   r  r   r   rF   r)   r*   r+   r  r  t  s     	H?D-:!%K%@OGDJJ&*E#*?-1*1\/3N,3P& &r*   r  c                  L    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded	<   y
)PromptCommitz$Represents a Prompt with a manifest.r   ownerrepocommit_hashzDict[str, Any]manifestz
List[dict]examplesNr#   r)   r*   r+   r  r    s0    .J0
I!(%r*   r  c                      e Zd ZU dZded<   	 ded<   	 ded<   	 dZded	<   	 dZded
<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	  ee      Zded<   	 dZded<   	 dZded<   	 dZded<   y)ListedPromptCommitz;Represents a listed prompt commit with associated metadata.r   rR   r   r  r  NrQ   r   repo_id	parent_idru   r  r{   r\   rg  rZ   r   example_run_idsr   r   num_downloads	num_viewsparent_commit_hash)r$   r%   r&   r'   r(   r   r  r  r  r\   rg  r   r   r  r  r  r  r)   r*   r+   r  r    s    EH6J)
I3"&K&O"G^"5 $I~$8!%K%*%)J")=%)J")B,1$,GO)GH#$M=$> I} :(,,1r*   r  c                  8   e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded<   	 ded	<   	 d
ed<   	 d
ed<   	 ded<   	 ded<   	 ded<   	 dZded<   	 dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 dZ	ded<   	 dZ
ded<   	 ded<   	 dZded<   	 dZded<   y) Promptz"Represents a Prompt with metadata.r   repo_handleNru   r   readmerR   rG  r   r\   rg  r`   	is_publicis_archivedr   r   original_repo_idupstream_repo_idr  	full_namer;   	num_likesr  r  r   liked_by_auth_userlast_commit_hashnum_commitsoriginal_repo_full_nameupstream_repo_full_name)r$   r%   r&   r'   r(   r   r  r  r  r  r  r  r  r)   r*   r+   r  r    s    ,!!%K%( FM #GN,*-O')
O.&*m*3&*m*30N<N"N)--@&*m*& -1]1:-1]1:r*   r  c                  (    e Zd ZU dZded<   	 ded<   y)ListPromptsResponsez A list of prompts with metadata.zList[Prompt]reposr;   r   Nr#   r)   r*   r+   r  r    s    *J&r*   r  c                  &    e Zd ZdZdZ	 dZ	 dZ	 dZy)PromptSortFieldz$Enum for sorting fields for prompts.r  r  rg  r  N)r$   r%   r&   r'   r  r  rg  r  r)   r*   r+   r  r    s%    .#MIJIr*   r  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)InputTokenDetailsz~Breakdown of input token counts.

    Does *not* need to sum to full input token count. Does *not* need to have all keys.
    r;   audiocache_creation
cache_readNr#   r)   r*   r+   r  r    s(    
 J Or*   r  c                  (    e Zd ZU dZded<   	 ded<   y)OutputTokenDetailszBreakdown of output token counts.

    Does *not* need to sum to full output token count. Does *not* need to have all keys.
    r;   r  	reasoningNr#   r)   r*   r+   r  r  .  s    
 JNr*   r  c                  L    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded	<   y
)UsageMetadatazUsage metadata for a message, such as token counts.

    This is a standard representation of token usage that is consistent across models.
    r;   input_tokensoutput_tokensr   zNotRequired[InputTokenDetails]input_token_detailszNotRequired[OutputTokenDetails]output_token_detailsNr#   r)   r*   r+   r  r  >  s<    
 JPA77 :9r*   r  c                  (    e Zd ZU dZded<   	 ded<   y)UpsertExamplesResponsezCResponse object returned from the upsert_examples_multipart method.r;   countr   example_idsNr#   r)   r*   r+   r  r  V  s    MJ45r*   r  )dr'   
__future__r   r   r   r   decimalr   enumr   typingr	   r
   r   r   r   r   r   r   r   uuidr   typing_extensionsr   r   pydantic.v1r   r   r   r   r   r   ImportErrorpydanticpathlibr   r   r)  r   r+  r   r=   r  r-   r?   rN   _AttachmentLikerP   ExampleUploadWithAttachmentsrp   rr   rw   r   r   r   ExampleUpdateWithAttachmentsr   r   DatasetTransformationTyper   r   r   r   r   r   r  r	  r  r  r  r  r"  r&  r6  r:  r@  rC  rE  rR  r\  ra  rd  ri  rq  update_forward_refsrw  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r)   r*   r+   <module>r     s   $ " 2 2  
 
 
  4 $  %:y+t;<
4d?#
 , 3eCJ/U39=MMNNOJ 8   ') 'i 
 sEz!2E#t)4DD
!I !&  - = Y (bk (bVK I !I !,  - sD 
) 
 $ ?IU ?,k ,^Y N'i N'bD' DN	#t 	)5 :4 4= ="!* !%, %# #'9 'TOy O@Ye @!\ !	3| 	33"I 3"l#*- #*L 
;h 
; 
;)% )Ei E"9	 9"	4I 	4    	(	 	(,) ,-y -Ye =i =!&I !&H 9  (2 (2V.;Y .;b') '
c4 
	 *%  I 06Y 6m!    s   L L/.L/