
    h                       d Z ddlm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      Z0e0Z1 G d de0      Z2 G d de      Z3 G d de-      Z4 G d de-      Z5 G d  d!e      Z6 G d" d#e      Z7e7Z8 G d$ d%e&e      Z9 G d& d'e      Z:e#d(   Z; G d) d*ed+,      Z< G d- d.e:      Z= G d/ d0e      Z>d1 Z? G d2 d3e      Z@ G d4 d5e@      ZA G d6 d7e&e      ZB G d8 d9ed+,      ZC G d: d;e@      ZD G d< d=e      ZE G d> d?eE      ZF G d@ dAeE      ZG G dB dCe      ZH G dD dEe      ZI G dF dGed+,      ZJ G dH dIed+,      ZK G dJ dKeI      ZL G dL dMeI      ZM G dN dOe      ZN G dP dQeN      ZOe G dR dSe             ZP G dT dUed+,      ZQ G dV dWe      ZR G dX dYeR      ZS G dZ d[ed+,      ZT G d\ d]e      ZUe4j                           G d^ d_e      ZW G d` dae      ZX G db dced+,      ZY G dd deed+,      ZZ G df dge      Z[ G dh die      Z\ G dj dke      Z] G dl dme      Z^ G dn doe      Z_ G dp dqe      Z` G dr dse&e      Za G dt dued+,      Zb G dv dwed+,      Zc G dx dyed+,      Zd G dz d{ed+,      Ze G d| d}e      Zf G d~ ded+,      Zg G d de      Zh G d de4      Zi G d de      Zjy# 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)Iterator)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__     O/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langsmith/schemas.pyr   r   0   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.readO       r(   c                     y)zSeek function.Nr'   )r-   offsetwhences      r)   seekzBinaryIOLike.seekS   r0   r(   c                     y)zGet value function.Nr'   r-   s    r)   getvaluezBinaryIOLike.getvalueW   r0   r(   N))r.   intreturnbytes)r   )r2   r9   r3   r9   r:   r9   )r:   r;   )r"   r#   r$   r%   r/   r4   r7   r'   r(   r)   r+   r+   K   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)   ConfigrF   d   s    1"&r(   rJ   )
r"   r#   r$   r%   r&   r   rB   rC   rD   rJ   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)   rL   rL   k   s    N
r(   rL   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>y       hll9S r(   default_factoryr   
created_atNr?   rA   rB   rC   rD   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)   rg   zExampleCreate.__init__        4 r(   )r"   r#   r$   r%   r&   r   rZ   rB   rC   rD   r\   r]   r_   ra   rb   rg   __classcell__ri   s   @r)   rN   rN   u   s    * 1STJT',T':F$:(-d(;G%;).t)<H&<-1E*18<K5<#t#6: 3:$(M>(! !r(   rN   c                      e Zd ZU dZded<   y)ExampleUpsertWithAttachmentsz Example create with attachments.r   r>   Nr!   r'   r(   r)   rn   rn      s    *r(   rn   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)   rp   rp      s    !r(   rp   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<   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   rP   c                 L    t        j                  dt        j                        S )Nr   )tz)r   fromtimestampr   rU   r'   r(   r)   rV   zExample.<lambda>   s     6 6qX\\ J r(   rX   r   rZ   z$00000000-0000-0000-0000-000000000000r?   r>   NOptional[datetime]modified_atrO   rb   z#Optional[dict[str, AttachmentInfo]]r]   rs   	_host_url
_tenant_idc                @    t        |   di | || _        || _        y)Initialize a Dataset object.Nr'   )rf   rg   r{   r|   )r-   r{   r|   kwargsri   s       r)   rg   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>   rP   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=''))ri   rP   r>   r   r6   s    r)   __repr__zExample.__repr__   s8    ..!dggYmDOO;LHUYU]U]T^^`aar(   )NN)r{   rs   r|   rO   r   r
   r:   Noner:   rs   )r"   r#   r$   r%   r&   r   rZ   r   r>   rz   rb   r]   r   r{   r|   rg   propertyr   r   rk   rl   s   @r)   ru   ru      s    H JJ  T*P%QRJR&+D&9K#9$(M>(7<T7JK4J.*48I}8!,T!:J: $(%)	% 	% #	% 		%
 
	%  br(   ru   c                      e Zd ZU dZded<   y)ExampleSearchzExample returned via search.r   rP   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)rY   descriptionzdict[str, str]renamez List of attachment names to keep	list[str]retainN)
