Module: ActionAI::Parameterized

Extended by:
ActiveSupport::Concern
Included in:
Agent
Defined in:
lib/action_ai/parameterized.rb

Overview

Action AI Parameterized

Provides the option to parameterize AI agents in order to share instance variable setup, processing, and common defaults.

Consider this example that does not use parameterization:

class InvitationAgent < ApplicationAI
  def (inviter, invitee)
    @account = inviter.
    @inviter = inviter
    @invitee = invitee
  end

  def project_invitation(project, inviter, invitee)
    @account = inviter.
    @project = project
    @inviter = inviter
    @invitee = invitee
    @summarizer = ProjectInvitationSummarizer.new(@project.bucket)
  end

  def bulk_project_invitation(projects, inviter, invitee)
    @account  = inviter.
    @projects = projects.sort_by(&:name)
    @inviter  = inviter
    @invitee  = invitee
  end
end

InvitationAgent.(person_a, person_b).later

Using parameterized agents, this can be rewritten as:

class InvitationAgent < ApplicationAI
  before_action { @inviter, @invitee = params[:inviter], params[:invitee] }
  before_action { @account = params[:inviter]. }

  def 
  end

  def project_invitation
    @project = params[:project]
    @summarizer = ProjectInvitationSummarizer.new(@project.bucket)
  end

  def bulk_project_invitation
    @projects = params[:projects].sort_by(&:name)
  end
end

InvitationAgent.with(inviter: person_a, invitee: person_b)..later

Defined Under Namespace

Modules: ClassMethods Classes: Agent, PromptExecution