Class: GroupLandingPages::AiFieldTranslationService
- Inherits:
-
Object
- Object
- GroupLandingPages::AiFieldTranslationService
- Includes:
- ElasticAPM::SpanHelpers
- Defined in:
- app/services/group_landing_pages/ai_field_translation_service.rb
Overview
Service for field-level AI translation (single field, multiple languages)
Instance Attribute Summary collapse
-
#field_name ⇒ Object
readonly
Returns the value of attribute field_name.
-
#source_language ⇒ Object
readonly
Returns the value of attribute source_language.
-
#source_text ⇒ Object
readonly
Returns the value of attribute source_text.
-
#target_languages ⇒ Object
readonly
Returns the value of attribute target_languages.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(field_name:, source_language:, source_text:, target_languages:) ⇒ AiFieldTranslationService
constructor
A new instance of AiFieldTranslationService.
Constructor Details
#initialize(field_name:, source_language:, source_text:, target_languages:) ⇒ AiFieldTranslationService
Returns a new instance of AiFieldTranslationService.
11 12 13 14 15 16 |
# File 'app/services/group_landing_pages/ai_field_translation_service.rb', line 11 def initialize(field_name:, source_language:, source_text:, target_languages:) @field_name = field_name @source_language = source_language @source_text = source_text @target_languages = target_languages end |
Instance Attribute Details
#field_name ⇒ Object (readonly)
Returns the value of attribute field_name.
9 10 11 |
# File 'app/services/group_landing_pages/ai_field_translation_service.rb', line 9 def field_name @field_name end |
#source_language ⇒ Object (readonly)
Returns the value of attribute source_language.
9 10 11 |
# File 'app/services/group_landing_pages/ai_field_translation_service.rb', line 9 def source_language @source_language end |
#source_text ⇒ Object (readonly)
Returns the value of attribute source_text.
9 10 11 |
# File 'app/services/group_landing_pages/ai_field_translation_service.rb', line 9 def source_text @source_text end |
#target_languages ⇒ Object (readonly)
Returns the value of attribute target_languages.
9 10 11 |
# File 'app/services/group_landing_pages/ai_field_translation_service.rb', line 9 def target_languages @target_languages end |
Instance Method Details
#call ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/services/group_landing_pages/ai_field_translation_service.rb', line 18 def call validate_inputs! return failure_result('No source text provided') if source_text.blank? return failure_result('No target languages provided') if target_languages.blank? # Build translation prompt prompt = build_translation_prompt # Execute translation translations = execute_translation(prompt) return failure_result('No translations generated') if translations.blank? success_result(translations) rescue StandardError => e handle_error(e) end |