
    >'hl                    n   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 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.Z/ G d d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      Z5e5Z6 G d# d$e$e	      Z7 G d% d&e      Z8e!d'   Z9 G d( d)ed*+      Z: G d, d-e8      Z; G d. d/e      Z<d0 Z= G d1 d2e      Z> G d3 d4e>      Z? G d5 d6e$e	      Z@ G d7 d8ed*+      ZA G d9 d:e>      ZB G d; d<e      ZC G d= d>eC      ZD G d? d@eC      ZE G dA dBe	      ZF G dC dDe      ZG G dE dFed*+      ZH G dG dHed*+      ZI G dI dJeG      ZJ G dK dLeG      ZK G dM dNe      ZL G dO dPeL      ZMe G dQ dRe             ZN G dS dTed*+      ZO G dU dVe      ZP G dW dXeP      ZQ G dY dZed*+      ZR G d[ d\e      ZSe2j                           G d] d^e      ZU G d_ d`e      ZV G da dbed*+      ZW G dc dded*+      ZX G de dfe      ZY G dg dhe      ZZ G di dje      Z[ G dk dle      Z\ G dm dne      Z] G do dpe      Z^ G dq dre$e	      Z_ G ds dted*+      Z` G du dved*+      Za G dw dxe      Zb G dy dze      Zcy# e$ r dd	lmZmZmZmZmZmZ Y w xY w){zSchemas for the LangSmith API.    )annotations)datetime	timedeltatimezone)Decimal)Enum)Any
