
    =Ki                        S r SSKJr  SSKJr  SSKJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJrJrJrJrJrJrJr  SS	KJr  SS
KJrJrJrJrJrJrJr  SSK J!r!J"r"J#r#  \\\\S4   r$\\%\&\\\S4   r' " S S\5      r(\%\&\\)\&\*4   \(\)\&\4   4   4   r+ \ " S S\5      5       r, " S S\5      r- " S S\#5      r.\\(\.\)\&\*4   \)\&\4   4   r/ " S S\5      r0\0r1 " S S\05      r2 " S S\#5      r3 " S S\-5      r4 " S S\-5      r5 " S S \5      r6 " S! S"\5      r7\7r8 " S# S$\&\5      r9 " S% S&\5      r:\!S'   r; " S( S)\#S*S+9r< " S, S-\:5      r= " S. S/\5      r>S0 r? " S1 S2\5      r@ " S3 S4\@5      rA " S5 S6\&\5      rB " S7 S8\#S*S+9rC " S9 S:\@5      rD " S; S<\5      rE " S= S>\E5      rF " S? S@\E5      rG " SA SB\5      rH " SC SD\5      rI " SE SF\#S*S+9rJ " SG SH\#S*S+9rK " SI SJ\I5      rL " SK SL\I5      rM " SM SN\5      rN " SO SP\N5      rO\ " SQ SR\5      5       rP " SS ST\#S*S+9rQ " SU SV\#S*S+9rR " SW SX\5      rS " SY SZ\S5      rT " S[ S\\#S*S+9rU " S] S^\5      rV\4R                  5          " S_ S`\5      rX " Sa Sb\5      rY " Sc Sd\#S*S+9rZ " Se Sf\#S*S+9r[ " Sg Sh\5      r\ " Si Sj\5      r] " Sk Sl\5      r^ " Sm Sn\5      r_ " So Sp\5      r` " Sq Sr\5      ra " Ss St\&\5      rb " Su Sv\#S*S+9rc " Sw Sx\#S*S+9rd " Sy Sz\#S*S+9re " S{ S|\#S*S+9rf " S} S~\#5      rg " S S\#S*S+9rh " S S\#5      ri " S S\45      rj " S S\#5      rk " S S\#5      rl " S S\5      rm " S S\5      rn " S S\5      ro " S S\5      rp " S S\o5      rq " S S\5      rrg)zSchemas for the LangSmith API.    )annotations)Iterator)datetime	timedeltatimezone)Decimal)Enum)Path)	AnnotatedAny
NamedTupleOptionalProtocolUnionruntime_checkable)UUID)	BaseModel
ConfigDictFieldPrivateAttr
StrictBoolStrictFloat	StrictInt)LiteralNotRequired	TypedDictNc                  .    \ rS rSr% SrS\S'   S\S'   Srg)	
Attachment$   a^  Annotated type that will be stored as an attachment if used.

