Class: RailsImagePostSolution::OpenaiVisionService
- Inherits:
-
Object
- Object
- RailsImagePostSolution::OpenaiVisionService
- Defined in:
- app/services/rails_image_post_solution/openai_vision_service.rb
Instance Method Summary collapse
-
#initialize ⇒ OpenaiVisionService
constructor
Perform image content moderation using OpenAI Vision API.
-
#moderate_image(attachment) ⇒ Hash
Analyze image to detect R18/R18G content.
Constructor Details
#initialize ⇒ OpenaiVisionService
Perform image content moderation using OpenAI Vision API
7 8 9 10 |
# File 'app/services/rails_image_post_solution/openai_vision_service.rb', line 7 def initialize api_key = RailsImagePostSolution.configuration&.openai_api_key || ENV["OPENAI_API_KEY"] @client = OpenAI::Client.new(access_token: api_key) if api_key.present? end |
Instance Method Details
#moderate_image(attachment) ⇒ Hash
Analyze image to detect R18/R18G content
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/services/rails_image_post_solution/openai_vision_service.rb', line 15 def moderate_image() # Skip if OpenAI API key is not configured return safe_result unless @client # Get image URL (generate temporary URL) image_url = get_image_url() return safe_result unless image_url # Call OpenAI Vision API response = call_vision_api(image_url) # Parse response parse_response(response) rescue StandardError => e Rails.logger.error "OpenAI Vision API error: #{e.}" safe_result # Fail safe on error (no flag) end |