Files
fizzy/app/models/ai/tool.rb
T
2025-08-13 15:14:12 +02:00

41 lines
1.1 KiB
Ruby

class Ai::Tool < RubyLLM::Tool
include Rails.application.routes.url_helpers
private
def paginated_response(records, page:, ordered_by:, per_page: nil, &block)
page = GearedPagination::Recordset.new(records, ordered_by: ordered_by, per_page: per_page).page(page)
response = [ "There are #{page.recordset.records_count} records in total." ]
if page.only? || page.last?
response << "This is the last page of results."
else
response << "This is one page of results."
response << "To see more, use this cursor for the next page:"
response << "```"
response << page.next_param
response << "```"
end
response << nil
response << "Records:"
response << "```"
response << page.records.map(&block).to_json
response << "```"
response.join("\n")
end
def default_url_options
options = Rails.application.default_url_options.merge(
script_name: "/#{ApplicationRecord.current_tenant}"
)
unless options.key?(:host)
options[:only_path] = true
end
options
end
end