Class: TranslationAPI::Provider::Gemini

Inherits:
Object
  • Object
show all
Defined in:
lib/translation_api/provider/gemini.rb,
lib/translation_api/provider/gemini/chat.rb,
lib/translation_api/provider/gemini/cost.rb,
lib/translation_api/provider/gemini/model.rb,
lib/translation_api/provider/gemini/response.rb

Defined Under Namespace

Classes: Chat, Cost, Model, Response

Instance Method Summary collapse

Constructor Details

#initialize(output_logs:, except_words:, language:, custom_prompt: nil) ⇒ Gemini



12
13
14
15
16
17
# File 'lib/translation_api/provider/gemini.rb', line 12

def initialize(output_logs:, except_words:, language:, custom_prompt: nil)
  @model  = Model.new(ENV["GEMINI_MODEL"] || Model.two_five_flash)
  @prompt = Llm::Prompt.new(except_words:, language:, custom_prompt:)
  @chat   = Chat.new(model: @model, prompt: @prompt)
  @output_logs = output_logs
end

Instance Method Details

#nameObject



28
29
30
# File 'lib/translation_api/provider/gemini.rb', line 28

def name
  "gemini"
end

#translate(text) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/translation_api/provider/gemini.rb', line 19

def translate(text)
  return text if text.strip.empty?

  @response = @chat.call(text)
  log.write if @output_logs

  @response.translated_text
end