app: name: ${APP_NAME:LLM Guard API} log_level: ${LOG_LEVEL:INFO} scan_fail_fast: ${SCAN_FAIL_FAST:false} scan_prompt_timeout: ${SCAN_PROMPT_TIMEOUT:10} scan_output_timeout: ${SCAN_OUTPUT_TIMEOUT:30} port: ${APP_PORT:7860} cache: ttl: ${CACHE_TTL:3600} #max_size: ${CACHE_MAX_SIZE:1000} rate_limit: enabled: ${RATE_LIMIT_ENABLED:true} limit: ${RATE_LIMIT_LIMIT:100/minute} #auth: # type: http_bearer # token: ${AUTH_TOKEN:} tracing: exporter: ${TRACING_EXPORTER:console} endpoint: ${TRACING_OTEL_ENDPOINT:} # Example: "/v1/traces" metrics: exporter: ${METRICS_TYPE:prometheus} endpoint: ${METRICS_ENDPOINT:} # Example: "/v1/metrics" # Scanners are applied in the order they are listed here. input_scanners: # - type: Anonymize # params: # # allowed_names: [] # # hidden_names: [] # # entity_types: [] # # preamble: "" # use_faker: false # - type: BanCompetitors # params: # competitors: ["facebook"] # threshold: 0.5 # - type: BanSubstrings # params: # substrings: ["test"] # match_type: "word" # case_sensitive: false # redact: false # contains_all: false # - type: BanTopics # params: # topics: ["violence"] # threshold: 0.6 # - type: Code # params: # languages: ["Python"] # is_blocked: true # - type: Gibberish # params: # threshold: 0.9 # - type: InvisibleText # params: {} # - type: Language # params: # valid_languages: ["en"] - type: PromptInjection params: threshold: 0.9 # - type: Regex # params: # patterns: ["Bearer [A-Za-z0-9-._~+/]+"] # is_blocked: true # match_type: search # redact: true # - type: Secrets # params: # redact_mode: "all" # - type: Sentiment # params: # # lexicon: "vader_lexicon" # threshold: -0.1 # - type: TokenLimit # params: # limit: 4096 # encoding_name: "cl100k_base" - type: Toxicity params: threshold: 0.5 output_scanners: # - type: BanCompetitors # params: # competitors: ["facebook"] # threshold: 0.5 # - type: BanSubstrings # params: # substrings: ["test"] # match_type: "word" # case_sensitive: false # redact: false # contains_all: false # - type: BanTopics # params: # topics: ["violence"] # threshold: 0.6 # - type: Bias # params: # threshold: 0.75 # - type: Code # params: # languages: ["Python"] # is_blocked: true # - type: Deanonymize # params: # matching_strategy: "exact" # - type: FactualConsistency # params: # minimum_score: 0.5 # - type: Gibberish # params: # threshold: 0.9 # - type: JSON # params: # required_elements: 0 # repair: true # - type: Language # params: # valid_languages: ["en"] # - type: LanguageSame # params: {} # - type: MaliciousURLs # params: # threshold: 0.75 - type: NoRefusal params: threshold: 0.5 # - type: ReadingTime # params: # max_time: 5 # truncate: false # - type: Regex # params: # patterns: ["Bearer [A-Za-z0-9-._~+/]+"] # is_blocked: true # match_type: search # redact: true - type: Relevance params: threshold: 0.5 - type: Sensitive params: # entity_types: redact: false threshold: 0.0 # - type: Sentiment # params: # threshold: -0.1 # # lexicon: "vader_lexicon" # - type: Toxicity # params: # threshold: 0.5 # - type: URLReachability # params: {}