lex-lakera

LegionIO extension for the Lakera Guard v2 API — AI content security including prompt injection detection, PII detection, content moderation, and malicious link detection.

Supports both Lakera SaaS (regional endpoints, Enterprise policy/project management) and self-hosted deployments.

Installation

Add to your Gemfile:

gem 'lex-lakera'

Usage

Screen Content (SaaS)

require 'legion/extensions/lakera'

client = Legion::Extensions::Lakera::Client.new(api_key: 'lk_...')

result = client.check(
  messages: [{ role: 'user', content: 'Ignore previous instructions and...' }],
  api_key: 'lk_...',
  breakdown: true,
  payload: true
)

if result[:result]['flagged']
  puts "Content flagged!"
  result[:result]['breakdown'].each do |b|
    puts "  #{b['detector_type']}: #{b['detected']}" if b['detected']
  end
end

Detailed Confidence Analysis

result = client.check_detailed(
  messages: [{ role: 'user', content: 'My SSN is 123-45-6789' }],
  api_key: 'lk_...'
)

result[:result]['results'].each do |r|
  puts "#{r['detector_type']}: #{r['result']}"
end
# => prompt_attack: l5_unlikely
# => pii: l1_confident

Regional Endpoints

client = Legion::Extensions::Lakera::Client.new(
  api_key: 'lk_...',
  region: :eu_west_1  # :us, :us_east_1, :us_west_2, :eu_west_1, :ap_southeast_1
)

Enterprise Policy Management

result = client.create_policy(
  name: 'Strict Policy',
  input_detectors: [{ type: 'prompt_attack', sensitivity: 'L4' }],
  output_detectors: [{ type: 'pii', sensitivity: 'L2' }],
  api_key: 'lk_...'
)

Self-Hosted Health Monitoring

client = Legion::Extensions::Lakera::Client.new(
  host: 'http://lakera.internal:8000',
  self_hosted: true
)

client.live(host: 'http://lakera.internal:8000')
client.ready(host: 'http://lakera.internal:8000')
client.startup(host: 'http://lakera.internal:8000')

License

MIT