Class: JpTranslatorFromGpt::Translator
- Inherits:
-
Object
- Object
- JpTranslatorFromGpt::Translator
- Defined in:
- lib/jp_translator_from_gpt/translator.rb
Constant Summary collapse
- SYSTEM_CONTENT_BASE =
<<~TEXT Translate only. Return result only, no extra info Keep symbols TEXT
Class Method Summary collapse
-
.dig_used_tokens(response, token_type) ⇒ Integer
レスポンスから使用したトークン数を取得する.
Instance Method Summary collapse
-
#initialize(output_logs: true, except_words: [], exchange_language: "japanese") ⇒ Translator
constructor
A new instance of Translator.
-
#translate(text) ⇒ void
テキストを日本語に翻訳し、結果をファイルに書き込む.
Constructor Details
#initialize(output_logs: true, except_words: [], exchange_language: "japanese") ⇒ Translator
Returns a new instance of Translator.
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/jp_translator_from_gpt/translator.rb', line 15 def initialize(output_logs: true, except_words: [], exchange_language: "japanese") # 環境変数の読み込み Dotenv.load @client = OpenAI::Client.new( access_token: ENV["OPENAI_API_KEY"], log_errors: true # 好み ) @output_logs = output_logs @system_content = SYSTEM_CONTENT_BASE + except_option_text(except_words) @exchange_language = exchange_language end |
Class Method Details
.dig_used_tokens(response, token_type) ⇒ Integer
レスポンスから使用したトークン数を取得する
47 48 49 50 51 52 53 |
# File 'lib/jp_translator_from_gpt/translator.rb', line 47 def self.dig_used_tokens(response, token_type) if token_type == "input" response["usage"]["prompt_tokens"] elsif token_type == "output" response["usage"]["completion_tokens"] end end |
Instance Method Details
#translate(text) ⇒ void
This method returns an undefined value.
テキストを日本語に翻訳し、結果をファイルに書き込む
32 33 34 35 36 37 38 39 40 |
# File 'lib/jp_translator_from_gpt/translator.rb', line 32 def translate(text) # 空白文字は翻訳する必要がない return text if text.strip.empty? response = chat_to_api(text) Writer.write_logs(response) if @output_logs response["choices"][0]["message"]["content"] end |