
    Igjz                    l   d Z ddlmZ ddlmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZ 	 dd	lmZmZmZmZmZmZ dd
lm"Z" 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&f   f   Z(	  G d de      Z) G d de)      Z* G d de)      Z+ G d de)      Z, G d de      Z- G d de$e	      Z. G d de      Z/ G d de/      Z0 G d de      Z1d  Z2 G d! d"e      Z3 G d# d$e3      Z4 G d% d&e$e	      Z5 G d' d(ed)*      Z6 G d+ d,e3      Z7 G d- d.e      Z8 G d/ d0e8      Z9 G d1 d2e8      Z: G d3 d4e	      Z; G d5 d6e      Z< G d7 d8ed)*      Z= G d9 d:ed)*      Z> G d; d<e<      Z? G d= d>e<      Z@ G d? d@e      ZA G dA dBeA      ZBe G dC dDe             ZC G dE dFed)*      ZD G dG dHe      ZE G dI dJed)*      ZF G dK dLe      ZGe+j                           G dM dNe      ZI G dO dPe      ZJ G dQ dRed)*      ZK G dS dTed)*      ZL G dU dVe      ZM G dW dXe      ZN G dY dZe      ZO G d[ d\e      ZP G d] d^e      ZQ G d_ d`e      ZR G da dbe$e	      ZS G dc dded)*      ZT G de dfed)*      ZU G dg dhe      ZVy# e $ r dd	l!mZmZmZmZmZmZ Y ^w xY w)izSchemas for the LangSmith API.    )annotations)datetime	timedeltatimezone)Decimal)Enum)	AnyDictList
NamedTupleOptionalProtocolTupleUnionruntime_checkable)UUID)NotRequired	TypedDict)	BaseModelFieldPrivateAttr
StrictBoolStrictFloat	StrictInt)LiteralNc                  &    e Zd ZU dZded<   ded<   y)
AttachmentaB  Annotated type that will be stored as an attachment if used.

    Examples:
        --------
        .. code-block:: python

        @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bytesdataN__name__
__module____qualname____doc____annotations__     N/var/www/html/answerous/venv/lib/python3.12/site-packages/langsmith/schemas.pyr   r   0   s     N
Kr)   r   c                      e Zd ZU dZded<    ee      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_iddefault_factoryDict[str, Any]inputsNdefaultOptional[Dict[str, Any]]outputsmetadatac                      e Zd ZdZdZy)ExampleBase.Config#Configuration class for the schema.TNr#   r$   r%   r&   frozenr(   r)   r*   Configr8   N   
    1r)   r<   )r#   r$   r%   r&   r'   r   dictr1   r5   r6   r<   r(   r)   r*   r,   r,   F   sD    "48FN8(-d(;G%;).t)<H&< r)   r,   c                  H    e Zd ZU dZded<    ed       Zded<   dZd	ed
<   y)ExampleCreatezExample create model.Optional[UUID]idc                 H    t        j                  t        j                        S Nr   nowr   utcr(   r)   r*   <lambda>zExampleCreate.<lambda>X       hll9S r)   r.   r   
created_atNOptional[Union[str, List[str]]]split)r#   r$   r%   r&   r'   r   rJ   rL   r(   r)   r*   r@   r@   T   s&     1STJT-1E*1r)   r@   c                       e Zd ZU dZded<    ed       Zded<    e ed      	      Zded
<    ed	      Z	ded<    ee
      Zded<   dZded<    ed	      Zded<    ed	      Zded<   	 	 d	 	 	 	 	 	 	 d fdZedd       Zd Z xZS )ExamplezExample model.r   rB   c                 L    t        j                  dt        j                        S )Nr   )tz)r   fromtimestampr   rG   r(   r)   r*   rH   zExample.<lambda>a   s     6 6qX\\ J r)   r.   r   rJ   z$00000000-0000-0000-0000-000000000000r2   r-   NOptional[datetime]modified_atz	List[Run]runsrA   source_run_idOptional[str]	_host_url
