Traces Client¶
The Traces client provides methods for managing traces in the Opik platform.
- class opik.rest_api.traces.client.TracesClient(*, client_wrapper: SyncClientWrapper)¶
Bases:
object
- add_trace_comment(id_: str, *, text: str, id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Add trace comment
- Parameters:
id (Optional[str])
text (str)
id
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.add_trace_comment(id_=’id’, text=’text’, )
- add_trace_feedback_score(id: str, *, name: str, value: float, source: Literal['ui', 'sdk', 'online_scoring'] | Any, category_name: str | None = OMIT, reason: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Add trace feedback score
- Parameters:
id (str)
name (str)
value (float)
source (FeedbackScoreSource)
category_name (Optional[str])
reason (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.add_trace_feedback_score(id=’id’, name=’name’, value=1.1, source=”ui”, )
- close_trace_thread(*, thread_id: str, project_name: str | None = OMIT, project_id: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Close trace thread
- Parameters:
thread_id (str)
project_name (Optional[str])
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.close_trace_thread(thread_id=’thread_id’, )
- get_traces_by_project(*, page: int | None = None, size: int | None = None, project_name: str | None = None, project_id: str | None = None, filters: str | None = None, truncate: bool | None = None, sorting: str | None = None, exclude: str | None = None, request_options: RequestOptions | None = None) TracePagePublic ¶
Get traces by project_name or project_id
- Parameters:
page (Optional[int])
size (Optional[int])
project_name (Optional[str])
project_id (Optional[str])
filters (Optional[str])
truncate (Optional[bool])
sorting (Optional[str])
exclude (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace resource
- Return type:
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.get_traces_by_project()
- create_trace(*, start_time: datetime, id: str | None = OMIT, project_name: str | None = OMIT, name: str | None = OMIT, end_time: datetime | None = OMIT, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, metadata: Dict[str, Any | None] | None = OMIT, tags: Sequence[str] | None = OMIT, error_info: ErrorInfoWrite | None = OMIT, last_updated_at: datetime | None = OMIT, thread_id: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Get trace
- Parameters:
start_time (dt.datetime)
id (Optional[str])
project_name (Optional[str]) – If null, the default project is used
name (Optional[str])
end_time (Optional[dt.datetime])
input (Optional[JsonListStringWrite])
output (Optional[JsonListStringWrite])
metadata (Optional[JsonNodeWrite])
tags (Optional[Sequence[str]])
error_info (Optional[ErrorInfoWrite])
last_updated_at (Optional[dt.datetime])
thread_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi import datetime client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.create_trace(start_time=datetime.datetime.fromisoformat(“2024-01-15 09:30:00+00:00”, ), )
- create_traces(*, traces: Sequence[TraceWrite], request_options: RequestOptions | None = None) None ¶
Create traces
- Parameters:
traces (Sequence[TraceWrite])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi from Opik import TraceWrite import datetime client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.create_traces(traces=[TraceWrite(start_time=datetime.datetime.fromisoformat(“2024-01-15 09:30:00+00:00”, ), )], )
- get_trace_by_id(id: str, *, request_options: RequestOptions | None = None) TracePublic ¶
Get trace by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace resource
- Return type:
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.get_trace_by_id(id=’id’, )
- delete_trace_by_id(id: str, *, request_options: RequestOptions | None = None) None ¶
Delete trace by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.delete_trace_by_id(id=’id’, )
- update_trace(id: str, *, project_name: str | None = OMIT, project_id: str | None = OMIT, name: str | None = OMIT, end_time: datetime | None = OMIT, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, metadata: Dict[str, Any | None] | None = OMIT, tags: Sequence[str] | None = OMIT, error_info: ErrorInfo | None = OMIT, thread_id: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Update trace by id
- Parameters:
id (str)
project_name (Optional[str]) – If null and project_id not specified, Default Project is assumed
project_id (Optional[str]) – If null and project_name not specified, Default Project is assumed
name (Optional[str])
end_time (Optional[dt.datetime])
input (Optional[JsonListString])
output (Optional[JsonListString])
metadata (Optional[JsonNode])
tags (Optional[Sequence[str]])
error_info (Optional[ErrorInfo])
thread_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.update_trace(id=’id’, )
- delete_trace_comments(*, ids: Sequence[str], request_options: RequestOptions | None = None) None ¶
Delete trace comments
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.delete_trace_comments(ids=[‘ids’], )
- delete_trace_feedback_score(id: str, *, name: str, request_options: RequestOptions | None = None) None ¶
Delete trace feedback score
- Parameters:
id (str)
name (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.delete_trace_feedback_score(id=’id’, name=’name’, )
- delete_trace_threads(*, thread_ids: Sequence[str], project_name: str | None = OMIT, project_id: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Delete trace threads
- Parameters:
thread_ids (Sequence[str])
project_name (Optional[str]) – If null, project_id must be provided
project_id (Optional[str]) – If null, project_name must be provided
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.delete_trace_threads(thread_ids=[‘thread_ids’], )
- delete_traces(*, ids: Sequence[str], request_options: RequestOptions | None = None) None ¶
Delete traces
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.delete_traces(ids=[‘ids’], )
- find_feedback_score_names_2(*, project_id: str | None = None, request_options: RequestOptions | None = None) List[str] ¶
Find Feedback Score names
- Parameters:
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Feedback Scores resource
- Return type:
List[str]
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.find_feedback_score_names_2()
- get_trace_stats(*, project_id: str | None = None, project_name: str | None = None, filters: str | None = None, request_options: RequestOptions | None = None) ProjectStatsPublic ¶
Get trace stats
- Parameters:
project_id (Optional[str])
project_name (Optional[str])
filters (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace stats resource
- Return type:
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.get_trace_stats()
- get_trace_comment(comment_id: str, trace_id: str, *, request_options: RequestOptions | None = None) Comment ¶
Get trace comment
- Parameters:
comment_id (str)
trace_id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Comment resource
- Return type:
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.get_trace_comment(comment_id=’commentId’, trace_id=’traceId’, )
- get_trace_thread(*, thread_id: str, project_name: str | None = OMIT, project_id: str | None = OMIT, request_options: RequestOptions | None = None) TraceThread ¶
Get trace thread
- Parameters:
thread_id (str)
project_name (Optional[str])
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace thread resource
- Return type:
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.get_trace_thread(thread_id=’thread_id’, )
- get_trace_threads(*, page: int | None = None, size: int | None = None, project_name: str | None = None, project_id: str | None = None, truncate: bool | None = None, filters: str | None = None, sorting: str | None = None, request_options: RequestOptions | None = None) TraceThreadPage ¶
Get trace threads
- Parameters:
page (Optional[int])
size (Optional[int])
project_name (Optional[str])
project_id (Optional[str])
truncate (Optional[bool])
filters (Optional[str])
sorting (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace threads resource
- Return type:
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.get_trace_threads()
- open_trace_thread(*, thread_id: str, project_name: str | None = OMIT, project_id: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Open trace thread
- Parameters:
thread_id (str)
project_name (Optional[str])
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.open_trace_thread(thread_id=’thread_id’, )
- score_batch_of_traces(*, scores: Sequence[FeedbackScoreBatchItem], request_options: RequestOptions | None = None) None ¶
Batch feedback scoring for traces
- Parameters:
scores (Sequence[FeedbackScoreBatchItem])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi from Opik import FeedbackScoreBatchItem client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.score_batch_of_traces(scores=[FeedbackScoreBatchItem(id=’id’, name=’name’, value=1.1, source=”ui”, )], )
- search_traces(*, project_name: str | None = OMIT, project_id: str | None = OMIT, filters: Sequence[TraceFilterPublic] | None = OMIT, last_retrieved_id: str | None = OMIT, limit: int | None = OMIT, truncate: bool | None = OMIT, request_options: RequestOptions | None = None) Iterator[bytes] ¶
Search traces
- Parameters:
project_name (Optional[str])
project_id (Optional[str])
filters (Optional[Sequence[TraceFilterPublic]])
last_retrieved_id (Optional[str])
limit (Optional[int]) – Max number of traces to be streamed
truncate (Optional[bool]) – Truncate image included in either input, output or metadata
request_options (Optional[RequestOptions]) – Request-specific configuration. You can pass in configuration such as chunk_size, and more to customize the request and response.
- Returns:
Traces stream or error during process
- Return type:
Iterator[bytes]
- update_trace_comment(comment_id: str, *, text: str, id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None ¶
Update trace comment by id
- Parameters:
comment_id (str)
text (str)
id (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Examples
from Opik import OpikApi client = OpikApi(api_key=”YOUR_API_KEY”, workspace_name=”YOUR_WORKSPACE_NAME”, ) client.traces.update_trace_comment(comment_id=’commentId’, text=’text’, )
Usage Example¶
import opik
client = opik.Opik()
# Get a trace by ID
trace = client.rest_client.traces.get_trace_by_id("trace-id")
# Search for traces
traces = client.rest_client.traces.search_traces(
project_name="my-project",
max_results=100
)
# Add feedback score to a trace
client.rest_client.traces.add_trace_feedback_score(
id="trace-id",
name="accuracy",
value=0.95
)