Class: Observ::TracesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/observ/traces_controller.rb

Instance Method Summary collapse

Instance Method Details

#add_to_datasetObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'app/controllers/observ/traces_controller.rb', line 46

def add_to_dataset
  @trace = Observ::Trace.find(params[:id])
  @dataset = Observ::Dataset.find(params[:dataset_id])

  @item = @dataset.items.build(
    input: @trace.input,
    expected_output: params[:expected_output].presence || @trace.output,
    source_trace: @trace,
    status: :active
  )

  if @item.save
    redirect_to dataset_path(@dataset, tab: "items"),
      notice: "Trace added to dataset '#{@dataset.name}' successfully."
  else
    @datasets = Observ::Dataset.order(:name)
    flash.now[:alert] = "Failed to add trace to dataset: #{@item.errors.full_messages.join(', ')}"
    render :add_to_dataset_drawer, status: :unprocessable_content
  end
end

#add_to_dataset_drawerObject



41
42
43
44
# File 'app/controllers/observ/traces_controller.rb', line 41

def add_to_dataset_drawer
  @trace = Observ::Trace.find(params[:id])
  @datasets = Observ::Dataset.order(:name)
end

#annotations_drawerObject



30
31
32
33
34
# File 'app/controllers/observ/traces_controller.rb', line 30

def annotations_drawer
  @trace = Observ::Trace.find(params[:id])
  @annotations = @trace.annotations.recent
  @annotation = @trace.annotations.build
end

#indexObject



3
4
5
6
7
8
9
10
11
# File 'app/controllers/observ/traces_controller.rb', line 3

def index
  @traces = Observ::Trace
    .includes(:observ_session)
    .order(start_time: :desc)
    .page(params[:page])
    .per(Observ.config.pagination_per_page)

  apply_filters if params[:filter].present?
end

#searchObject



20
21
22
23
24
25
26
27
28
# File 'app/controllers/observ/traces_controller.rb', line 20

def search
  @traces = Observ::Trace
    .includes(:observ_session)
    .where("trace_id LIKE ? OR name LIKE ?", "%#{params[:q]}%", "%#{params[:q]}%")
    .order(start_time: :desc)
    .limit(50)

  render :index
end

#showObject



13
14
15
16
17
18
# File 'app/controllers/observ/traces_controller.rb', line 13

def show
  @trace = Observ::Trace.includes(:observations).find(params[:id])
  @observations = @trace.observations.order(start_time: :asc)
  @generations = @trace.generations
  @spans = @trace.spans
end

#text_output_drawerObject



36
37
38
39
# File 'app/controllers/observ/traces_controller.rb', line 36

def text_output_drawer
  @trace = Observ::Trace.includes(:observations, :annotations, observ_session: :annotations).find(params[:id])
  @formatted_text = Observ::TraceTextFormatter.new(@trace).format
end