r"   r#   r$   r%   r   dictr   r&   listr   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   rP   NrO   r>   r?   rA   rB   rC   rD   r[   r\   zOptional[Attachments]r]   zOptional[AttachmentsOperations]attachments_operationsc                      e Zd ZdZdZy)ExampleUpdate.ConfigrG   TNr"   r#   r$   r%   rH   r'   r(   r)   rJ   r      
    1r(   rJ   c                $    t        |   di | yrd   re   rh   s     r)   rg   zExampleUpdate.__init__   rj   r(   )r"   r#   r$   r%   r&   r>   r   rB   rC   rD   r\   r]   r   rJ   rg   rk   rl   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   nameNrs   r   zOptional[DataType]	data_typec                      e Zd ZdZdZy)DatasetBase.ConfigrG   TNr   r'   r(   r)   rJ   r      r   r(   rJ   )r"   r#   r$   r%   r&   r   r   rJ   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                  8    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<   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   rP   r   rZ   Nr?   ry   rz   Optional[int]example_countsession_countlast_session_start_timerA   inputs_schemaoutputs_schemaz%Optional[list[DatasetTransformation]]transformationsrD   rs   r{   rO   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'   )poprf   rg   r{   r|   r   )r-   r{   r|   r   r   ri   s        r)   rg   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   rP   r6   s    r)   r   zDataset.url6  s}     >>  ..)$*;*;)<==..)S-A,B*TWWIVVnn%Zy99r(   )NNN)
r{   rs   r|   rO   r   rs   r   r
   r:   r   r   )r"   r#   r$   r%   r&   r   rz   r   r   r   r   r   r   rD   r   r{   r|   r   rg   r   r   rk   rl   s   @r)   r   r     s    H&+D&9K#9#'M='#'M='26/6.2M+2/3N,3=AO:A)-H&-*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   B  s    / $D
$Or(   r   c                 
    di iS )NrD   r'   r'   r(   r)   _default_extrar   I  s    r(   c                  l   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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   rP   r   r   r   
start_timerun_typeNry   end_timerX   Optional[dict]extrars   error
serializedOptional[list[dict]]eventsr   rB   rC   rO   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).rD   )r   
setdefaultr6   s    r)   rD   zRunBase.metadata  s,     ::DJzz$$Z44r(   c                8    | j                   j                  d      S )z"Retrieve the revision ID (if any).revision_id)rD   getr6   s    r)   r   zRunBase.revision_id  s     }}  //r(   c                j    | j                   y| j                   | j                  z
  j                         S )zLatency in seconds.N)r   r   total_secondsr6   s    r)   latencyzRunBase.latency  s-     == />>@@r(   c                n    | j                    d| j                   d| j                   d| j                   dS )r   r   z, name='z', run_type='r   )ri   rP   r   r   r6   s    r)   r   zRunBase.__repr__  s3    ..!dggYhtyykt}}o]_``r(   c                      e Zd ZdZdZy)RunBase.ConfigrG   TN)r"   r#   r$   r%   rI   r'   r(   r)   rJ   r     s    1"&r(   rJ   r:   dict[str, Any])r:   rO   )r:   Optional[float])r"   r#   r$   r%   r&   r   r   r   r   r   r   r   r   rB   rC   r   r   r   r]   r   rD   r   r   r   rJ   r'   r(   r)   r   r   M  s+    	H(