_tenant_idc                @    t        |   di | || _        || _        y)Initialize a Dataset object.Nr(   )super__init__rW   rX   )selfrW   rX   kwargs	__class__s       r*   r\   zExample.__init__j   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)rW   r-   rB   rX   r   )r]   paths     r*   urlzExample.urlu   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=''))r_   rB   r-   re   r]   s    r*   __repr__zExample.__repr__   s8    ..!dggYmDOO;LHUYU]U]T^^`aar)   )NN)rW   rV   rX   rA   r^   r	   returnNonerl   rV   )r#   r$   r%   r&   r'   r   rJ   r   r-   rS   listrT   rU   r   rW   rX   r\   propertyre   rk   __classcell__r_   s   @r*   rN   rN   \   s    H JJ  T*P%QRJR&+D&9K#9D1D)1$(M>(*48I}8!,T!:J: $(%)	% 	% #	% 		%
 
	%  br)   rN   c                      e Zd ZU dZded<   y)ExampleSearchzExample returned via search.r   rB   Nr"   r(   r)   r*   rt   rt      s
    &Hr)   rt   c                  l    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
<    G d d      Z
y)ExampleUpdatezUpdate class for Example.NrA   r-   r4   r1   r5   r6   rK   rL   c                      e Zd ZdZdZy)ExampleUpdate.Configr9   TNr:   r(   r)   r*   r<   rx      r=   r)   r<   )r#   r$   r%   r&   r-   r'   r1   r5   r6   rL   r<   r(   r)   r*   rv   rv      sE    #!%J%'+F$+(,G%,)-H&--1E*1 r)   rv   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*   rz   rz      s    &	B
CDr)   rz   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   nameNrV   descriptionzOptional[DataType]	data_typec                      e Zd ZdZdZy)DatasetBase.Configr9   TNr:   r(   r)   r*   r<   r      r=   r)   r<   )r#   r$   r%   r&   r'   r   r   r<   r(   r)   r*   r   r      s)    
I!%K%$(I!( r)   r   c                      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<    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   rB   r   rJ   Nr2   rR   rS   Optional[int]example_countsession_countlast_session_start_timer4   inputs_schemaoutputs_schemarV   rW   rA   rX   _public_pathc                    d|v r|j                  d      |d<   d|v r|j                  d      |d<   t        |   di | || _        || _        || _        y)rZ   inputs_schema_definitionr   outputs_schema_definitionr   Nr(   )popr[   r\   rW   rX   r   )r]   rW   rX   r   r^   r_   s        r*   r\   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)ra   rc   rb   N)rW   r   rX   r   rB   rj   s    r*   re   zDataset.url   s}     >>  ..)$*;*;)<==..)S-A,B*TWWIVVnn%Zy99r)   )NNN)
rW   rV   rX   rA   r   rV   r^   r	   rl   rm   rn   )r#   r$   r%   r&   r'   r   rS   r   r   r   r   r   r   rW   rX   r   r\   rp   re   rq   rr   s   @r*   r   r      s    H&+D&9K#9#'M='#'M='26/6.2M+2/3N,3*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.NOptional[List[str]]tagsr   as_of)r#   r$   r%   r&   r   r'   r(   r)   r*   r   r      s    / $D
$Or)   r   c                 
    di iS )Nr6   r(   r(   r)   r*   _default_extrar      s    r)   c                  F   e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 d	Zd
ed<   	  ee      Zded<   	 d	Z	ded<   	 d	Z
ded<   	 d	Zded<   	  ee      Zded<   	 d	Zded<   	 d	Zded<   	 d	Zded<   	 d	Zded<   	  ee      Zded<   	 ed!d       Zed"d       Zd  Z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   rB   r   r   r   
start_timerun_typeNrR   end_timer.   Optional[dict]extrarV   error
serializedzOptional[List[Dict]]eventsr>   r1   r5   rA   reference_example_idparent_run_idr   r   Attachmentsattachmentsc                `    | j                   i | _         | j                   j                  di       S zRetrieve the metadata (if any).r6   )r   
setdefaultrj   s    r*   r6   zRunBase.metadata   s,     ::DJzz$$Z44r)   c                8    | j                   j                  d      S )z"Retrieve the revision ID (if any).revision_id)r6   getrj   s    r*   r   zRunBase.revision_id'  s     }}  //r)   c                n    | j                    d| j                   d| j                   d| j                   dS )rg   rh   z, name='z', run_type='ri   )r_   rB   r   r   rj   s    r*   rk   zRunBase.__repr__,  s3    ..!dggYhtyykt}}o]_``r)   rl   zdict[str, Any])rl   rA   )r#   r$   r%   r&   r'   r   r   r   r   r   r   r   r>   r1   r5   r   r   r   r   rp   r6   r   rk   r(   r)   r*   r   r      s    	H(
I* M" $(H '-!.AE>A=E=;!%J%F#'F ' .FD.""G^"/+/./@$(M>(@ $D
$6$T:K:4 5 5 0 0ar)   r   c                      e Zd ZU dZdZded<   	 dZded<   	 dZded<   	 dZd	ed
<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 ded<   	  ed      Zded<   	 dZd ed!<   	  ed      Zded"<   d%d& fd#Zed'd$       Z xZS )(Runz$Run schema when loading from the DB.NrA   
session_idOptional[List[UUID]]child_run_idszOptional[List[Run]]
child_runsr4   feedback_statsrV   app_pathmanifest_idstatusr   prompt_tokenscompletion_tokenstotal_tokensrR   first_token_timeOptional[Decimal]
total_costprompt_costcompletion_costparent_run_idsr   trace_id r2   r   dotted_orderOptional[bool]
in_datasetrW   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   rB   r1   Nr(   )r   r   r[   r\   rW   r   stripr   r   	isoformatrB   )r]   rW   r^   r1   r_   s       r*   r\   zRun.__init__f  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)ra   N)rW   r   rj   s    r*   re   zRun.urlp  s,     >>dmmnn%dmm_55r)   rD   rW   rV   r^   r	   rl   rm   rn   )r#   r$   r%   r&   r   r'   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rW   r\   rp   re   rq   rr   s   @r*   r   r   1  s*   .!%J%-*.M'.(&*J#*M/3N,3&"Hm"7"&K&: FM .#'M='/'+}+/"&L-&1+/(/-$(J!(M%)K")G)-O&-C+/N(/!NCb)L#)
 "&J%+*48I}8J  r)   r   c                  ,    e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
