Files
fizzy/app/controllers/admin/prompt_sandboxes_controller.rb
T
2025-09-02 11:23:01 +02:00

31 lines
1.0 KiB
Ruby

class Admin::PromptSandboxesController < AdminController
include DayTimelinesScoped
def show
@llm_model = params[:llm_model] || Event::Summarizer::LLM_MODEL
if @prompt = cookies[:prompt].presence
@period_highlights = build_period_highlights
cookies.delete :prompt
else
@period_highlights = @day_timeline.weekly_highlights
@prompt = Event::Summarizer::PROMPT
end
end
def create
@prompt = params[:prompt]
@llm_model = params[:llm_model]
cookies[:prompt] = @prompt
redirect_to admin_prompt_sandbox_path(day: @day_timeline.day, llm_model: @llm_model)
end
private
def build_period_highlights
period = PeriodHighlights::Period.new(Current.user.collections, starts_at: @day_timeline.day.utc.beginning_of_week(:sunday), duration: 1.week)
summarizer = Event::Summarizer.new(period.events, prompt: @prompt, llm_model: @llm_model)
content = summarizer.summarized_content
PeriodHighlights.new(content: content, cost_in_microcents: summarizer.cost.in_microcents)
end
end