Client SDK · State and data

Feedback.

Report harmful content, rate responses, and file bug reports.

feedback.report(...)

Reports a message for harmful, inaccurate, off-topic, or privacy-violating content.

Python
await client.feedback.report(
    message_id="msg-456",
    conversation_id="conv-123",
    reason="inaccurate",
    comment="The capital of Australia is Canberra, not Sydney.",
)

Parameters

Fieldtypedescription
message_idstrThe message being reported.
conversation_idstrThe conversation containing the message.
reason'harmful' | 'inaccurate' | 'off_topic' | 'privacy' | 'other'Report reason.
commentstr | NoneOptional additional context.

Returns a dict (e.g. {"reportId": ..., "acknowledgedAt": ...}).

feedback.response(...)

Submits general response feedback (positive/negative sentiment with platform context).

Python
await client.feedback.response(
    message_id="msg-456",
    conversation_id="conv-123",
    comment="Great answer!",
    platform="web",
    app_version="1.0.0",
)

Parameters

Fieldtypedescription
message_idstrThe message being rated.
conversation_idstrThe conversation containing the message.
commentstr | NoneOptional feedback text.
platform'web' | 'ios' | 'android' | 'unknown' | NoneClient platform.
app_versionstr | NoneApp version string.
build_numberstr | NoneBuild number.

Returns a dict (e.g. {"feedbackId": ..., "acknowledgedAt": ...}).

feedback.report_bug(...)

Files a bug report from your application. Reports land as GitHub issues in the internal feedback repository — titled [SDK] <title> and labelled sdk-feedback — so engineering can triage them directly.

The SDK automatically stamps the report with its package name (matilda-client), package version, and the Python runtime version, so you usually only need title and description. Pass the optional fields to override or supply anything else.

Python
await client.feedback.report_bug(
    title="stream() silently closes on 429",
    description="The stream closes without error when the API returns 429.",
    reproduction="Call chat.stream() in a loop until rate-limited; observe the close event.",
)

Parameters

Fieldtypedescription
titlestrOne-line summary of the bug (required, max 200 chars).
descriptionstrWhat went wrong (required, max 4000 chars).
reproductionstr | NoneOptional steps to reproduce (max 4000 chars).
packagestr | NoneReporting package name — defaults to this SDK's package name.
package_versionstr | NoneReporting package version — defaults to this SDK's version.
platform'web' | 'ios' | 'android' | 'unknown' | NoneClient platform.
app_versionstr | NoneYour application's version string.
idempotency_keystr | NoneOptional key (max 128 chars) so retries don't create duplicate issues.

Returns a dict (e.g. {"feedbackId": ..., "acknowledgedAt": ...}).