NamedTupleOptionalProtocol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__     X/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/langsmith/schemas.pyr   r   /   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.readN       r'   c                     y)zSeek function.Nr&   )r,   offsetwhences      r(   seekzBinaryIOLike.seekR   r/   r'   c                     y)zGet value function.Nr&   r,   s    r(   getvaluezBinaryIOLike.getvalueV   r/   r'   N))r-   intreturnbytes)r   )r1   r8   r2   r8   r9   r8   )r9   r:   )r!   r"   r#   r$   r.   r3   r6   r&   r'   r(   r*   r*   J   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(   ConfigrE   c   s    1"&r'   rI   )
r!   r"   r#   r$   r%   r   rA   rB   rC   rI   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(   rK   rK   j   s    N
r'   rK   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>x       hll9S r'   default_factoryr   
created_atNr>   r@   rA   rB   rC   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(   rf   zExampleCreate.__init__        4 r'   )r!   r"   r#   r$   r%   r   rY   rA   rB   rC   r[   r\   r^   r`   ra   rf   __classcell__rh   s   @r(   rM   rM   t   s    * 1STJT',T':F$:(-d(;G%;).t)<H&<-1E*18<K5<#t#6: 3:$(M>(! !r'   rM   c                      e Zd ZU dZded<   y)ExampleUpsertWithAttachmentsz Example create with attachments.r   r=   Nr    r&   r'   r(   rm   rm      s    *r'   rm   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(   ro   ro      s    !r'   ro   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   rO   c                 L    t        j                  dt        j                        S )Nr   )tz)r   fromtimestampr   rT   r&   r'   r(   rU   zExample.<lambda>   s     6 6qX\\ J r'   rW   r   rY   z$00000000-0000-0000-0000-000000000000r>   r=   NOptional[datetime]modified_atz	list[Run]runsrN   ra   z#Optional[dict[str, AttachmentInfo]]r\   rr   	_host_url
_tenant_idc                @    t        |   di | || _        || _        y)Initialize a Dataset object.Nr&   )re   rf   r{   r|   )r,   r{   r|   kwargsrh   s       r(   rf   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=   rO   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=''))rh   rO   r=   r   r5   s    r(   __repr__zExample.__repr__   s8    ..!dggYmDOO;LHUYU]U]T^^`aar'   )NN)r{   rr   r|   rN   r   r	   r9   Noner9   rr   )r!   r"   r#   r$   r%   r   rY   r   r=   ry   listrz   ra   r\   r   r{   r|   rf   propertyr   r   rj   rk   s   @r(   rt   rt      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'   rt   c                      e Zd ZU dZded<   y)ExampleSearchzExample returned via search.r   rO   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)rX   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   rO   NrN   r=   r>   r@   rA   rB   rC   rZ   r[   zOptional[Attachments]r\   zOptional[AttachmentsOperations]attachments_operationsc                      e Zd ZdZdZy)ExampleUpdate.ConfigrF   TNr!   r"   r#   r$   rG   r&   r'   r(   rI   r      
    1r'   rI   c                $    t        |   di | yrc   rd   rg   s     r(   rf   zExampleUpdate.__init__   ri   r'   )r!   r"   r#   r$   r%   r=   r   rA   rB   rC   r[   r\   r   rI   rf   rj   rk   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   nameNrr   r   zOptional[DataType]	data_typec                      e Zd ZdZdZy)DatasetBase.ConfigrF   TNr   r&   r'   r(   rI   r      r   r'   rI   )r!   r"   r#   r$   r%   r   r   rI   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   rO   r   rY   Nr>   rx   ry   Optional[int]example_countsession_countlast_session_start_timer@   inputs_schemaoutputs_schemaz%Optional[list[DatasetTransformation]]transformationsrr   r{   rN   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&   )popre   rf   r{   r|   r   )r,   r{   r|   r   r   rh   s        r(   rf   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   rO   r5   s    r(   r   zDataset.url5  s}     >>  ..)$*;*;)<==..)S-A,B*TWWIVVnn%Zy99r'   )NNN)
r{   rr   r|   rN   r   rr   r   r	   r9   r   r   )r!   r"   r#   r$   r%   r   ry   r   r   r   r   r   r   r   r{   r|   r   rf   r   r   rj   rk   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.Nr_   tagsr   as_of)r!   r"   r#   r$   r   r%   r&   r'   r(   r   r   A  s    / $D
$Or'   r   c                 
    di iS )NrC   r&   r&   r'   r(   _default_extrar   H  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   rO   r   r   r   
start_timerun_typeNrx   end_timerW   Optional[dict]extrarr   error
serializedOptional[list[dict]]eventsr   rA   rB   rN   reference_example_idparent_run_idr_   r   z-Union[Attachments, dict[str, AttachmentInfo]]r\   c                `    | j                   i | _         | j                   j                  di       S zRetrieve the metadata (if any).rC   )r   
setdefaultr5   s    r(   rC   zRunBase.metadata  s,     ::DJzz$$Z44r'   c                8    | j                   j                  d      S )z"Retrieve the revision ID (if any).revision_id)rC   getr5   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   )rh   rO   r   r   r5   s    r(   r   zRunBase.__repr__  s3    ..!dggYhtyykt}}o]_``r'   c                      e Zd ZdZdZy)RunBase.ConfigrF   TN)r!   r"   r#   r$   rH   r&   r'   r(   rI   r     s    1"&r'   rI   r9   dict[str, Any])r9   rN   )r!   r"   r#   r$   r%   r   r   r   r   r   r   r   r   rA   rB   r   r   r   r\   r   rC   r   r   rI   r&   r'   r(   r   r   L  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.NrN   
session_idOptional[list[UUID]]child_run_idszOptional[list[Run]]
child_runsr@   feedback_statsrr   app_pathmanifest_idstatusr   prompt_tokenscompletion_tokenstotal_tokensrx   first_token_timeOptional[Decimal]
total_costprompt_costcompletion_costparent_run_idsr   trace_id r>   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   rO   rA   Nr&   )r   r   re   rf   r{   r   stripr   r   	isoformatrO   )r,   r{   r   rA   rh   s       r(   rf   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   r5   s    r(   r   zRun.url  s,     >>dmmnn%dmm_55r'   rQ   r{   rr   r   r	   r9   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{   rf   r   r   rj   rk   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   rA   rB   rx   r   r   rr   r   r   rN   r   r   r   r   r_   r   inputs_s3_urlsoutputs_s3_urlsrO   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.Nrx   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   typerW   r@   rC   NzOptional[Union[UUID, str]]user_idrr   	user_name)
r!   r"   r#   r$   r%   r   r   rC   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  -  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   3  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   rO   Nrx   rY   ry   rN   run_idr   r   key
SCORE_TYPEscore
VALUE_TYPEvaluerr   commentzUnion[str, dict, None]
correctionOptional[FeedbackSourceBase]feedback_sourcer   comparative_experiment_idfeedback_group_idr   r   c                      e Zd ZdZdZy)FeedbackBase.ConfigrF   TNr   r&   r'   r(   rI   r2  `  r   r'   rI   )r!   r"   r#   r$   r%   rY   ry   r(  r*  r+  r,  r.  r   r/  r0  r   rI   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*  rr   labelNr    r&   r'   r(   r4  r4  f  s    5LCNr'   r4  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(   r8  r8  o  s,    D
::	4	400@r'   r8  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  r.  NzOptional[FeedbackConfig]feedback_configr   r   )r!   r"   r#   r$   r%   r?  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   rO   r   rY   ry   Nr-  r.  )r!   r"   r#   r$   r%   r.  r&   r'   r(   rA  rA    s*    &H,248O182r'   rA  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   rO   c                 H    t        j                  t        j                        S rQ   rR   r&   r'   r(   rU   zTracerSession.<lambda>  rV   r'   rW   r   r   Nrx   r   rr   r   r   r@   r   	tenant_idrN   reference_dataset_idr>   r{   c                    t        |   di | || _        | j                  j                  0| j                  j                  t        j                        | _        yy)r   N)tzinfor&   )re   rf   r{   r   rH  replacer   rT   )r,   r{   r   rh   s      r(   rf   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{   rE  rO   r5   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   r5   s    r(   rC   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   rL  r5   s    r(   r   zTracerSession.tags  s-     ::tzz!9Izz&!!r'   rQ   r   r   r   )r9   r   )r!   r"   r#   r$   r%   r   r   r   r   r   r   r   r{   rf   r   r   rC   r   rj   rk   s   @r(   rC  rC    s    
 	H  1STJT+#'H ')!%K%)D-"&*E#*)O0((J*48I}8K   & & " "r'   rC  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   rx   last_run_start_timer@   r   zOptional[list[dict[str, Any]]]
run_facetsr   r   r   r   first_token_p50first_token_p99r9  
error_rateNr    r&   r'   r(   rP  rP    s    
 ,$$?$$6=  D$$H++8,,)..-!!M""G&&C((G((>)r'   rP  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&   r5   s    r(   r  zBaseMessageLike.type  s    r'   N)r9   r   )r!   r"   r#   r$   r%   r   r  r&   r'   r(   rZ  rZ    s(    AL%%%C; ;r'   rZ  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(   r_  r_    s    4 ,	H(r'   r_  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   rO   r   r   Nrr   r   c                 H    t        j                  t        j                        S rQ   rR   r&   r'   r(   rU   zAnnotationQueue.<lambda>  rV   r'   rW   r   rY   c                 H    t        j                  t        j                        S rQ   rR   r&   r'   r(   rU   zAnnotationQueue.<lambda>  rV   r'   
updated_atrE  )	r!   r"   r#   r$   r%   r   r   rY   re  r&   r'   r(   rb  rb    sP    )H8
I+!%K%: 1STJT> 1STJTCODr'   rb  c                       e Zd ZU dZdZded<   y)AnnotationQueueWithDetailsz,Represents an annotation queue with details.Nrr   rubric_instructions)r!   r"   r#   r$   rh  r%   r&   r'   r(   rg  rg    s    6)--;r'   rg  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_endpointr8   scale_up_qsize_triggerscale_up_nthreads_limitscale_down_nempty_trigger
size_limitr   size_limit_bytesNr    r&   r'   r(   rj  rj     s:    ,  D<  7""AO/##8r'   rj  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   versionNrx   license_expiration_timezOptional[BatchIngestConfig]batch_ingest_configr@   instance_flags)	r!   r"   r#   r$   rs  r%   rt  ru  rv  r&   r'   r(   rr  rr  1  s;    1GS.26/6+7;4;/3N,3r'   rr  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   rO   display_namer   rY   Nrr   tenant_handle)r!   r"   r#   r$   r%   rz  r&   r'   r(   rx  rx  @  s)    ,G)*#'M='r'   rx  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   rO   r   r   r   
expires_atNr    r&   r'   r(   r|  r|  L  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]timer@   r   Nr    r&   r'   r(   r  r  W  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.r8   dayshoursminutesNr    r&   r'   r(   r  r  b  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  m  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   rO   Nrr   r   r   rE  r   rY   ry   rF  r@   r   r   experiments_infor   c                X    | j                   d| j                   vri S | j                   d   S r   rL  r5   s    r(   rC   zComparativeExperiment.metadata  rM  r'   r   )r!   r"   r#   r$   r%   r   r   r   r  r   r   rC   r&   r'   r(   r  r  x  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_hashr   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   rO   r   r  r  NrN   r   repo_id	parent_idrr   r  rx   rY   re  rW   r   example_run_idsr   r   num_downloads	num_viewsparent_commit_hash)r!   r"   r#   r$   r%   r   r  r  r  rY   re  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_handleNrr   r   readmerO   rE  r   rY   re  r]   	is_publicis_archivedr   r   original_repo_idupstream_repo_idr  	full_namer8   	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]reposr8   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  re  r  N)r!   r"   r#   r$   r  r  re  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.
    r8   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.
    r8   r  	reasoningNr    r&   r'   r(   r  r  2  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.
    r8   input_tokensoutput_tokensr   zNotRequired[InputTokenDetails]input_token_detailszNotRequired[OutputTokenDetails]output_token_detailsNr    r&   r'   r(   r  r  B  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.r8   countr   example_idsNr    r&   r'   r(   r  r  Z  s    MJ45r'   r  )dr$   
__future__r   r   r   r   decimalr   enumr   typingr	   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   tupler:   r  r*   r<   rK   _AttachmentLikerM   ExampleUploadWithAttachmentsrm   ro   rt   r   r   r   ExampleUpdateWithAttachmentsr   r   DatasetTransformationTyper   r   r   r   r   r   r   r  r  r  r  r  r   r$  r4  r8  r>  rA  rC  rP  rZ  r_  rb  rg  rj  rr  update_forward_refsrx  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 6{!    s   L L43L4