I* M" $(H '-!.AE>A=E=;!%J%F#'F ' .FD.""G^"/+/./@$(M>(@ $D
$6AFBK> 4 5 5 0 0 A Aa' 'r(   r   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
<   	 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(<   d3d4 fd)Zed5d*       Zed6d+       Z ed6d,       Z!ed7d-       Z"ed7d.       Z#ed8d/       Z$ed8d0       Z%ed9d1       Z&ed9d2       Z' xZ(S ):Runz$Run schema when loading from the DB.NrO   
session_idOptional[list[UUID]]child_run_idszOptional[list[Run]]
child_runsrA   feedback_statsrs   app_pathmanifest_idstatusr   prompt_tokenscompletion_tokenstotal_tokenszOptional[dict[str, int]]prompt_token_detailscompletion_token_detailsry   first_token_timeOptional[Decimal]
total_costprompt_costcompletion_costzOptional[dict[str, Decimal]]prompt_cost_detailscompletion_cost_details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   rP   rB   Nr'   )r   r   rf   rg   r{   r   stripr   r   	isoformatrP   )r-   r{   r   rB   ri   s       r)   rg   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   r6   s    r)   r   zRun.url  s,     >>dmmnn%dmm_55r(   c                    | j                   S )zAlias for prompt_tokens.)r   r6   s    r)   input_tokenszRun.input_tokens  s     !!!r(   c                    | j                   S )zAlias for completion_tokens.)r   r6   s    r)   output_tokenszRun.output_tokens  s     %%%r(   c                    | j                   S )zAlias for prompt_cost.)r   r6   s    r)   
input_costzRun.input_cost  s     r(   c                    | j                   S )zAlias for completion_cost.)r   r6   s    r)   output_costzRun.output_cost  s     ###r(   c                    | j                   S )zAlias for prompt_token_details.)r   r6   s    r)   input_token_detailszRun.input_token_details  s     (((r(   c                    | j                   S )zAlias for output_token_details.)r   r6   s    r)   output_token_detailszRun.output_token_details  s     ,,,r(   c                    | j                   S )zAlias for prompt_cost_details.)r   r6   s    r)   input_cost_detailszRun.input_cost_details  s     '''r(   c                    | j                   S )z"Alias for completion_cost_details.)r   r6   s    r)   output_cost_detailszRun.output_cost_details!  s     +++r(   rR   r{   rs   r   r
   r:   r   r   )r:   z
