Class: LlmLogs::PromptVersionsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- LlmLogs::PromptVersionsController
- Defined in:
- app/controllers/llm_logs/prompt_versions_controller.rb
Instance Method Summary collapse
Instance Method Details
#compare ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/llm_logs/prompt_versions_controller.rb', line 33 def compare if params[:a].blank? || params[:b].blank? || params[:a] == params[:b] redirect_to prompt_versions_path(@prompt), alert: "Select two different versions to compare." return end @version_a = @prompt.versions.find_by(version_number: params[:a]) @version_b = @prompt.versions.find_by(version_number: params[:b]) unless @version_a && @version_b redirect_to prompt_versions_path(@prompt), alert: "Version not found." return end = [@version_a..size, @version_b..size].max @diffs = (0...).map do |i| msg_a = @version_a.[i] msg_b = @version_b.[i] role = (msg_a || msg_b)["role"] content_a = (msg_a&.dig("content") || "").gsub("\r\n", "\n") content_b = (msg_b&.dig("content") || "").gsub("\r\n", "\n") diff_html = Diffy::SplitDiff.new(content_a, content_b, format: :html_simple) { role: role, left: diff_html.left, right: diff_html.right } end end |
#destroy ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/controllers/llm_logs/prompt_versions_controller.rb', line 21 def destroy version = @prompt.versions.find(params[:id]) if version == @prompt.current_version redirect_to prompt_versions_path(@prompt), alert: "Cannot delete the current active version." return end version.destroy! redirect_to prompt_versions_path(@prompt), notice: "Version #{version.version_number} deleted." end |
#index ⇒ Object
7 8 9 |
# File 'app/controllers/llm_logs/prompt_versions_controller.rb', line 7 def index @versions = @prompt.versions.order(version_number: :desc) end |
#restore ⇒ Object
15 16 17 18 19 |
# File 'app/controllers/llm_logs/prompt_versions_controller.rb', line 15 def restore version = @prompt.versions.find(params[:id]) @prompt.rollback_to!(version.version_number) redirect_to prompt_path(@prompt), notice: "Restored to version #{version.version_number}." end |
#show ⇒ Object
11 12 13 |
# File 'app/controllers/llm_logs/prompt_versions_controller.rb', line 11 def show @version = @prompt.versions.find(params[:id]) end |