Parameters
See plugin common configurations for configuration options available to all plugins.
This plugin supports referencing sensitive parameter values from environment variables using the env:// prefix, or from a secret manager, such as HashiCorp Vault’s KV secrets engine, using the secret:// prefix. For more information, see environment variables in plugin and secrets.
comprehend
AWS Comprehend configurations.
access_key_id
AWS access key ID.
secret_access_key
AWS secret access key. The value is encrypted with AES before being stored in etcd.
region
AWS region.
endpoint
AWS Comprehend service endpoint. If not set, defaults to
https://comprehend.{region}.amazonaws.com.ssl_verify
If true, enable TLS certificate verification.
moderation_categories
Key-value pairs of moderation category and their corresponding threshold.
In each pair, the key should be one of the
PROFANITY,HATE_SPEECH,INSULT,HARASSMENT_OR_ABUSE,SEXUAL, orVIOLENCE_OR_THREAT; and the threshold value should be between 0 and 1 (inclusive).moderation_threshold
vaild vaule:
between 0 and 1 inclusive
Overall toxicity threshold. A higher value means more toxic content allowed.
This option differs from the individual category thresholds in
moderation_categories. For example, ifmoderation_categoriesis set with aPROFANITYthreshold of0.5, and a request has aPROFANITYscore of0.1, the request will not exceed the category threshold. However, if the request has other categories likeSEXUALorVIOLENCE_OR_THREATexceeding themoderation_threshold, the request will be rejected.check_request
If true, moderate request content.
Introduced in API7 Enterprise 3.9.16 and 3.10.3, and APISIX 3.18.0.
deny_code
vaild vaule:
between 200 and 599 inclusive
HTTP status code returned when flagged traffic is denied before response headers are sent. The default
200returns a provider-compatible refusal; set a4xxvalue to expose moderation as an HTTP error. After streaming starts, the status cannot be changed.Introduced in API7 Enterprise 3.9.16 and 3.10.3, and APISIX 3.18.0.
deny_message
Message returned when request or response content is denied. If unset, the plugin returns the threshold failure reason.
Introduced in API7 Enterprise 3.9.16 and 3.10.3, and APISIX 3.18.0.
fail_mode
vaild vaule:
skip,warn, orerrorBehavior when the plugin receives a request it cannot moderate, such as non-AI traffic on a Consumer binding or a request that did not pass through AI Proxy. With
skip, the request passes unchecked. Withwarn, it passes unchecked and a warning is logged. Witherror, the plugin rejects it with the applicable HTTP 400 or 500 response. None of these outcomes means moderation succeeded.Introduced in API7 Enterprise 3.9.14 and APISIX 3.18.0.
request_check_roles
vaild vaule:
user,assistant,system, ortoolMessage roles to moderate on the request side.
user,tool, andassistantfollowrequest_check_mode;systemis checked on every request because system content can be affected by malicious tool-call arguments.assistantmessages are client-supplied conversation history, so they are moderated by default as well.Selecting
systemalso coversdevelopermessages, which is the role OpenAI uses in place ofsystemon newer models and on the Responses API. There is no separatedeveloperentry.Tool-result moderation applies to OpenAI-compatible formats where tool output is represented as a distinct
toolrole or item.Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
request_check_mode
vaild vaule:
allorlastWhich messages of the selected roles are moderated. With
all, every message of a selected role is checked. Withlast, only the latest consecutive block of selected-role messages is checked. Thesystemrole is unaffected and is always checked when selected.Selecting
assistanttogether withlastwidens the block that is considered latest, because assistant turns no longer end it.Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
request_check_length_limit
vaild vaule:
between 4 and 1024 inclusive
Maximum number of bytes of request content per Amazon Comprehend text segment. Longer content is split across several segments so that it is moderated in full instead of being truncated.
Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
check_response
If true, moderate the content of the LLM response in addition to the request. A non-streaming response is moderated before it is returned and fails closed with HTTP 500 if Comprehend cannot score it. A streaming response is moderated according to
stream_check_mode; after bytes are sent, provider failures are logged and the remaining stream passes without a verdict.Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
response_check_length_limit
vaild vaule:
between 4 and 1024 inclusive
Maximum number of bytes of response content per Amazon Comprehend text segment. Longer content is split across several segments.
Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
stream_check_mode
vaild vaule:
final_packetorrealtimeHow a streaming response is moderated when
check_responseis enabled. Withfinal_packet, the assembled response is moderated once and the last chunk is annotated with its risk level. Withrealtime, batches are moderated while the response streams, and the remainder of the stream is replaced with the denial message as soon as a batch is flagged.Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
stream_check_cache_size
vaild vaule:
greater than or equal to 1
Maximum number of characters accumulated per moderation batch in
realtimemode. A smaller value detects harmful content earlier at the cost of more moderation calls.Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
stream_check_interval
vaild vaule:
greater than or equal to 0.1
Number of seconds between batch checks in
realtimemode.Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
timeout
vaild vaule:
greater than or equal to 1
Timeout in milliseconds for a request to Amazon Comprehend.
Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
keepalive
If true, keep the connection to Amazon Comprehend alive so that it is reused across the moderation calls of a request instead of being reopened for each of them.
Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.
keepalive_timeout
vaild vaule:
greater than or equal to 1000
Idle time in milliseconds after which a pooled connection to Amazon Comprehend is closed.
Introduced in API7 Enterprise 3.9.18 and 3.10.5, and APISIX 3.18.0.