class Rager::Context
Attributes
Public Class Methods
Source
# File lib/rager/context.rb 25 def initialize(id: nil, name: nil, max_retries: nil, backoff: nil) 26 @id = T.let(id || SecureRandom.uuid, String) 27 @name = T.let(name, T.nilable(String)) 28 @max_retries = T.let(max_retries || 0, Integer) 29 @backoff = T.let(backoff || 1.0, Float) 30 end
Public Instance Methods
Source
# File lib/rager/context.rb 38 def chat(messages, **kwargs) 39 execute( 40 Rager::Operation::Chat, 41 Rager::Chat::Options, 42 kwargs, 43 messages 44 ) { |options, normalized_input| 45 final_input = if normalized_input.is_a?(String) 46 [ 47 Rager::Chat::Message.new( 48 role: Rager::Chat::MessageRole::User, 49 content: normalized_input 50 ) 51 ] 52 else 53 normalized_input 54 end 55 56 provider = Rager::Providers.get_provider(:chat, options.provider, options) 57 provider.chat(final_input, options) 58 } 59 end
Source
# File lib/rager/context.rb 67 def embed(text, **kwargs) 68 execute( 69 Rager::Operation::Embed, 70 Rager::Embed::Options, 71 kwargs, 72 text 73 ) { |options, normalized_input| 74 final_input = if normalized_input.is_a?(String) 75 [normalized_input] 76 else 77 normalized_input 78 end 79 80 provider = Rager::Providers.get_provider(:embed, options.provider, options) 81 provider.embed(final_input, options) 82 } 83 end
Source
# File lib/rager/context.rb 91 def image_gen(prompt, **kwargs) 92 execute( 93 Rager::Operation::ImageGen, 94 Rager::ImageGen::Options, 95 kwargs, 96 prompt 97 ) { |options, normalized_input| 98 provider = Rager::Providers.get_provider(:image_gen, options.provider, options) 99 provider.image_gen(T.cast(normalized_input, Rager::Types::ImageGenInput), options) 100 } 101 end
Source
# File lib/rager/context.rb 109 def mesh_gen(prompt, **kwargs) 110 execute( 111 Rager::Operation::MeshGen, 112 Rager::MeshGen::Options, 113 kwargs, 114 prompt 115 ) { |options, normalized_input| 116 provider = Rager::Providers.get_provider(:mesh_gen, options.provider, options) 117 provider.mesh_gen(T.cast(normalized_input, Rager::Types::MeshGenInput), options) 118 } 119 end
Source
# File lib/rager/context.rb 128 def rerank(query, documents, **kwargs) 129 execute( 130 Rager::Operation::Rerank, 131 Rager::Rerank::Options, 132 kwargs, 133 {query: query, documents: documents} 134 ) { |options, normalized_input| 135 provider = Rager::Providers.get_provider(:rerank, options.provider, options) 136 input_hash = T.cast(normalized_input, T::Hash[Symbol, T.untyped]) 137 provider.rerank(input_hash[:query], input_hash[:documents], options) 138 } 139 end
Source
# File lib/rager/context.rb 147 def search(query, **kwargs) 148 execute( 149 Rager::Operation::Search, 150 Rager::Search::Options, 151 kwargs, 152 query 153 ) { |options, normalized_input| 154 provider = Rager::Providers.get_provider(:search, options.provider, options) 155 provider.search(T.cast(normalized_input, Rager::Types::SearchInput), options) 156 } 157 end
Source
# File lib/rager/context.rb 166 def template(template, variables, **kwargs) 167 execute( 168 Rager::Operation::Template, 169 Rager::Template::Options, 170 kwargs, 171 {template: template, variables: variables} 172 ) { |options, normalized_input| 173 provider = Rager::Providers.get_provider(:template, options.provider, options) 174 input_hash = T.cast(normalized_input, T::Hash[Symbol, T.untyped]) 175 provider.template(input_hash[:template], input_hash[:variables], options) 176 } 177 end