RunTypeEnumz5(Deprecated) Enum for run types. Use string directly.toolchainr|   	retriever	embeddingpromptparserN)r#   r$   r%   r&   r   r   r|   r   r   r   r   r(   r)   r*   r   r   x  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   r1   r5   rR   r   r   rV   r   r   rA   r   r   Optional[List[dict]]r   r   r   inputs_s3_urlsoutputs_s3_urlsrB   r   session_namer   input_attachmentsoutput_attachmentsr   r   r   r   r   Nr"   r(   r)   r*   r   r     s    0
I  !!  
""##((%%&&Nr)   r   F)totalc                  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.NrR   last_reviewed_timeadded_at)r#   r$   r%   r&   r   r'   r   r(   r)   r*   r   r     s"    0-1*1.#'H '3r)   r   c                  :    e Zd ZU dZded<   	  ee      Zded<   y)FeedbackSourceBasezBase class for feedback sources.

    This represents whether feedback is submitted from the API, model, human labeler,
        etc.
    r   typer.   r4   r6   N)r#   r$   r%   r&   r'   r   r>   r6   r(   r)   r*   r   r     s$     I*).t)DH&D6r)   r   c                       e Zd ZU dZdZded<   y)APIFeedbackSourcezAPI feedback source.apizLiteral['api']r   Nr#   r$   r%   r&   r   r'   r(   r)   r*   r   r     s     D. r)   r   c                       e Zd ZU dZdZded<   y)ModelFeedbackSourcezModel feedback source.modelzLiteral['model']r   Nr   r(   r)   r*   r   r     s     $D
