
    j                         d dl Z d dlZd dlmZmZmZmZmZ d dlm	c m
Z
 d dl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 ddlmZ ddlmZ e j6                   G d de             Zy)	    N)AnyDictListOptionalUnion)CreatedByTypeErrorInfoDictFeedbackScoreDictLLMProviderSpanType   )span)ObservationDatac            !       ,   e Zd ZU dZ ej
                  ej                        Ze	e
d<   dZee   e
d<   dZee	   e
d<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddee	   ded	eej                      d
eej                      deee	ef      deee	ef      deee	ef      deee	      deeee	ef   ej,                  f      deee      dee	   deee	ef      dee   dee   deeej8                        dej<                  f dZe dee	ef   fd       Z!e dee	ef   fd       Z"y)	TraceDataz
    The TraceData object is returned when calling :func:`opik.opik_context.get_current_trace_data` from a tracked function.
    )default_factoryidN
created_by	thread_idnametype
start_timeend_timemetadatainputoutputtagsusagefeedback_scoresmodelprovider
error_info
total_costattachmentsreturnc                     ||nt        j                         }t        j                  di d| j                  dd d| j
                  d|d|d|d|d|d	|d
|d|d|	d|
d|d|d|d|d|S )Ntrace_idparent_span_idproject_namer   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$    )datetime_helperslocal_timestampr   SpanDatar   r)   )selfr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   s                   z/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/api_objects/trace/trace_data.pycreate_child_span_dataz TraceData.create_child_span_data   s    & %0J6F6V6V6X 	 }} 
WW

 **
 	

 
 "
 
 
 
 
 
 
 ,
 
 
  "!
" "#
$ $%
 	
    c                 &   | j                   | j                  | j                  d}| j                  | j                  |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   |S )zTReturns parameters of this trace to be sent to the server when starting a new trace.)r   r   r)   r   r   r   r   )r   r   r)   r   r   r   r   )r.   start_parameterss     r/   as_start_parameterszTraceData.as_start_parametersH   s     ''// --,

 99 '+yyV$::!(,

W%==$+/==Z(99 '+yyV$r1   c                 &   | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  dS )z>Returns all parameters of this trace to be sent to the server.r   r   r   r   r   r   r   r   r   r)   r"   r   r$   r6   )r.   s    r/   as_parameterszTraceData.as_parameters[   so     ''II//ZZkkII#33 --//++
 	
r1   )NgeneralNNNNNNNNNNNNN)#__name__
__module____qualname____doc__dataclassesfield
id_helpersgenerate_idr   str__annotations__r   r   r   r   r   datetimer   r   r   r   	llm_usage	OpikUsager
   r   r	   float
attachment
Attachmentr   r-   r0   propertyr4   r7   r*   r1   r/   r   r      s     k
0F0FGBG*.J'.#Ix}# #"2604-1*.+/$(FJ=A#6:.2&*=A!(
sm(
 (
 X../	(

 8,,-(
 4S>*(
 S#X'(
 c3h((
 tCy!(
 d38ni.A.AABC(
 "$'8"9:(
 }(
 5k!123(
 ]+(
 UO(
  d:#8#89:!(
" 
#(
T  T#s(^    $ 
tCH~ 
 
r1   r   )r=   rC   typingr   r   r   r   r   opik.api_objects.attachmentapi_objectsrG   opik.datetime_helpersr+   opik.id_helpersr?   opik.llm_usagerD   
opik.typesr   r	   r
   r   r    r   observation_datar   	dataclassr   r*   r1   r/   <module>rT      sV      3 3 0 0 0 $ "   . W
 W
 W
r1   