Documentation Index
Fetch the complete documentation index at: https://docs.galileo.ai/llms.txt
Use this file to discover all available pages before exploring further.
LogStream
Object-centric interface for Galileo log streams.
This class provides an intuitive way to work with Galileo log streams,
offering methods for managing log streams and their associated metrics.
Examples
# Create a new log stream and persist it
log_stream = LogStream(name="Production Logs", project_name="My AI Project").create()
# Get an existing log stream
log_stream = LogStream.get(name="Production Logs", project_name="My AI Project")
# LogStreams can also be created through Project instances
from galileo.project import Project
project = Project.get(name="My AI Project")
log_stream = project.create_log_stream(name="Production Logs")
# Enable metrics on the log stream
from galileo.schema.metrics import GalileoMetrics
local_metrics = log_stream.enable_metrics([
GalileoMetrics.correctness,
GalileoMetrics.completeness,
"context_relevance"
])
# Refresh log stream state from API
log_stream.refresh()
context
Get a galileo context manager for this log stream.
This is a convenient method that returns a pre-configured galileo_context
for this log stream, eliminating the need to specify project and log stream names.
Examples
log_stream = LogStream.get(
name="Production Logs",
project_name="My AI Project"
)
with log_stream.context():
# Your logging code here
response = openai_client.chat.completions.create(...)
create
def create(self) -> LogStream
Persist this log stream to the API.
Examples
log_stream = LogStream(name="Production Logs", project_name="My AI Project").create()
assert log_stream.is_synced()
export_records
def export_records(self,
record_type: RecordType=RecordType.TRACE,
filters: builtins.list[FilterType] | None=None,
sort: LogRecordsSortClause=LogRecordsSortClause(column_id='created_at', ascending=False),
export_format: LLMExportFormat=LLMExportFormat.JSONL,
column_ids: builtins.list[str] | None=None,
redact: bool=True) -> Iterator[dict[str, Any]]
Export records from this log stream.
This method provides a convenient way to export records without needing
to specify project_id or log_stream_id.
Arguments
record_type: The type of records to export (SPAN, TRACE, or SESSION).
filters: A list of filters to apply to the export.
sort: A sort clause to order the exported records.
export_format: The desired format for the exported data.
column_ids: A list of column IDs to include in the export.
redact: Redact sensitive data from the response.
get
def get(cls,
*,
name: str,
project_id: str | None=None,
project_name: str | None=None) -> LogStream | None
Get an existing log stream by name.
Arguments
name (str): The log stream name.
project_id (Optional[str]): The project ID. If neither project_id nor project_name is provided,
falls back to GALILEO_PROJECT_ID or GALILEO_PROJECT environment variables.
project_name (Optional[str]): The project name. If neither project_id nor project_name is provided,
falls back to GALILEO_PROJECT environment variable.
get_metrics
def get_metrics(self) -> builtins.list[str]
Get the list of metrics currently enabled on this log stream.
Examples
log_stream = LogStream.get(name="Production Logs", project_name="My Project")
current_metrics = log_stream.get_metrics()
print(f"Currently enabled: {current_metrics}")
get_sessions
def get_sessions(self,
filters: builtins.list[FilterType] | None=None,
sort: LogRecordsSortClause | None=None,
limit: int=100,
starting_token: int=0) -> QueryResult
Query sessions in this log stream.
This is a convenience method that queries for sessions specifically.
Arguments
filters: A list of filters to apply to the query.
sort: A sort clause to order the query results.
limit: The maximum number of records to return.
starting_token: The token for the next page of results.
get_spans
def get_spans(self,
filters: builtins.list[FilterType] | None=None,
sort: LogRecordsSortClause | None=None,
limit: int=100,
starting_token: int=0) -> QueryResult
Query spans in this log stream.
This is a convenience method that queries for spans specifically.
Arguments
filters: A list of filters to apply to the query.
sort: A sort clause to order the query results.
limit: The maximum number of records to return.
starting_token: The token for the next page of results.
get_traces
def get_traces(self,
filters: builtins.list[FilterType] | None=None,
sort: LogRecordsSortClause | None=None,
limit: int=100,
starting_token: int=0) -> QueryResult
Query traces in this log stream.
This is a convenience method that queries for traces specifically.
Arguments
filters: A list of filters to apply to the query.
sort: A sort clause to order the query results.
limit: The maximum number of records to return.
starting_token: The token for the next page of results.
list
def list(cls,
*,
project_id: str | None=None,
project_name: str | None=None,
limit: Unset | int=100,
starting_token: Unset | int=0) -> list[LogStream]
List log streams for a project.
Returns a single page of results. Use starting_token (from
next_starting_token on a prior response) to fetch subsequent pages.
Arguments
project_id (Optional[str]): The project ID. If neither project_id nor project_name is provided,
falls back to GALILEO_PROJECT_ID or GALILEO_PROJECT environment variables.
project_name (Optional[str]): The project name. If neither project_id nor project_name is provided,
falls back to GALILEO_PROJECT environment variable.
limit (Union[Unset, int]): Maximum number of log streams to return per page. Defaults to 100.
starting_token (Union[Unset, int]): Pagination token to start from. Defaults to 0 (first page).
project
def project(self) -> Project | None
Get the project this log stream belongs to.
query
def query(self,
record_type: RecordType,
filters: builtins.list[FilterType] | None=None,
sort: LogRecordsSortClause | None=None,
limit: int=100,
starting_token: int=0) -> QueryResult
Query records in this log stream.
This method provides a convenient way to search spans, traces, or sessions
within the current log stream without needing to specify project_id or log_stream_id.
Arguments
record_type: The type of records to query (SPAN, TRACE, or SESSION).
filters: A list of filters to apply to the query.
sort: A sort clause to order the query results.
limit: The maximum number of records to return.
starting_token: The token for the next page of results.
refresh
def refresh(self) -> None
Refresh this log stream’s state from the API.
Updates all attributes with the latest values from the remote API
and sets the state to SYNCED.
Examples
log_stream.refresh()
assert log_stream.is_synced()
session_columns
def session_columns(self) -> ColumnCollection
Get available columns for sessions in this log stream.
Examples
log_stream = LogStream.get(name="Production Logs", project_name="My AI Project")
columns = log_stream.session_columns
# Access a specific column
model_column = columns["model"]
# Filter using columns
sessions = log_stream.get_sessions(
filters=[columns["model"].equals("gpt-4o-mini")],
sort=columns["created_at"].descending()
)
set_metrics
def set_metrics(self,
metrics: builtins.list[GalileoMetrics | Metric | LocalMetricConfig | str]) -> builtins.list[LocalMetricConfig]
Set (replace) the metrics on this log stream.
This replaces any existing metrics with the new list. Alias for enable_metrics
with clearer naming intent.
Arguments
metrics: List of metrics to set. Supports:
- GalileoMetrics enum values (e.g., GalileoMetrics.correctness)
- Metric objects (including from Metric.get(id=”…”))
- LocalMetricConfig objects for custom scoring functions
- String names of built-in metrics
span_columns
def span_columns(self) -> ColumnCollection
Get available columns for spans in this log stream.
Examples
log_stream = LogStream.get(name="Production Logs", project_name="My AI Project")
columns = log_stream.span_columns
# Access a specific column
input_column = columns["input"]
# Filter using columns
spans = log_stream.get_spans(
filters=[columns["input"].contains("world")],
sort=columns["created_at"].descending()
)
trace_columns
def trace_columns(self) -> ColumnCollection
Get available columns for traces in this log stream.
Examples
log_stream = LogStream.get(name="Production Logs", project_name="My AI Project")
columns = log_stream.trace_columns
# Access a specific column
input_column = columns["input"]
# Filter using columns
traces = log_stream.get_traces(
filters=[columns["input"].contains("largest")],
sort=columns["created_at"].descending()
)