
    ;i8                       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JrJrJrJrJr  SSKJr  SS	KJrJr   SS
KJrJrJrJrJrJr  SSK!J"r"  SSK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/ S0\5      r>S1 r? " S2 S3\5      r@ " S4 S5\@5      rA " S6 S7\&\5      rB " S8 S9\S+S,9rC " S: S;\@5      rD " S< S=\5      rE " S> S?\E5      rF " S@ SA\E5      rG " SB SC\5      rH " SD SE\5      rI " SF SG\S+S,9rJ " SH SI\S+S,9rK " SJ SK\I5      rL " SL SM\I5      rM " SN SO\5      rN " SP SQ\N5      rO\ " SR SS\5      5       rP " ST SU\S+S,9rQ " SV SW\5      rR " SX SY\R5      rS " SZ S[\S+S,9rT " S\ S]\5      rU\4R                  5          " S^ S_\5      rW " S` Sa\5      rX " Sb Sc\S+S,9rY " Sd Se\S+S,9rZ " Sf Sg\5      r[ " Sh Si\5      r\ " Sj Sk\5      r] " Sl Sm\5      r^ " Sn So\5      r_ " Sp Sq\5      r` " Sr Ss\&\5      ra " St Su\S+S,9rb " Sv Sw\S+S,9rc " Sx Sy\S+S,9rd " Sz S{\S+S,9re " S| S}\5      rf " S~ S\S+S,9rg " S S\5      rh " S S\45      ri " S S\5      rj " S S\5      rkg! \ a    SS
K JrJrJrJrJrJr   GNf = f)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                  .    \ rS rSr% SrS\S'   S\S'   Srg)	
Attachment0   a  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]data N__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r"       a/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/langsmith/schemas.pyr   r   0   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)BinaryIOLikeK   z$Protocol for binary IO-like objects.c                    g)zRead function.Nr"   )selfsizes     r,   readBinaryIOLike.readO       r+   c                    g)zSeek function.Nr"   )r1   offsetwhences      r,   seekBinaryIOLike.seekS   r5   r+   c                    g)zGet value function.Nr"   r1   s    r,   getvalueBinaryIOLike.getvalueW   r5   r+   r"   N))r2   intreturnbytes)r   )r7   r@   r8   r@   rA   r@   )rA   rB   )	r$   r%   r&   r'   r(   r3   r9   r=   r*   r"   r+   r,   r.   r.   K   s    .r+   r.   c                  z    \ 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5      r
Srg)ExampleBase\   zExample base model.r   
dataset_idNdefaultOptional[dict[str, Any]]inputsoutputsmetadatac                       \ rS rSrSrSrSrSrg)ExampleBase.Configd   #Configuration class for the schema.Tr"   N)r$   r%   r&   r'   r(   frozenarbitrary_types_allowedr*   r"   r+   r,   ConfigrN   d   s    1"&r+   rS   r"   )r$   r%   r&   r'   r(   r)   r   rJ   rK   rL   rS   r*   r"   r+   r,   rD   rD   \   sE    ',T':F$:(-d(;G%;).t)<H&<' 'r+   rD   c                  *    \ rS rSr% S\S'   S\S'   Srg)_AttachmentDictk   r   r   r    r!   r"   N)r$   r%   r&   r'   r)   r*   r"   r+   r,   rU   rU   k   s    N
r+   rU   c                     ^  \ 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$ )ExampleCreateu   z Example upload with attachments.Optional[UUID]idc                 J    [         R                  " [        R                  5      $ Nr   nowr   utcr"   r+   r,   <lambda>ExampleCreate.<lambda>y       hll9Sr+   default_factoryr   
created_atNrG   rI   rJ   rK   rL   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__r1   r!   	__class__s     r,   rs   ExampleCreate.__init__        4 r+   r"   )r$   r%   r&   r'   r(   r)   r   rf   rJ   rK   rL   rh   ri   rk   rm   rn   rs   r*   __classcell__ru   s   @r,   rX   rX   u   s    * 1STJT',T':F$:(-d(;G%;).t)<H&<-1E*18<K5<#t#6: 3:$(M>(! !r+   rX   c                  $    \ rS rSr% SrS\S'   Srg)ExampleUpsertWithAttachments   z Example create with attachments.r   rF   r"   Nr#   r"   r+   r,   r{   r{      s    *r+   r{   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_urlr.   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   r[   c                 H    [         R                  " S[        R                  S9$ )Nr   )tz)r   fromtimestampr   r`   r"   r+   r,   ra   Example.<lambda>   s     6 6qX\\ Jr+   rd   r   rf   z$00000000-0000-0000-0000-000000000000rG   rF   NOptional[datetime]modified_atrZ   rn   z#Optional[dict[str, AttachmentInfo]]ri   r   	_host_url
_tenant_idc                >   > [         TU ]  " S0 UD6  Xl        X l        g)Initialize a Dataset object.Nr"   )rr   rs   r   r   )r1   r   r   kwargsru   s       r,   rs   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   rF   r[   r   r   )r1   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=''))ru   r[   rF   r   r<   s    r,   __repr__Example.__repr__   s8    ..!dggYmDOO;LHUYU]U]T^^`aar+   )r   r   )NN)r   r   r   rZ   r   r
   rA   NonerA   r   )r$   r%   r&   r'   r(   r)   r   rf   r   rF   r   rn   ri   r   r   r   rs   propertyr   r   r*   rx   ry   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   r[   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)re   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5      rU 4S jrSrU =r$ )ExampleUpdate   z Example update with attachments.r   r[   NrZ   rF   rG   rI   rJ   rK   rL   rg   rh   zOptional[Attachments]ri   zOptional[AttachmentsOperations]attachments_operationsc                      \ rS rSrSrSrSrg)ExampleUpdate.Config   rP   Tr"   Nr$   r%   r&   r'   r(   rQ   r*   r"   r+   r,   rS   r      
    1r+   rS   c                &   > [         TU ]  " S0 UD6  grp   rq   rt   s     r,   rs   ExampleUpdate.__init__   rw   r+   r"   )r$   r%   r&   r'   r(   r)   rF   r   rJ   rK   rL   rh   ri   r   rS   rs   r*   rx   ry   s   @r,   r   r      s{    *H!%J%',T':F$:(-d(;G%;).t)<H&<-1E*1)-K&->B;B 
! !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                  T    \ rS rSr% SrS\S'   SrS\S'   SrS\S	'    " S
 S5      rSr	g)DatasetBase   zDataset base model.r   nameNr   r   zOptional[DataType]	data_typec                      \ rS rSrSrSrSrg)DatasetBase.Config   rP   Tr"   Nr   r"   r+   r,   rS   r      r   r+   rS   r"   )
r$   r%   r&   r'   r(   r)   r   r   rS   r*   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                  .    \ rS rSr% SrS\S'   S\S'   Srg)	DatasetTransformationi  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$ ) Dataseti  zDataset ORM model.r   r[   r   rf   NrG   r   r   Optional[int]example_countsession_countlast_session_start_timerI   inputs_schemaoutputs_schemaz%Optional[list[DatasetTransformation]]transformationsrL   r   r   rZ   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"   )poprr   rs   r   r   r   )r1   r   r   r   r   ru   s        r,   rs   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   r[   r<   s    r,   r   Dataset.url6  s}     >>  ..)$*;*;)<==..)S-A,B*TWWIVVnn%Zy99r+   )r   r   r   )NNN)
r   r   r   rZ   r   r   r   r
   rA   r   r   )r$   r%   r&   r'   r(   r)   r   r   r   r   r   r   r   r   rL   r   r   r   r   rs   r   r   r*   rx   ry   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)	DatasetVersioniB  z%Class representing a dataset version.Nrl   tagsr   as_ofr"   )r$   r%   r&   r'   r(   r   r)   r*   r"   r+   r,   r   r   B  s    / $D
$Or+   r   c                 
    S0 0$ )NrL   r"   r"   r+   r,   _default_extrar   I  s    r+   c                  h   \ 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$5      rS%rg
))RunBaseiM  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   r[   r   r   r   
start_timerun_typeNr   end_timerd   Optional[dict]extrar   error
serializedOptional[list[dict]]eventsr   rJ   rK   rZ   reference_example_idparent_run_idrl   r   z-Union[Attachments, dict[str, AttachmentInfo]]ri   c                b    U R                   c  0 U l         U R                   R                  S0 5      $ zRetrieve the metadata (if any).rL   )r   
setdefaultr<   s    r,   rL   RunBase.metadata  s,     ::DJzz$$Z44r+   c                8    U R                   R                  S5      $ )z"Retrieve the revision ID (if any).revision_id)rL   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   )ru   r[   r   r   r<   s    r,   r   RunBase.__repr__  s3    ..!dggYhtyykt}}o]_``r+   c                      \ rS rSrSrSrSrg)RunBase.Configi  rP   Tr"   N)r$   r%   r&   r'   r(   rR   r*   r"   r+   r,   rS   r    s    1"&r+   rS   r   rA   dict[str, Any])rA   rZ   )rA   Optional[float])r$   r%   r&   r'   r(   r)   r   r   r   r   r   r   r   r   rJ   rK   r   r   r   ri   r   rL   r   r   r   rS   r*   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                  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.NrZ   
session_idOptional[list[UUID]]child_run_idszOptional[list[Run]]
child_runsrI   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 rG   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  r[   rJ   Nr"   )r   r   rr   rs   r   r!  stripr   r   	isoformatr[   )r1   r   r   rJ   ru   s       r,   rs   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
   rA   r   r   )rA   z
int | None)rA   zDecimal | None)rA   zdict[str, int] | None)rA   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   rs   r   r   r,  r/  r2  r5  r8  r;  r>  rA  r*   rx   ry   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(   rF  rG  r   rH  rI  rJ  rK  r*   r"   r+   r,   rE  rE  '  s(    ?DE
CIIFFr+   rE  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')(RunLikeDicti3  z&Run-like dictionary, for type-hinting.r   r   rE  r   r   r   r   rJ   rK   r   r   r   r   r   r   rZ   r   r  r   r   rl   r   inputs_s3_urlsoutputs_s3_urlsr[   r
  session_namer   input_attachmentsoutput_attachmentsr   r  r!  Attachmentsri   r"   Nr#   r"   r+   r,   rM  rM  3  s    0
I  !!  
""##((%%&&Nr+   rM  c                  8    \ rS rSr% SrSrS\S'    SrS\S'   Srg)RunWithAnnotationQueueInfoiP  z&Run schema with annotation queue info.Nr   last_reviewed_timeadded_atr"   )	r$   r%   r&   r'   r(   rV  r)   rW  r*   r"   r+   r,   rU  rU  P  s"    0-1*1.#'H '3r+   rU  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)FeedbackSourceBaseiY  z}Base class for feedback sources.

This represents whether feedback is submitted from the API, model, human labeler,
    etc.
r   typerd   rI   rL   NzOptional[Union[UUID, str]]user_idr   	user_namer"   )r$   r%   r&   r'   r(   r)   r   r   rL   r[  r\  r*   r"   r+   r,   rY  rY  Y  s?     I*).t)DH&D6*.G'.:#I}#<r+   rY  c                  (    \ rS rSr% SrSrS\S'   Srg)APIFeedbackSourceij  zAPI feedback source.apizLiteral['api']rZ  r"   Nr$   r%   r&   r'   r(   rZ  r)   r*   r"   r+   r,   r^  r^  j  s     D. r+   r^  c                  (    \ rS rSr% SrSrS\S'   Srg)ModelFeedbackSourceip  zModel feedback source.modelzLiteral['model']rZ  r"   Nr`  r"   r+   r,   rb  rb  p  s     $D
$r+   rb  c                  "    \ rS rSrSrSr SrSrg)FeedbackSourceTypeiv  zFeedback source type.r_  rc  r"   N)r$   r%   r&   r'   r(   APIMODELr*   r"   r+   r,   re  re  v  s    
C2E"r+   re  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 S5      rSrg) FeedbackBasei  zFeedback schema.r   r[   Nr   rf   r   rZ   run_idr  r   key
SCORE_TYPEscore
VALUE_TYPEvaluer   commentzUnion[str, dict, None]
correctionOptional[FeedbackSourceBase]feedback_sourcer
  comparative_experiment_idfeedback_group_idr   r   c                      \ rS rSrSrSrSrg)FeedbackBase.Configi  rP   Tr"   Nr   r"   r+   r,   rS   rw    r   r+   rS   r"   )r$   r%   r&   r'   r(   r)   rf   r   rm  ro  rp  rq  rs  r
  rt  ru  r   rS   r*   r"   r+   r,   ri  ri    s    H(%)J"),&*K#*2<>	HAE:+E:Q!G]!2)-J&-!48O18%!%J%T04~4X(,~,1 !E> ' r+   ri  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.floatro  r   labelr"   Nr#   r"   r+   r,   ry  ry    s    5LCNr+   ry  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']rZ  r  minmaxz Optional[list[FeedbackCategory]]
