> This page is for Server SDKs.

> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# to_dict

> Return the semantic gate as the dictionary sent in the function definition.

[swml-gates]: /docs/swml/reference/calling/ai/swaig/functions/gates

Return the gate as the dictionary sent in the function's `gates` list, in the
shape of the SWML [gate object][swml-gates]. Keys that weren't set (`id`,
`criteria`, `visual_input`) are left out.

## Returns

`dict[str, Any]` -- The gate: `id` (when set), `question`, `criteria` (when
`true_means` or `false_means` is set), `threshold`, `on_fail`, and `visual_input`
(when set).

## Examples

```python {9}
from signalwire import SemanticGate

gate = SemanticGate(
    "Has the caller explicitly asked to cancel their account in `conversation`?",
    threshold=0.95,
    on_fail="cancel_account was not run. Ask the caller to confirm that they want to cancel.",
    id="explicit_request",
)
print(gate.to_dict())
# {'id': 'explicit_request',
#  'question': 'Has the caller explicitly asked to cancel their account in `conversation`?',
#  'threshold': 0.95,
#  'on_fail': {'response': 'cancel_account was not run. Ask the caller to confirm that they want to cancel.'}}
```