Examples:
    ```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]data N__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r$       S/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/langsmith/schemas.pyr   r   $   s      N
r-   r   c                  >    \ rS rSrSrSS	S jjrS
SS jjrSS jrSrg)BinaryIOLike@   z$Protocol for binary IO-like objects.c                    g)zRead function.Nr$   )selfsizes     r.   readBinaryIOLike.readD       r-   c                    g)zSeek function.Nr$   )r3   offsetwhences      r.   seekBinaryIOLike.seekH   r7   r-   c                    g)zGet value function.Nr$   r3   s    r.   getvalueBinaryIOLike.getvalueL   r7   r-   r$   N))r4   intreturnbytes)r   )r9   rB   r:   rB   rC   rB   )rC   rD   )	r&   r'   r(   r)   r*   r5   r;   r?   r,   r$   r-   r.   r0   r0   @   s    .r-   r0   c                  t    \ rS rSr% SrS\S'   \" SS9rS\S'   \" SS9rS\S	'   \" SS9r	S\S
'   \
" SSS9rSrg)ExampleBaseQ   zExample base model.r   
dataset_idNdefaultOptional[dict[str, Any]]inputsoutputsmetadataT)frozenarbitrary_types_allowedr$   )r&   r'   r(   r)   r*   r+   r   rL   rM   rN   r   model_configr,   r$   r-   r.   rF   rF   Q   sG    ',T':F$:(-d(;G%;).t)<H&<T4HLr-   rF   c                  *    \ rS rSr% S\S'   S\S'   Srg)_AttachmentDict\   r    r!   r"   r#   r$   N)r&   r'   r(   r)   r+   r,   r$   r-   r.   rS   rS   \   s    N
r-   rS   c                     ^  \ rS rSr% SrSrS\S'   \" S S9rS\S	'   \" SS
9r	S\S'   \" SS
9r
S\S'   \" SS
9rS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   U 4S jrSrU =r$ )ExampleCreatef   z Example upload with attachments.NOptional[UUID]idc                 J    [         R                  " [        R                  5      $ Nr   nowr   utcr$   r-   r.   <lambda>ExampleCreate.<lambda>j       hll9Sr-   default_factoryr   
created_atrI   rK   rL   rM   rN   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U ]  " S0 UD6  gzInitialize from dict.Nr$   super__init__r3   r#   	__class__s     r.   rq   ExampleCreate.__init__t        4 r-   r$   )r&   r'   r(   r)   r*   rY   r+   r   rd   rL   rM   rN   rf   rg   ri   rk   rl   rq   r,   __classcell__rs   s   @r.   rV   rV   f   s    *B 1STJT',T':F$:(-d(;G%;).t)<H&<-1E*18<K5<#t#6: 3:$(M>(! !r-   rV   c                  $    \ rS rSr% SrS\S'   Srg)ExampleUpsertWithAttachments|   z Example create with attachments.r   rH   r$   Nr%   r$   r-   r.   ry   ry   |   s    *r-   ry   c                  8    \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)AttachmentInfo   zInfo for an attachment.r    presigned_urlr0   readerOptional[str]r!   r$   Nr%   r$   r-   r.   r|   r|      s    !r-   r|   c                    ^  \ rS rSr% SrS\S'   \" S S9rS\S'   \" \" S	5      S
9r	S\S'   \" SS
9r
S\S'   SrS\S'   \" SS
9rS\S'    \" SS
9rS\S'   \" SS
9rS\S'     S       SU 4S jjjr\SS j5       rS rSrU =r$ )Example   zExample model.r   rY   c                 H    [         R                  " S[        R                  S9$ )Nr   )tz)r   fromtimestampr   r^   r$   r-   r.   r_   Example.<lambda>   s     6 6qX\\ Jr-   rb   r   rd   z$00000000-0000-0000-0000-000000000000rI   rH   NOptional[datetime]modified_atrX   rl   z#Optional[dict[str, AttachmentInfo]]rg   r   	_host_url
_tenant_idc                >   > [         TU ]  " S0 UD6  Xl        X l        g)Initialize a Dataset object.Nr$   )rp   rq   r   r   )r3   r   r   kwargsrs   s       r.   rq   Example.__init__   s     	"6""$r-   c                    U R                   (       ac  SU R                   SU R                   3nU R                  (       a&  U R                    S[	        U R                  5       U 3$ U R                    U 3$ g)URL of this run within the app.
/datasets/z/e//o/N)r   rH   rY   r   r    )r3   paths     r.   urlExample.url   sh     >>0DGG9=D..)S-A,B4&IInn%dV,,r-   c                n    U R                    SU R                   SU R                   SU R                   S3$ )5Return a string representation of the RunBase object.(id=z, dataset_id=z, link=''))rs   rY   rH   r   r>   s    r.   __repr__Example.__repr__   s8    ..!dggYmDOO;LHUYU]U]T^^`aar-   )r   r   )NN)r   r   r   rX   r   r   rC   NonerC   r   )r&   r'   r(   r)   r*   r+   r   rd   r   rH   r   rl   rg   r   r   r   rq   propertyr   r   r,   rv   rw   s   @r.   r   r      s    H JJ  T*P%QRJR&+D&9K#9$(M>(7<T7JK4J.*48I}8!,T!:J: $(%)	% 	% #	% 		%
 
	% 	%  b br-   r   c                  $    \ rS rSr% SrS\S'   Srg)ExampleSearch   zExample returned via search.r   rY   r$   Nr%   r$   r-   r.   r   r      s
    &Hr-   r   c                  J    \ rS rSr% Sr\" \SS9rS\S'   \" \	SS9r