$r)   r   c                      e Zd ZdZdZ	 dZy)FeedbackSourceTypezFeedback source type.r   r   N)r#   r$   r%   r&   APIMODELr(   r)   r*   r   r     s    
C2E"r)   r   c                     e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded	<   	 ded
<   	 ded<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	  G d d      Zy)FeedbackBasezFeedback schema.r   rB   NrR   rJ   rS   rA   run_idr   r   key
SCORE_TYPEscore
VALUE_TYPEvaluerV   commentzUnion[str, dict, None]
correctionOptional[FeedbackSourceBase]feedback_sourcer   comparative_experiment_idfeedback_group_idzOptional[Dict]r   c                      e Zd ZdZdZy)FeedbackBase.Configr9   TNr:   r(   r)   r*   r<   r     r=   r)   r<   )r#   r$   r%   r&   r'   rJ   rS   r   r   r   r   r   r   r   r   r   r<   r(   r)   r*   r   r     s    H(%)J"),&*K#*2<>	HAE:+E:Q!G]!2)-J&-!48O18%!%J%T04~4X(,~,1 !E> ' r)   r   c                  (    e Zd ZU dZded<   	 ded<   y)FeedbackCategoryz+Specific value and label pair for feedback.floatr   rV   labelNr"   r(   r)   r*   r  r    s    5LCNr)   r  c                  @    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   y	)
FeedbackConfigz:Represents _how_ a feedback value ought to be interpreted.z0Literal['continuous', 'categorical', 'freeform']r   Optional[float]minmaxz Optional[List[FeedbackCategory]]
categoriesNr"   r(   r)   r*   r  r    s,    D
::	4	400@r)   r  c                  ,    e Zd ZU dZded<   	 dZded<   y)FeedbackCreatez"Schema used for creating feedback.r   r   NzOptional[FeedbackConfig]feedback_config)r#   r$   r%   r&   r'   r  r(   r)   r*   r  r    s    ,''%04O-4r)   r  c                  B    e Zd ZU dZded<   ded<   	 ded<   	 dZded	<   y)
FeedbackzSchema for getting feedback.r   rB   r   rJ   rS   Nr   r   )r#   r$   r%   r&   r'   r   r(   r)   r*   r  r    s*    &H,248O182r)   r  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   rB   c                 H    t        j                  t        j                        S rD   rE   r(   r)   r*   rH   zTracerSession.<lambda>)  rI   r)   r.   r   r   NrR   r   rV   r   r   r4   r   	tenant_idrA   reference_dataset_idr2   rW   c                    t        |   di | || _        | j                  j                  0| j                  j                  t        j                        | _        yy)r   N)tzinfor(   )r[   r\   rW   r   r  replacer   rG   )r]   rW   r^   r_   s      r*   r\   zTracerSession.__init__:  sL    "6""??!!)"oo55X\\5JDO *r)   c                l    | j                   r(| j                    d| j                   d| j                   S y)ra   rc   z/projects/p/N)rW   r  rB   rj   s    r*   re   zTracerSession.urlA  s3     >>nn%S(8TWWINNr)   c                X    | j                   d| j                   vri S | j                   d   S r   r   rj   s    r*   r6   zTracerSession.metadataH  -     ::4::!=Izz*%%r)   c                X    | j                   d| j                   vrg S | j                   d   S )zRetrieve the tags (if any).r   r  rj   s    r*   r   zTracerSession.tagsO  s-     ::tzz!9Izz&!!r)   rD   r   rn   r   )rl   	List[str])r#   r$   r%   r&   r'   r   r   r   r   r   r   r   rW   r\   rp   re   r6   r   rq   rr   s   @r*   r  r  !  s    
 	H  1STJT+#'H ')!%K%)D-"&*E#*)O0((J*48I}8K   & & " "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<   	 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   rR   last_run_start_timer4   r   zOptional[List[Dict[str, Any]]]
run_facetsr   r   r   r   first_token_p50first_token_p99r  
error_rateNr"   r(   r)   r*   r  r  W  s    
 ,$$?$$6=  D$$H++8,,)..-!!M""G&&C((G((>)r)   r  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(   rj   s    r*   r   zBaseMessageLike.type  s    r)   N)rl   r   )r#   r$   r%   r&   r'   rp   r   r(   r)   r*   r)  r)  }  s(    AL%%%C; ;r)   r)  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)DatasetShareSchemaz*Represents the schema for a dataset share.r   r-   share_tokenr   re   Nr"   r(   r)   r*   r.  r.    s    4 ,	H(r)   r.  c                      e Zd ZU dZded<   	 ded<   	 dZded<   	  ed	 
      Zded<   	  ed 
      Zded<   	 ded<   y)AnnotationQueuezRepresents an annotation queue.r   rB   r   r   NrV   r   c                 H    t        j                  t        j                        S rD   rE   r(   r)   r*   rH   zAnnotationQueue.<lambda>  rI   r)   r.   r   rJ   c                 H    t        j                  t        j                        S rD   rE   r(   r)   r*   rH   zAnnotationQueue.<lambda>  rI   r)   