int | None)r:   zDecimal | None)r:   zdict[str, int] | None)r:   zdict[str, Decimal] | None))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{   rg   r   r   r  r	  r  r  r  r  r  r  rk   rl   s   @r)   r   r     s   .!%J%-*.M'.(&*J#*M/3N,3&"Hm"7"&K&: FM .#'M='/'+}+/"&L-&15929 :>6= ,0(/-$(J!(M%)K")G)-O&-C8<5< =A9@ ,0N(/!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   rB   rC   ry   r   r   rs   r   r   rO   r   r   r   r   r`   r   inputs_s3_urlsoutputs_s3_urlsrP   r   session_namer   input_attachmentsoutput_attachmentsr   r   r   Attachmentsr]   Nr!   r'   r(   r)   r   r   3  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.Nry   last_reviewed_timeadded_at)r"   r#   r$   r%   r)  r&   r*  r'   r(   r)   r(  r(  P  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   typerX   rA   rD   NzOptional[Union[UUID, str]]user_idrs   	user_name)
r"   r#   r$   r%   r&   r   r   rD   r.  r/  r'   r(   r)   r,  r,  Y  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)   r1  r1  j  s     D. r(   r1  c                       e Zd ZU dZdZded<   y)ModelFeedbackSourcezModel feedback source.modelzLiteral['model']r-  Nr3  r'   r(   r)   r5  r5  p  s     $D
$r(   r5  c                      e Zd ZdZdZ	 dZy)FeedbackSourceTypezFeedback source type.r2  r6  N)r"   r#   r$   r%   APIMODELr'   r(   r)   r8  r8  v  s    
C2E"r(   r8  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   rP   Nry   rZ   rz   rO   run_idr   r   key
SCORE_TYPEscore
VALUE_TYPEvaluers   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.ConfigrG   TNr   r'   r(   r)   rJ   rJ    r   r(   rJ   )r"   r#   r$   r%   r&   rZ   rz   r@  rB  rC  rD  rF  r   rG  rH  r   rJ   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.floatrB  rs   labelNr!   r'   r(   r)   rL  rL    s    5LCNr(   rL  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-  r   minmaxz Optional[list[FeedbackCategory]]
categoriesNr!   r'   r(   r)   rP  rP    s,    D
::	4	400@r(   rP  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,  rF  NzOptional[FeedbackConfig]feedback_configr   r   )r"   r#   r$   r%   r&   rV  r   r'   r(   r)   rU  rU    s&    ,''%04O-4% E> r(   rU  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   rP   r   rZ   rz   NrE  rF  )r"   r#   r$   r%   r&   rF  r'   r(   r)   rX  rX    s*    &H,248O182r(   rX  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   rP   c                 H    t        j                  t        j                        S rR   rS   r'   r(   r)   rV   zTracerSession.<lambda>  rW   r(   rX   r   r   Nry   r   rs   r   r   rA   r   	tenant_idrO   reference_dataset_idr?   r{   c                    t        |   di | || _        | j                  j                  0| j                  j                  t        j                        | _        yy)r  N)tzinfor'   )rf   rg   r{   r   r_  replacer   rU   )r-   r{   r   ri   s      r)   rg   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{   r\  rP   r6   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   r6   s    r)   rD   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   rc  r6   s    r)   r   zTracerSession.tags  s-     ::tzz!9Izz&!!r(   rR   r  r   r   )r:   r   )r"   r#   r$   r%   r&   r   r   r   r   r   r   r   r{   rg   r   r   rD   r   rk   rl   s   @r)   rZ  rZ    s    
 	H  1STJT+#'H ')!%K%)D-"&*E#*)O0((J*48I}8K   & & " "r(   rZ  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   ry   last_run_start_timerA   r   zOptional[list[dict[str, Any]]]
run_facetsr   r   r   r   first_token_p50first_token_p99r   
error_rateNr!   r'   r(   r)   rg  rg    s    
 ,$$?$$6=  D$$H++8,,)..-!!M""G&&C((G((>)r(   rg  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'   r6   s    r)   r-  zBaseMessageLike.type;  s    r(   N)r:   r   )r"   r#   r$   r%   r&   r   r-  r'   r(   r)   rq  rq  2  s(    AL%%%C; ;r(   rq  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)   rv  rv  @  s    4 ,	H(r(   rv  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   rP   r   r   Nrs   r   c                 H    t        j                  t        j                        S rR   rS   r'   r(   r)   rV   zAnnotationQueue.<lambda>T  rW   r(   rX   r   rZ   c                 H    t        j                  t        j                        S rR   rS   r'   r(   r)   rV   zAnnotationQueue.<lambda>V  rW   r(   
updated_atr\  )	r"   r#   r$   r%   r&   r   r   rZ   r|  r'   r(   r)   ry  ry  K  sP    )H8
I+!%K%: 1STJT> 1STJTCODr(   ry  c                       e Zd ZU dZdZded<   y)AnnotationQueueWithDetailsz,Represents an annotation queue with details.Nrs   rubric_instructions)r"   r#   r$   r%   r  r&   r'   r(   r)   r~  r~  \  s    6)--;r(   r~  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_endpointr9   scale_up_qsize_triggerscale_up_nthreads_limitscale_down_nempty_trigger
size_limitr   size_limit_bytesNr!   r'   r(   r)   r  r  c  s:    ,  D<  7""AO/##8r(   r  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   versionNry   license_expiration_timezOptional[BatchIngestConfig]batch_ingest_configrA   instance_flags)	r"   r#   r$   r%   r  r&   r  r  r  r'   r(   r)   r  r  t  s;    1GS.26/6+7;4;/3N,3r(   r  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   rP   display_namer   rZ   Nrs   tenant_handle)r"   r#   r$   r%   r&   r  r'   r(   r)   r  r    s)    ,G)*#'M='r(   r  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   rP   r   r   r   
expires_atNr!   r'   r(   r)   r  r    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]timerA   r   Nr!   r'   r(   r)   r  r    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.r9   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    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   rP   Nrs   r   r   r\  r   rZ   rz   r]  rA   r   r   experiments_infor   c                X    | j                   d| j                   vri S | j                   d   S r   rc  r6   s    r)   rD   zComparativeExperiment.metadata  rd  r(   r   )r"   r#   r$   r%   r&   r   r   r   r  r   r   rD   r'   r(   r)   r  r    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   rP   r   r  r  NrO   r   repo_id	parent_idrs   r  ry   rZ   r|  rX   r   example_run_idsr   r   num_downloads	num_viewsparent_commit_hash)r"   r#   r$   r%   r&   r   r  r  r  rZ   r|  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_handleNrs   r   readmerP   r\  r   rZ   r|  r^   	is_publicis_archivedr   r   original_repo_idupstream_repo_idr  	full_namer9   	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]reposr9   r   Nr!   r'   r(   r)   r  r  J  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  r|  r  N)r"   r#   r$   r%   r  r  r|  r  r'   r(   r)   r  r  S  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.
    r9   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.
    r9   r  	reasoningNr!   r'   r(   r)   r  r  u  s    
 JNr(   r  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)InputCostDetailszvBreakdown of input token costs.

    Does *not* need to sum to full input cost. Does *not* need to have all keys.
    rM  r  r  r  Nr!   r'   r(   r)   r  r    s)    
 L% r(   r  c                  (    e Zd ZU dZded<   	 ded<   y)OutputCostDetailszxBreakdown of output token costs.

    Does *not* need to sum to full output cost. Does *not* need to have all keys.
    rM  r  r  Nr!   r'   r(   r)   r  r    s    
 L&r(   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<   y)UsageMetadatazUsage metadata for a message, such as token counts.

    This is a standard representation of token usage that is consistent across models.
    r9   r  r	  r   zNotRequired[InputTokenDetails]r  zNotRequired[OutputTokenDetails]r  zNotRequired[float]r  r  r   zNotRequired[InputCostDetails]r  zNotRequired[OutputCostDetails]r  Nr!   r'   r(   r)   r  r    sk    
 JPA77 :9 #"'##(""'55/770r(   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<   y)ExtractedUsageMetadatazUsage metadata dictionary extracted from a run.

    Should be the same as UsageMetadata, but does not require all
    keys to be present.
    r9   r  r	  r   r  r  r  r  rM  r  r  r   r  r  r  r  Nr!   r'   r(   r)   r  r    sc     33****,,+'('((/**0r(   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.r9   countr   example_idsNr!   r'   r(   r)   r  r    s    MJ45r(   r  c                  .    e Zd ZU dZ ee      Zded<   y)ExampleWithRunszExample with runs.rX   z	list[Run]runsN)r"   r#   r$   r%   r   r   r  r&   r'   r(   r)   r  r    s    D1D)1"r(   r  c                  &    e Zd ZU dZded<   ded<   y)ExperimentResultsz>Results container for experiment data with stats and examples.rg  statszIterator[ExampleWithRuns]examples_with_runsNr!   r'   r(   r)   r  r    s    H11r(   r  )kr%   
__future__r   collections.abcr   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   rA  r   tupler;   r&  r+   r=   rL   _AttachmentLikerN   ExampleUploadWithAttachmentsrn   rp   ru   r   r   r   ExampleUpdateWithAttachmentsr   r   DatasetTransformationTyper   r   r   r   r   r   r  r   r(  r,  r1  r5  r8  r<  rL  rP  rU  rX  rZ  rg  rq  rv  ry  r~  r  r  update_forward_refsr  r  r  r  r  r  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TK I !I !,  - sD 
) 
 $ ?IU ?-k -`Y U'i U'p,' ,D	#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 
	 *%  y *	  1I 1D1Ye 1:6Y 6#g #2	 2y&    s   M M76M7