This commit is contained in:
32
docs/snippets/ruby/ocr/cloud_ocr_backend.md
Normal file
32
docs/snippets/ruby/ocr/cloud_ocr_backend.md
Normal file
@@ -0,0 +1,32 @@
|
||||
```ruby title="Ruby"
|
||||
require 'kreuzberg'
|
||||
require 'net/http'
|
||||
|
||||
class CloudOcrBackend
|
||||
def name
|
||||
'cloud-ocr'
|
||||
end
|
||||
|
||||
def supported_languages
|
||||
%w[eng fra deu]
|
||||
end
|
||||
|
||||
def process_image(image_data, language)
|
||||
uri = URI('https://api.example.com/ocr')
|
||||
req = Net::HTTP::Post.new(uri)
|
||||
req['Authorization'] = "Bearer #{ENV['OCR_API_KEY']}"
|
||||
req.body = image_data
|
||||
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
|
||||
raise StandardError, res.message unless res.is_a?(Net::HTTPSuccess)
|
||||
{ content: JSON.parse(res.body)['text'] }
|
||||
rescue StandardError => e
|
||||
raise StandardError, e.message
|
||||
end
|
||||
end
|
||||
|
||||
Kreuzberg.register_ocr_backend(CloudOcrBackend.new)
|
||||
config = Kreuzberg::ExtractionConfig.new(
|
||||
ocr: Kreuzberg::OcrConfig.new(backend: 'cloud-ocr')
|
||||
)
|
||||
Kreuzberg.extract_file_sync('doc.pdf', config: config)
|
||||
```
|
||||
Reference in New Issue
Block a user