S\S	'   S
rg)AttachmentsOperations   z%Operations to perform on attachments.z,Mapping of old attachment names to new names)rc   descriptionzdict[str, str]renamez List of attachment names to keep	list[str]retainr$   N)r&   r'   r(   r)   r*   r   dictr   r+   listr   r,   r$   r-   r.   r   r      s5    /"*XFN  *LFI r-   r   c                     ^  \ rS rSr% SrS\S'   SrS\S'   \" SS9rS	\S
'   \" SS9r	S	\S'   \" SS9r
S	\S'   SrS\S'   SrS\S'   SrS\S'   \" SS9rU 4S jrSrU =r$ )ExampleUpdate   z Example update with attachments.r   rY   NrX   rH   rI   rK   rL   rM   rN   re   rf   zOptional[Attachments]rg   zOptional[AttachmentsOperations]attachments_operationsTrO   c                &   > [         TU ]  " S0 UD6  grn   ro   rr   s     r.   rq   ExampleUpdate.__init__   ru   r-   r$   )r&   r'   r(   r)   r*   r+   rH   r   rL   rM   rN   rf   rg   r   r   rQ   rq   r,   rv   rw   s   @r.   r   r      s{    *H!%J%',T':F$:(-d(;G%;).t)<H&<-1E*1)-K&->B;BT*L! !r-   r   c                  $    \ rS rSrSrSrSrSrSrg)DataType   zEnum for dataset data types.kvllmchatr$   N)	r&   r'   r(   r)   r*   r   r   r   r,   r$   r-   r.   r   r      s    &	B
CDr-   r   c                  L    \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   \" S
S9r	Sr
g)DatasetBase   zDataset base model.r    nameNr   r   zOptional[DataType]	data_typeTr   r$   )r&   r'   r(   r)   r*   r+   r   r   r   rQ   r,   r$   r-   r.   r   r      s)    
I!%K%$(I!(T*Lr-   r   )remove_system_messagesconvert_to_openai_messageconvert_to_openai_toolremove_extra_fieldsextract_tools_from_runc                  .    \ rS rSr% SrS\S'   S\S'   Srg)	DatasetTransformation   z#Schema for dataset transformations.r   r   z%Union[DatasetTransformationType, str]transformation_typer$   Nr%   r$   r-   r.   r   r      s    -
O>>r-   r   F)totalc                  0  ^  \ rS rSr% SrS\S'   S\S'   \" SS9rS	\S
'   SrS\S'   Sr	S\S'   Sr
S	\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   \" SS9rS\S'   \" SS9rS\S'   \" SS9rS\S'      S         SU 4S jjjr\SS j5       rSrU =r$ ) Dataset   zDataset ORM model.r   rY   r   rd   NrI   r   r   Optional[int]example_countsession_countlast_session_start_timerK   inputs_schemaoutputs_schemaz%Optional[list[DatasetTransformation]]transformationsrN   r   r   rX   r   _public_pathc                   > SU;   a  UR                  S5      US'   SU;   a  UR                  S5      US'   [        TU ]  " S0 UD6  Xl        X l        X0l        g)r   inputs_schema_definitionr   outputs_schema_definitionr   Nr$   )poprp   rq   r   r   r   )r3   r   r   r   r   rs   s        r.   rq   Dataset.__init__  s^     &/&,jj1K&LF?#&&0'-zz2M'NF#$"6""$(r-   c                6   U R                   (       a  U R                  (       a  U R                    U R                   3$ U R                  (       a1  U R                    S[        U R                  5       SU R                   3$ U R                    SU R                   3$ g)r   r   r   N)r   r   r   r    rY   r>   s    r.   r   Dataset.url!  s}     >>  ..)$*;*;)<==..)S-A,B*TWWIVVnn%Zy99r-   )r   r   r   )NNN)
r   r   r   rX   r   r   r   r   rC   r   r   )r&   r'   r(   r)   r*   r+   r   r   r   r   r   r   r   r   rN   r   r   r   r   rq   r   r   r,   rv   rw   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                  2    \ rS rSr% SrSrS\S'   S\S'   Srg)	DatasetVersioni-  z%Class representing a dataset version.Nrj   tagsr   as_ofr$   )r&   r'   r(   r)   r*   r   r+   r,   r$   r-   r.   r   r   -  s    / $D
$Or-   r   c                 
    S0 0$ )NrN   r$   r$   r-   r.   _default_extrar   4  s    r-   c                  `   \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
rS\S'    \" \S9r	S\S'    S
r
S\S'    S
rS\S'    S
rS\S'    \" \S9rS\S'    S
rS\S'    S
rS\S'    S
rS\S'    S
rS\S'    \" \S9rS\S'    \S&S j5       r\S'S  j5       r\S(S! j5       rS" r\" S#S$9rS%rg
))RunBasei8  a  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   rY   r    r   r   
start_timerun_typeNr   end_timerb   Optional[dict]extrar   error
serializedOptional[list[dict]]eventsr   rL   rM   rX   reference_example_idparent_run_idrj   r   z-Union[Attachments, dict[str, AttachmentInfo]]rg   c                b    U R                   c  0 U l         U R                   R                  S0 5      $ zRetrieve the metadata (if any).rN   )r   
setdefaultr>   s    r.   rN   RunBase.metadatau  s,     ::DJzz$$Z44r-   c                8    U R                   R                  S5      $ )z"Retrieve the revision ID (if any).revision_id)rN   getr>   s    r.   r   RunBase.revision_id|  s     }}  //r-   c                l    U R                   c  gU R                   U R                  -
  R                  5       $ )zLatency in seconds.N)r   r   total_secondsr>   s    r.   latencyRunBase.latency  s-     == />>@@r-   c                n    U R                    SU R                   SU R                   SU R                   S3$ )r   r   z, name='z', run_type='r   )rs   rY   r   r   r>   s    r.   r   RunBase.__repr__  s3    ..!dggYhtyykt}}o]_``r-   T)rP   r   rC   dict[str, Any])rC   rX   )rC   Optional[float])r&   r'   r(   r)   r*   r+   r   r   r   r   r   r   r   r   rL   rM   r   r   r   rg   r   rN   r   r   r   r   rQ   r,   r$   r-   r.   r   r   8  s-    	H(
I* M" $(H '-!.AE>A=E=;!%J%F#'F ' .FD.""G^"/+/./@$(M>(@ $D
$6AFBK> 
 5 5 0 0 A Aa d;Lr-   r   c                  d  ^  \ rS rSr% SrSrS\S'    SrS\S'    SrS\S	'    Sr	S
\S'    Sr
S\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S '    S!\S"'    \" S#S$9rS%\S&'    SrS'\S('    \" SS$9rS\S)'   S5S6U 4S* jjjr\S7S+ j5       r \S8S, j5       r!\S8S- j5       r"\S9S. j5       r#\S9S/ j5       r$\S:S0 j5       r%\S:S1 j5       r&\S;S2 j5       r'\S;S3 j5       r(S4r)U =r*$ )<Runi  z$Run schema when loading from the DB.NrX   
session_idOptional[list[UUID]]child_run_idszOptional[list[Run]]
child_runsrK   feedback_statsr   app_pathmanifest_idstatusr   prompt_tokenscompletion_tokenstotal_tokenszOptional[dict[str, int]]prompt_token_detailscompletion_token_detailsr   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 rI   r    dotted_orderOptional[bool]
in_datasetr   c                  > UR                  S5      (       d  SUR                  S5      0UEnUR                  SS5      =(       d    0 n[        TU ]  " S0 UDSU0D6  Xl        U R
                  R                  5       (       d@  U R                  (       d.  U R                  R                  5        U R                   3U l        ggg)Initialize a Run object.r  rY   rL   Nr$   )r   r   rp   rq   r   r  stripr   r   	isoformatrY   )r3   r   r   rL   rs   s       r.   rq   Run.__init__  s    zz*%% &**T"2=f=FHd+1r161&1"  &&((1C1C#'??#<#<#>"?y ID 2D(r-   c                |    U R                   (       a+  U R                  (       a  U R                    U R                   3$ g)r   N)r   r  r>   s    r.   r   Run.url  s,     >>dmmnn%dmm_55r-   c                    U R                   $ )zAlias for prompt_tokens.)r	  r>   s    r.   input_tokensRun.input_tokens  s     !!!r-   c                    U R                   $ )zAlias for completion_tokens.)r
  r>   s    r.   output_tokensRun.output_tokens  s     %%%r-   c                    U R                   $ )zAlias for prompt_cost.)r  r>   s    r.   
input_costRun.input_cost  s     r-   c                    U R                   $ )zAlias for completion_cost.)r  r>   s    r.   output_costRun.output_cost  s     ###r-   c                    U R                   $ )zAlias for prompt_token_details.)r  r>   s    r.   input_token_detailsRun.input_token_details  s     (((r-   c                    U R                   $ )zAlias for output_token_details.)r  r>   s    r.   output_token_detailsRun.output_token_details  s     ,,,r-   c                    U R                   $ )zAlias for prompt_cost_details.)r  r>   s    r.   input_cost_detailsRun.input_cost_details  s     '''r-   c                    U R                   $ )z"Alias for completion_cost_details.)r  r>   s    r.   output_cost_detailsRun.output_cost_details  s     +++r-   )r   r  r[   r   r   r   r   rC   r   r   )rC   z
int | None)rC   zDecimal | None)rC   zdict[str, int] | None)rC   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   r   rq   r   r   r#  r&  r)  r,  r/  r2  r5  r8  r,   rv   rw   s   @r.   r   r     s   .!%J%-*.M'.4&*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 J   " " & &     $ $ ) ) - - ( ( , ,r-   r   c                  4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)RunTypeEnumi  z5(Deprecated) Enum for run types. Use string directly.toolchainr   	retriever	embeddingpromptparserr$   N)r&   r'   r(   r)   r*   r=  r>  r   r?  r@  rA  rB  r,   r$   r-   r.   r<  r<    s(    ?DE
CIIFFr-   r<  c                  
   \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S	\S'   S\S'   S	\S'   S\S'   S\S'   S\S'   S\S'   S	\S'   S	\S'   S\S'   S\S'   S\S'   S\S'   S	\S'   S	\S '   S!\S"'   S\S#'   S$\S%'   S&rg')(RunLikeDicti  z&Run-like dictionary, for type-hinting.r    r   r<  r   r   r   r   rL   rM   r   r   r   r   r   r   rX   r   r  r   r   rj   r   inputs_s3_urlsoutputs_s3_urlsrY   r  session_namer   input_attachmentsoutput_attachmentsr   r  r  Attachmentsrg   r$   Nr%   r$   r-   r.   rD  rD    s    0
I  !!  
""##((%%&&Nr-   rD  c                  8    \ rS rSr% SrSrS\S'    SrS\S'   Srg)RunWithAnnotationQueueInfoi:  z&Run schema with annotation queue info.Nr   last_reviewed_timeadded_atr$   )	r&   r'   r(   r)   r*   rM  r+   rN  r,   r$   r-   r.   rL  rL  :  s"    0-1*1.#'H '3r-   rL  c                  \    \ rS rSr% SrS\S'    \" \S9rS\S'    Sr	S	\S
'    Sr
S\S'   Srg)FeedbackSourceBaseiC  z}Base class for feedback sources.

This represents whether feedback is submitted from the API, model, human labeler,
    etc.
r    typerb   rK   rN   NzOptional[Union[UUID, str]]user_idr   	user_namer$   )r&   r'   r(   r)   r*   r+   r   r   rN   rR  rS  r,   r$   r-   r.   rP  rP  C  s?     I*).t)DH&D6*.G'.:#I}#<r-   rP  c                  (    \ rS rSr% SrSrS\S'   Srg)APIFeedbackSourceiT  zAPI feedback source.apizLiteral['api']rQ  r$   Nr&   r'   r(   r)   r*   rQ  r+   r,   r$   r-   r.   rU  rU  T  s     D. r-   rU  c                  (    \ rS rSr% SrSrS\S'   Srg)ModelFeedbackSourceiZ  zModel feedback source.modelzLiteral['model']rQ  r$   NrW  r$   r-   r.   rY  rY  Z  s     $D
$r-   rY  c                  "    \ rS rSrSrSr SrSrg)FeedbackSourceTypei`  zFeedback source type.rV  rZ  r$   N)r&   r'   r(   r)   r*   APIMODELr,   r$   r-   r.   r\  r\  `  s    
C2E"r-   r\  c                     \ rS rSr% SrS\S'    SrS\S'    SrS\S'    S	\S
'    S	\S'    S\S'    SrS\S'    Sr	S\S'    Sr
S\S'    SrS\S'    SrS\S'    SrS	\S'    SrS\S'    SrS	\S'    SrS	\S'    SrS\S'    \" SS9rS rg)!FeedbackBaseii  zFeedback schema.r   rY   Nr   rd   r   rX   run_idr  r    key
SCORE_TYPEscore
VALUE_TYPEvaluer   commentzUnion[str, dict, None]
correctionOptional[FeedbackSourceBase]feedback_sourcer  r   comparative_experiment_idfeedback_group_idr   r   Tr   r$   )r&   r'   r(   r)   r*   r+   rd   r   rd  rf  rg  rh  rj  r  r   rk  rl  r   r   rQ   r,   r$   r-   r.   r`  r`  i  s    H(%)J"),&*K#*2<>	HAE:+E:Q!G]!2)-J&-!48O18%!%J%T%)J")E04~4X(,~,1 !E> 'T*Lr-   r`  c                  0    \ rS rSr% SrS\S'    S\S'   Srg)	FeedbackCategoryi  z+Specific value and label pair for feedback.floatrf  r   labelr$   Nr%   r$   r-   r.   rn  rn    s    5LCNr-   rn  c                  H    \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'   S
rg)FeedbackConfigi  z:Represents _how_ a feedback value ought to be interpreted.z0Literal['continuous', 'categorical', 'freeform']rQ  r   minmaxz Optional[list[FeedbackCategory]]
categoriesr$   Nr%   r$   r-   r.   rr  rr    s,    D
::	4	400@r-   rr  c                  D    \ rS rSr% SrS\S'    SrS\S'    SrS\S	'   S
rg)FeedbackCreatei  z"Schema used for creating feedback.rP  rj  NzOptional[FeedbackConfig]feedback_configr  r   r$   )	r&   r'   r(   r)   r*   r+   rx  r   r,   r$   r-   r.   rw  rw    s&    ,''%04O-4% E> r-   rw  c                  J    \ rS rSr% SrS\S'   S\S'    S\S'    SrS	\S
'   Srg)Feedbacki  zSchema for getting feedback.r   rY   r   rd   r   Nri  rj  r$   )r&   r'   r(   r)   r*   r+   rj  r,   r$   r-   r.   rz  rz    s*    &H,248O182r-   rz  c                    ^  \ rS rSr% SrS\S'    \" S S9rS\S'    S	rS
\S'    S	r	S\S'    S	r
S\S'    S	rS\S'    S\S'    S\S'    \" S	S9rS\S'   SSU 4S jjjr\SS j5       r\SS j5       r\SS j5       rSrU =r$ ) TracerSessioni  zZTracerSession schema for the API.

Sessions are also referred to as "Projects" in the UI.
r   rY   c                 J    [         R                  " [        R                  5      $ r[   r\   r$   r-   r.   r_   TracerSession.<lambda>  ra   r-   rb   r   r   Nr   r   r   r   r   rK   r   	tenant_idrX   reference_dataset_idrI   r   c                   > [         TU ]  " S0 UD6  Xl        U R                  R                  c-  U R                  R                  [        R                  S9U l        gg)r  N)tzinfor$   )rp   rq   r   r   r  replacer   r^   )r3   r   r   rs   s      r.   rq   TracerSession.__init__  sJ    "6""??!!)"oo55X\\5JDO *r-   c                v    U R                   (       a(  U R                    SU R                   SU R                   3$ g)r   r   /projects/p/N)r   r  rY   r>   s    r.   r   TracerSession.url  s3     >>nn%S(8TWWINNr-   c                ^    U R                   b  SU R                   ;  a  0 $ U R                   S   $ r   r   r>   s    r.   rN   TracerSession.metadata  -     ::4::!=Izz*%%r-   c                ^    U R                   b  SU R                   ;  a  / $ U R                   S   $ )zRetrieve the tags (if any).r   r   r>   s    r.   r   TracerSession.tags  s-     ::tzz!9Izz&!!r-   )r   r   r[   r:  r   r   )rC   r   )r&   r'   r(   r)   r*   r+   r   r   r   r   r   r   r   r   rq   r   r   rN   r   r,   rv   rw   s   @r.   r|  r|    s    
 	H  1STJT+#'H ')!%K%)D-"&*E#*)O0((J*48I}8K K   & & " "r-   r|  c                     \ rS rSr% SrSrS\S'    SrS\S'    SrS\S'    Sr	S\S	'    Sr
S\S
'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'   Srg)TracerSessionResulti  ziA project, hydrated with additional information.

Sessions are also referred to as "Projects" in the UI.
Nr   	run_countOptional[timedelta]latency_p50latency_p99r  r	  r
  r   last_run_start_timerK   r  session_feedback_statsOptional[list[dict[str, Any]]]
run_facetsr  r  r  r  first_token_p50first_token_p99r   
error_rater$   )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    s    
  $I}#,'+K$+?'+K$+6"&L-&=#'M='D'+}+H.2+28/3N,3)7;4;115J.5-$(J!(M%)K")G)-O&-C+/O(/G+/O(/>"&J&)r-   r  c                  F    \ rS rSr% SrS\S'    S\S'    \S
S j5       rSrg	)BaseMessageLikei  z7A protocol representing objects similar to BaseMessage.r    contentzdict[Any, Any]additional_kwargsc                    g)z,Type of the Message, used for serialization.Nr$   r>   s    r.   rQ  BaseMessageLike.type&  s    r-   r$   NrC   r    )	r&   r'   r(   r)   r*   r+   r   rQ  r,   r$   r-   r.   r  r    s(    AL%%%C; ;r-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg	)
DatasetShareSchemai+  z*Represents the schema for a dataset share.r   rH   share_tokenr    r   r$   Nr%   r$   r-   r.   r  r  +  s    4 ,	H(r-   r  c                  T    \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
\S'   Srg)AnnotationQueueRubricItemi6  zRepresents a rubric item assigned to an annotation queue.

Links a feedback config to a queue with optional per-queue customization.
r    feedback_keyr   r   zOptional[dict[str, str]]value_descriptionsscore_descriptionsr  is_requiredr$   Nr%   r$   r-   r.   r  r  6  s6    
 =C00700(Nr-   r  c                      \ rS rSr% SrS\S'    S\S'    SrS\S	'    \" S
 S9rS\S'    \" S S9r	S\S'    S\S'   Sr
g)AnnotationQueueiH  zRepresents an annotation queue.r   rY   r    r   Nr   r   c                 J    [         R                  " [        R                  5      $ r[   r\   r$   r-   r.   r_   AnnotationQueue.<lambda>Q  ra   r-   rb   r   rd   c                 J    [         R                  " [        R                  5      $ r[   r\   r$   r-   r.   r_   r  S  ra   r-   
updated_atr  r$   )r&   r'   r(   r)   r*   r+   r   r   rd   r  r,   r$   r-   r.   r  r  H  sP    )H8
I+!%K%: 1STJT> 1STJTCODr-   r  c                  (    \ rS rSr% SrSrS\S'   Srg)AnnotationQueueWithDetailsiY  z,Represents an annotation queue with details.Nr   rubric_instructionsr$   )r&   r'   r(   r)   r*   r  r+   r,   r$   r-   r.   r  r  Y  s    6)--;r-   r  c                  `    \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S\S	'    S
\S'   Srg)BatchIngestConfigi`  z"Configuration for batch ingestion.rh   use_multipart_endpointrB   scale_up_qsize_triggerscale_up_nthreads_limitscale_down_nempty_trigger
size_limitr   size_limit_bytesr$   Nr%   r$   r-   r.   r  r  `  s:    ,  D<  7""AO/##8r-   r  c                  X    \ rS rSr% SrSrS\S'    SrS\S'    SrS	\S
'    Sr	S\S'   Sr
g)LangSmithInfoiq  z'Information about the LangSmith server.r  r    versionNr   license_expiration_timezOptional[BatchIngestConfig]batch_ingest_configrK   instance_flagsr$   )r&   r'   r(   r)   r*   r  r+   r  r  r  r,   r$   r-   r.   r  r  q  s;    1GS.26/6+7;4;/3N,3r-   r  c                  L    \ rS rSr% SrS\S'    S\S'    S\S'    SrS	\S
'   Srg)LangSmithSettingsi  z"Settings for the LangSmith tenant.r    rY   display_namer   rd   Nr   tenant_handler$   )r&   r'   r(   r)   r*   r+   r  r,   r$   r-   r.   r  r    s)    ,G)*#'M='r-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)FeedbackIngestTokeni  z2Represents the schema for a feedback ingest token.r   rY   r    r   r   
expires_atr$   Nr%   r$   r-   r.   r  r    s    <H.	H3+r-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)RunEventi  zRun event schema.r    r   zUnion[datetime, str]timerK   r   r$   Nr%   r$   r-   r.   r  r    s    
I
$$,r-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	TimeDeltaInputi  zTimedelta input schema.rB   dayshoursminutesr$   Nr%   r$   r-   r.   r  r    s    !
IJLr-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	DatasetDiffInfoi  z;Represents the difference information between two datasets.z
list[UUID]examples_modifiedexamples_addedexamples_removedr$   Nr%   r$   r-   r.   r  r    s     E!!=:  <r-   r  c                      \ rS rSr% SrS\S'    SrS\S'    SrS\S'    S\S	'    S
\S'    S
\S'    S\S'    SrS\S'    Sr	S\S'    Sr
S\S'    \SS j5       rSrg)ComparativeExperimenti  zRepresents a comparative experiment.

This information summarizes evaluation results comparing
two or more models on a given dataset.
r   rY   Nr   r   r   r  r   rd   r   r  rK   r   r   experiments_infor  c                ^    U R                   b  SU R                   ;  a  0 $ U R                   S   $ r   r   r>   s    r.   rN   ComparativeExperiment.metadata  r  r-   r$   r   )r&   r'   r(   r)   r*   r+   r   r   r   r  r  r   rN   r,   r$   r-   r.   r  r    s     	H?D-:!%K%@OGDJJ&*E#*?-1*1\/3N,3P& &r-   r  c                  T    \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S	\S
'   Srg)PromptCommiti  z$Represents a Prompt with a manifest.r    ownerrepocommit_hashr   manifestz
list[dict]examplesr$   Nr%   r$   r-   r.   r  r    s0    .J0
I!(%r-   r  c                      \ rS rSr% SrS\S'    S\S'    S\S'    SrS	\S
'    SrS	\S'    SrS	\S'    Sr	S\S'    Sr
S\S'    SrS\S'    \" \S9rS\S'    SrS\S'    SrS\S'    SrS\S'   Srg)ListedPromptCommiti  z;Represents a listed prompt commit with associated metadata.r   rY   r    r  r  NrX   r  repo_id	parent_idr   r  r   rd   r  rb   r  example_run_idsr   r   num_downloads	num_viewsparent_commit_hashr$   )r&   r'   r(   r)   r*   r+   r  r  r  r  rd   r  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                  @   \ rS rSr% SrS\S'    SrS\S'    SrS\S'    S\S	'    S\S
'    S\S'    S\S'    S\S'    S\S'    S\S'    SrS\S'    Sr	S\S'    S\S'    S\S'    S\S'    S\S'    S\S'    Sr
S\S'    SrS\S'    S\S'    SrS\S'    SrS\S '   S!rg)"Prompti  z"Represents a Prompt with metadata.r    repo_handleNr   r   readmerY   r  r   rd   r  rh   	is_publicis_archivedr   r   original_repo_idupstream_repo_idr  	full_namerB   	num_likesr  r  r  liked_by_auth_userlast_commit_hashnum_commitsoriginal_repo_full_nameupstream_repo_full_namer$   )r&   r'   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                  0    \ rS rSr% SrS\S'    S\S'   Srg)	ListPromptsResponseiG  z A list of prompts with metadata.zlist[Prompt]reposrB   r   r$   Nr%   r$   r-   r.   r  r  G  s    *J&r-   r  c                  .    \ rS rSrSrSr Sr Sr SrSr	g)	PromptSortFieldiP  z$Enum for sorting fields for prompts.r  r  r  r  r$   N)
r&   r'   r(   r)   r*   r  r  r  r  r,   r$   r-   r.   r  r  P  s%    .#MIJIr-   r  c                  H    \ rS rSr% SrS\S'    S\S'    S\S'    S\S'   Srg	)
InputTokenDetailsi]  zvBreakdown of input token counts.

Does *not* need to sum to full input token count. Does *not* need to have all keys.
rB   audiocache_creation
cache_readcache_read_over_200kr$   Nr%   r$   r-   r.   r  r  ]  s5    
 J O r-   r  c                  0    \ rS rSr% SrS\S'    S\S'   Srg)OutputTokenDetailsit  zxBreakdown of output token counts.

Does *not* need to sum to full output token count. Does *not* need to have all keys.
rB   r  	reasoningr$   Nr%   r$   r-   r.   r  r  t  s    
 JNr-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	InputCostDetailsi  znBreakdown of input token costs.

Does *not* need to sum to full input cost. Does *not* need to have all keys.
ro  r  r   r  r$   Nr%   r$   r-   r.   r  r    s)    
 L% r-   r  c                  0    \ rS rSr% SrS\S'    S\S'   Srg)OutputCostDetailsi  zpBreakdown of output token costs.

Does *not* need to sum to full output cost. Does *not* need to have all keys.
ro  r  r  r$   Nr%   r$   r-   r.   r	  r	    s    
 L&r-   r	  c                      \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S	\S
'    S\S'    S\S'    S\S'    S\S'    S\S'   Srg)UsageMetadatai  zUsage metadata for a message, such as token counts.

This is a standard representation of token usage that is consistent across models.
rB   r#  r&  r  zNotRequired[InputTokenDetails]r/  zNotRequired[OutputTokenDetails]r2  zNotRequired[float]r)  r,  r  zNotRequired[InputCostDetails]r5  zNotRequired[OutputCostDetails]r8  r$   Nr%   r$   r-   r.   r  r    sk    
 JPA77 :9 #"'##(""'55/770r-   r  c                      \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S	\S
'    S\S'    S\S'    S\S'    S\S'    S\S'   Srg)ExtractedUsageMetadatai  zUsage metadata dictionary extracted from a run.

Should be the same as UsageMetadata, but does not require all
keys to be present.
rB   r#  r&  r  r  r/  r  r2  ro  r)  r,  r  r  r5  r	  r8  r$   Nr%   r$   r-   r.   r  r    sc     33****,,+'('((/**0r-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)UpsertExamplesResponsei  zCResponse object returned from the upsert_examples_multipart method.rB   countr   example_idszNotRequired[str | None]r   r$   Nr%   r$   r-   r.   r  r    s    MJ45""cr-   r  c                  0    \ rS rSr% Sr\" \S9rS\S'   Sr	g)ExampleWithRunsi  zExample with runs.rb   z	list[Run]runsr$   N)
r&   r'   r(   r)   r*   r   r   r  r+   r,   r$   r-   r.   r  r    s    D1D)1"r-   r  c                      \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S\S	'    S\S
'    S\S'    S\S'    S\S'    S\S'    S\S'    S\S'    S\S'    S\S'   Srg)ExperimentRunStatsi  z!Run statistics for an experiment.r   r  r  r  r  r  r	  r
  r   r  r  r  r  r  r  r  r  r  r   r  r$   Nr%   r$   r-   r.   r  r    s    +,$$?$$6=  D$$H++8..-!!M""G&&C((G((>)r-   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ExperimentResultsi  zResults container for experiment data with stats and examples.

Breaking change in v0.4.32:
    The 'stats' field has been split into 'feedback_stats' and 'run_stats'.
r   r  r  	run_statszIterator[ExampleWithRuns]examples_with_runsr$   Nr%   r$   r-   r.   r  r    s!     1!!611r-   r  c                      \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   S\S'   S\S'   S\S'   \SS j5       rSS jr	Sr
g)InsightsReporti*  zHAn Insights Report created by the Insights Agent over a tracing project.z
UUID | strrY   r    r   r  Nz
str | Noner   
project_idhost_urlr  c           	         U R                    S[        U R                  5       S[        U R                  5       S[        U R                  5       3$ )z1URL to view this Insights Report in LangSmith UI.r   r  z?tab=4&clusterJobId=)r  r    r  r  rY   r>   s    r.   linkInsightsReport.link5  sH     --C$7#8SEYDZZnorswszszo{n|}}r-   c                <    SU R                    SU R                   S3$ )Nz	<a href="z2", target="_blank" rel="noopener">InsightsReport('z')</a>)r   r   r>   s    r.   _repr_html_InsightsReport._repr_html_:  s%    499+%XY]YbYbXccjkkr-   r$   r  )r&   r'   r(   r)   r*   r+   r   r   r   r#  r,   r$   r-   r.   r  r  *  sI    RN
IKE:M~ ~lr-   r  c                  8    \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)FeedbackFormulaWeightedVariablei>  zBA feedback key and weight used when calculating feedback formulas.zLiteral['weighted_key']	part_typero  weightz#Annotated[str, Field(min_length=1)]rb  r$   Nr%   r$   r-   r.   r&  r&  >  s    L&&M	,,r-   r&  c                  d    \ rS rSr% SrSrS\S'   SrS\S'   S\S'   S	\S
'   \" SSSS9r	S\S'   Sr
g)FeedbackFormulaCreateiF  z,Schema used for creating a feedback formula.NrX   rH   r  r    r  Literal['sum', 'avg']aggregation_type.   2   
min_length
max_length%list[FeedbackFormulaWeightedVariable]formula_partsr$   )r&   r'   r(   r)   r*   rH   r+   r  r   r3  r,   r$   r-   r.   r*  r*  F  s>    6!%J%!%J%++;@b<M8 r-   r*  c                  H    \ rS rSr% SrS\S'   S\S'   \" SSS	S
9rS\S'   Srg)FeedbackFormulaUpdateiR  z,Schema used for updating a feedback formula.r    r  r+  r,  .r-  r.  r/  r2  r3  r$   N)	r&   r'   r(   r)   r*   r+   r   r3  r,   r$   r-   r.   r5  r5  R  s*    6++;@b<M8 r-   r5  c                  8    \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
FeedbackFormulai\  z%Schema for getting feedback formulas.r   rY   r   rd   r   r$   Nr%   r$   r-   r.   r7  r7  \  s    /Hr-   r7  c                  X    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    SrS\S'   Srg)FeedbackConfigSchemaid  zRepresents a feedback configuration for a tenant's feedback key.

Feedback configurations define how feedback with a given key should be
interpreted, including its type (continuous, categorical, or freeform),
scoring bounds, and valid categories.
r    r  rr  rx  r   r  r   r   Nr  is_lower_score_betterr$   )r&   r'   r(   r)   r*   r+   r:  r,   r$   r-   r.   r9  r9  d  s:     A##HOE=,0>0Kr-   r9  )sr*   
__future__r   collections.abcr   r   r   r   decimalr   enumr	   pathlibr
   typingr   r   r   r   r   r   r   uuidr   pydanticr   r   r   r   r   r   r   typing_extensionsr   r   r   rc  r   r    re  r   tuplerD   rJ  r0   rF   rS   _AttachmentLikerV   ExampleUploadWithAttachmentsry   r|   r   r   r   r   ExampleUpdateWithAttachmentsr   r   DatasetTransformationTyper   r   r   r   r   r   r<  rD  rL  rP  rU  rY  r\  r`  rn  rr  rw  rz  r|  r  r  r  r  r  r  r  r  model_rebuildr  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r&  r*  r5  r7  r9  r$   r-   r.   <module>rJ     s   $ " $ 2 2         > =:y+t;<
4j)[$FG
 * 3eCJ/U39=MMNNO 8   I) Ii 
 sEz!2E#t)4DD
!I !&  - = Y 'bk 'bTK I !I !&  - sD +) + $ ?IU ?-k -`Y T<i T<n,' ,D	#t 	)5 :4 4= ="!* !%, %# #&+9 &+ROy O@Ye @!\ !	3| 	33"I 3"l%*- %*P 
;h 
; 
;)% )O	 O$Ei E"< <9	 9"	4I 	4    	(	 	(,) ,-y -Ye =i =!&I !&H 9  (2 (2V.;Y .;b') '
c4 
	 .%  y *	  1I 1D1Ye 1:dY d#g #* *B2	 2lY l(-i -	I 	I + L9 Lr-   