updated_atr  )	r#   r$   r%   r&   r'   r   r   rJ   r4  r(   r)   r*   r1  r1    sP    )H8
I+!%K%: 1STJT> 1STJTCODr)   r1  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.booluse_multipart_endpointintscale_up_qsize_triggerscale_up_nthreads_limitscale_down_nempty_trigger
size_limitr   size_limit_bytesNr"   r(   r)   r*   r6  r6    s:    ,  D<  7""AO/##8r)   r6  c                  @    e Zd ZU dZdZded<   	 dZded<   	 dZded	<   y)
LangSmithInfoz'Information about the LangSmith server.r   r   versionNrR   license_expiration_timezOptional[BatchIngestConfig]batch_ingest_config)r#   r$   r%   r&   rA  r'   rB  rC  r(   r)   r*   r@  r@    s-    1GS.26/6+7;4;r)   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   rB   display_namer   rJ   NrV   tenant_handle)r#   r$   r%   r&   r'   rG  r(   r)   r*   rE  rE    s)    ,G)*#'M='r)   rE  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   rB   r   re   r   
expires_atNr"   r(   r)   r*   rI  rI    s    <H.	H3+r)   rI  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]timer4   r^   Nr"   r(   r)   r*   rL  rL    s    
I
$$,r)   rL  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*   rO  rO    s    !
IJLr)   rO  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*   rT  rT    s     E!!=:  <r)   rT  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   rB   NrV   r   r   r  r   rJ   rS   r  r4   r   r   experiments_infor   c                X    | j                   d| j                   vri S | j                   d   S r   r  rj   s    r*   r6   zComparativeExperiment.metadata  r  r)   r   )r#   r$   r%   r&   r'   r   r   r   rZ  r   rp   r6   r(   r)   r*   rY  rY    s     	H?D-:!%K%@OGDJJ&*E#*?-1*1\/3N,3P& &r)   rY  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_hashr0   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   rB   r   r^  r_  NrA   r   repo_id	parent_idrV   r`  rR   rJ   r4  r.   r   example_run_idsr   r   num_downloads	num_viewsparent_commit_hash)r#   r$   r%   r&   r'   r   re  rf  r`  rJ   r4  r   ro   rg  rh  ri  rj  r(   r)   r*   rd  rd  0  s    EH6J)
I3"&K&O"G^"5 $I~$8!%K%*%)J")=%)J")B,1$,GO)GH#$M=$> I} :(,,1r)   rd  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_handleNrV   r   readmerB   r  r   rJ   r4  r7  	is_publicis_archivedr  r   original_repo_idupstream_repo_idr^  	full_namer9  	num_likesrh  ri  r   liked_by_auth_userlast_commit_hashnum_commitsoriginal_repo_full_nameupstream_repo_full_name)r#   r$   r%   r&   r'   r   rn  rq  rr  ru  rv  rx  ry  r(   r)   r*   rl  rl  [  s    ,!!%K%( FM #GN,*-O')
O.&*m*3&*m*30N<N"N)--@&*m*& -1]1:-1]1:r)   rl  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{    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.rh  ri  r4  rt  N)r#   r$   r%   r&   rh  ri  r4  rt  r(   r)   r*   r~  r~    s%    .#MIJIr)   r~  c                  4    e Zd ZU dZded<   	 ded<   	 ded<   y)InputTokenDetailsz~Breakdown of input token counts.

    Does *not* need to sum to full input token count. Does *not* need to have all keys.
    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    s    
 JNr)   r  c                  L    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded	<   y
)UsageMetadatazUsage metadata for a message, such as token counts.

    This is a standard representation of token usage that is consistent across models.
    r9  input_tokensoutput_tokensr   zNotRequired[InputTokenDetails]input_token_detailszNotRequired[OutputTokenDetails]output_token_detailsNr"   r(   r)   r*   r  r    s<    
 JPA77 :9r)   r  )Wr&   
__future__r   r   r   r   decimalr   enumr   typingr	   r
   r   r   r   r   r   r   r   uuidr   typing_extensionsr   r   pydantic.v1r   r   r   r   r   r   ImportErrorpydanticr   r   r   r   r   r    r   r,   r@   rN   rt   rv   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r)  r.  r1  r6  r@  update_forward_refsrE  rI  rL  rO  rT  rY  r]  rd  rl  r{  r~  r  r  r  r(   r)   r*   <module>r     s   $ " 2 2  
 
 
  4 $ &:y+t;<
4d?#
 $ 3eCJ/;<<= W) 2K 2%bk %bPK I sD 
) 
+k +\Y Gai GaTD' DN	#t 	)5 :4 4
7 
7!* !%, %# #'9 'TOy O@Ye @5\ 5	3| 	33"I 3"l#*- #*L 
;h 
; 
;)% )Ei E"9	 9"<I <    	(	 	(,) ,-y -Ye =i =!&I !&H 9  (2 (2V.;Y .;b') '
c4 
	 *%  I O    s   J J32J3