categoriesr"   Nr#   r"   r+   r,   r}  r}    s,    D
::	4	400@r+   r}  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.rY  rs  NzOptional[FeedbackConfig]feedback_configr"  r   r"   )	r$   r%   r&   r'   r(   r)   r  r   r*   r"   r+   r,   r  r    s&    ,''%04O-4% E> r+   r  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   r[   r   rf   r   Nrr  rs  r"   )r$   r%   r&   r'   r(   r)   rs  r*   r"   r+   r,   r  r    s*    &H,248O182r+   r  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   r[   c                 J    [         R                  " [        R                  5      $ r]   r^   r"   r+   r,   ra   TracerSession.<lambda>  rc   r+   rd   r   r   Nr   r   r   r   r   rI   r   	tenant_idrZ   reference_dataset_idrG   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"   )rr   rs   r   r   r  replacer   r`   )r1   r   r   ru   s      r,   rs   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   z/projects/p/N)r   r  r[   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,   rL   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]   rC  r   r  )rA   r   )r$   r%   r&   r'   r(   r)   r   r   r   r   r   r   r   r   rs   r   r   rL   r   r*   rx   ry   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\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)TracerSessionResulti  ziA project, hydrated with additional information.

Sessions are also referred to as "Projects" in the UI.
r   	run_countOptional[timedelta]latency_p50latency_p99r  r  r  r   last_run_start_timerI   r  session_feedback_statsOptional[list[dict[str, Any]]]
run_facetsr  r  r  r  first_token_p50first_token_p99r  
error_rater"   Nr#   r"   r+   r,   r  r    s    
 ,$$?$$6=  D$$H++8,,)441..-!!M""G&&C((G((>)r+   r  c                  F    \ rS rSr% SrS\S'    S\S'    \S
S j5       rSrg	)BaseMessageLikei4  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,   rZ  BaseMessageLike.type=  s    r+   r"   N)rA   r   )	r$   r%   r&   r'   r(   r)   r   rZ  r*   r"   r+   r,   r  r  4  s(    AL%%%C; ;r+   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg	)
DatasetShareSchemaiB  z*Represents the schema for a dataset share.r   rF   share_tokenr   r   r"   Nr#   r"   r+   r,   r  r  B  s    4 ,	H(r+   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)AnnotationQueueiM  zRepresents an annotation queue.r   r[   r   r   Nr   r   c                 J    [         R                  " [        R                  5      $ r]   r^   r"   r+   r,   ra   AnnotationQueue.<lambda>V  rc   r+   rd   r   rf   c                 J    [         R                  " [        R                  5      $ r]   r^   r"   r+   r,   ra   r  X  rc   r+   
updated_atr  r"   )r$   r%   r&   r'   r(   r)   r   r   rf   r  r*   r"   r+   r,   r  r  M  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)AnnotationQueueWithDetailsi^  z,Represents an annotation queue with details.Nr   rubric_instructionsr"   )r$   r%   r&   r'   r(   r  r)   r*   r"   r+   r,   r  r  ^  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)BatchIngestConfigie  z"Configuration for batch ingestion.rj   use_multipart_endpointr@   scale_up_qsize_triggerscale_up_nthreads_limitscale_down_nempty_trigger
size_limitr   size_limit_bytesr"   Nr#   r"   r+   r,   r  r  e  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)LangSmithInfoiv  z'Information about the LangSmith server.r   r   versionNr   license_expiration_timezOptional[BatchIngestConfig]batch_ingest_configrI   instance_flagsr"   )r$   r%   r&   r'   r(   r  r)   r  r  r  r*   r"   r+   r,   r  r  v  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   r[   display_namer   rf   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   r[   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]timerI   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.r@   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   r[   Nr   r   r   r  r   rf   r   r  rI   r   r   experiments_infor  c                ^    U R                   b  SU R                   ;  a  0 $ U R                   S   $ r   r  r<   s    r,   rL   ComparativeExperiment.metadata  r  r+   r"   r  )r$   r%   r&   r'   r(   r)   r   r   r   r  r  r   rL   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   r[   r   r  r  NrZ   r  repo_id	parent_idr   r  r   rf   r  rd   r  example_run_idsr   r   num_downloads	num_viewsparent_commit_hashr"   )r$   r%   r&   r'   r(   r)   r  r  r  r  rf   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   readmer[   r  r   rf   r  rj   	is_publicis_archivedr   r   original_repo_idupstream_repo_idr  	full_namer@   	num_likesr  r  r"  liked_by_auth_userlast_commit_hashnum_commitsoriginal_repo_full_nameupstream_repo_full_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)	ListPromptsResponseiL  z A list of prompts with metadata.zlist[Prompt]reposr@   r   r"   Nr#   r"   r+   r,   r  r  L  s    *J&r+   r  c                  .    \ rS rSrSrSr Sr Sr SrSr	g)	PromptSortFieldiU  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  U  s%    .#MIJIr+   r  c                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	InputTokenDetailsib  zvBreakdown of input token counts.

Does *not* need to sum to full input token count. Does *not* need to have all keys.
r@   audiocache_creation
cache_readr"   Nr#   r"   r+   r,   r  r  b  s(    
 J Or+   r  c                  0    \ rS rSr% SrS\S'    S\S'   Srg)OutputTokenDetailsiw  zxBreakdown of output token counts.

Does *not* need to sum to full output token count. Does *not* need to have all keys.
r@   r  	reasoningr"   Nr#   r"   r+   r,   r  r  w  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.
rz  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.
rz  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.
r@   r,  r/  r  zNotRequired[InputTokenDetails]r8  zNotRequired[OutputTokenDetails]r;  zNotRequired[float]r2  r5  r  zNotRequired[InputCostDetails]r>  zNotRequired[OutputCostDetails]rA  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.
r@   r,  r/  r  r  r8  r  r;  rz  r2  r5  r  r	  r>  r  rA  r"   Nr#   r"   r+   r,   r  r    sc     33****,,+'('((/**0r+   r  c                  0    \ rS rSr% SrS\S'    S\S'   Srg)	UpsertExamplesResponsei  zCResponse object returned from the upsert_examples_multipart method.r@   countr   example_idsr"   Nr#   r"   r+   r,   r  r    s    MJ45r+   r  c                  0    \ rS rSr% Sr\" \S9rS\S'   Sr	g)ExampleWithRunsi  zExample with runs.rd   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  )lr(   
__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   rl  r   r   rn  r   tuplerB   rS  r.   rD   rU   _AttachmentLikerX   ExampleUploadWithAttachmentsr{   r~   r   r   r   r   ExampleUpdateWithAttachmentsr   r   DatasetTransformationTyper   r   r   r   r   r	  rE  rM  rU  rY  r^  rb  re  ri  ry  r}  r  r  r  r  r  r  r  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+   r,   <module>r.     s7   $ " $ 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%*- %*P 
;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 #* *B2	 2'    s   M MM