class RubyConversations::Prompt

Represents a prompt template used to generate AI messages.

def self.find_by!(conditions)

def self.find_by!(conditions)
  name = conditions[:name]
  find_by_name!(name)
end

def self.find_by_name!(name)

def self.find_by_name!(name)
  prompt_data = RubyConversations.client.fetch_prompt(name)
  raise "Prompt not found: #{name}" unless prompt_data
  new(prompt_data)
end

def self.roles

Class methods
def self.roles
  ROLES
end

def attributes

Basic attributes method
def attributes
  instance_values
end

def attributes_for_api

Method for API serialization
def attributes_for_api
  {
    id: id,
    name: name,
    role: role,
    message: message,
    valid_placeholders: valid_placeholders,
    temperature: temperature,
    metadata: metadata,
    latest_version_id: latest_version_id
  }.compact
end

def initialize(attributes = {})

Initialization
def initialize(attributes = {})
  super
end

def interpolate(variables = {})

Interpolate placeholders in the message
def interpolate(variables = {})
  return message if message.nil? || variables.empty?
  format(message, **variables)
end