Skip to content

Core Feedback Management

cortex_agents.core.feedback.AgentFeedback

AgentFeedback(transport: Any)

Submit feedback for synchronous Cortex Agent responses.

Source code in cortex_agents/core/feedback.py
def __init__(self, transport: Any) -> None:
    self._transport = transport

submit_feedback

submit_feedback(agent_name: str, database: str, schema: str, *, positive: bool, feedback_message: str | None = None, categories: list[str] | None = None, orig_request_id: str | None = None, thread_id: str | int | None = None) -> dict[str, Any]

Submit user feedback for a Cortex Agent response.

Parameters:

Name Type Description Default
agent_name str

Agent name.

required
database str

Database name.

required
schema str

Schema name.

required
positive bool

True for positive feedback, False for negative.

required
feedback_message str | None

Optional text feedback from user.

None
categories list[str] | None

Optional list of feedback categories.

None
orig_request_id str | None

Original request ID from the agent response.

None
thread_id str | int | None

Thread ID if feedback is for a threaded conversation.

None

Returns:

Type Description
dict[str, Any]

Response dictionary confirming feedback submission.

Raises:

Type Description
SnowflakeAPIError

If the request fails.

Examples:

client.submit_feedback(
    agent_name="MY_AGENT",
    database="DB",
    schema="SCHEMA",
    positive=True,
    feedback_message="Very helpful response!",
    orig_request_id=response.request_id
)
Source code in cortex_agents/core/feedback.py
def submit_feedback(
    self,
    agent_name: str,
    database: str,
    schema: str,
    *,
    positive: bool,
    feedback_message: str | None = None,
    categories: list[str] | None = None,
    orig_request_id: str | None = None,
    thread_id: str | int | None = None,
) -> dict[str, Any]:
    """Submit user feedback for a Cortex Agent response.

    Args:
        agent_name: Agent name.
        database: Database name.
        schema: Schema name.
        positive: True for positive feedback, False for negative.
        feedback_message: Optional text feedback from user.
        categories: Optional list of feedback categories.
        orig_request_id: Original request ID from the agent response.
        thread_id: Thread ID if feedback is for a threaded conversation.

    Returns:
        Response dictionary confirming feedback submission.

    Raises:
        SnowflakeAPIError: If the request fails.

    Examples:
        ```python
        client.submit_feedback(
            agent_name="MY_AGENT",
            database="DB",
            schema="SCHEMA",
            positive=True,
            feedback_message="Very helpful response!",
            orig_request_id=response.request_id
        )
        ```
    """
    payload: dict[str, Any] = {"positive": positive}
    if orig_request_id:
        payload["orig_request_id"] = orig_request_id
    if feedback_message:
        payload["feedback_message"] = feedback_message
    if categories:
        payload["categories"] = categories
    if thread_id is not None:
        payload["thread_id"] = thread_id

    endpoint = f"databases/{database}/schemas/{schema}/agents/{agent_name}:feedback"
    return self._transport.post(endpoint, payload)

cortex_agents.core.feedback.AsyncAgentFeedback

AsyncAgentFeedback(transport: Any)

Submit feedback for asynchronous Cortex Agent responses.

Source code in cortex_agents/core/feedback.py
def __init__(self, transport: Any) -> None:
    self._transport = transport

submit_feedback async

submit_feedback(agent_name: str, database: str, schema: str, *, positive: bool, feedback_message: str | None = None, categories: list[str] | None = None, orig_request_id: str | None = None, thread_id: str | int | None = None) -> dict[str, Any]

Submit user feedback for a Cortex Agent response (async).

Parameters:

Name Type Description Default
agent_name str

Agent name.

required
database str

Database name.

required
schema str

Schema name.

required
positive bool

True for positive feedback, False for negative.

required
feedback_message str | None

Optional text feedback from user.

None
categories list[str] | None

Optional list of feedback categories.

None
orig_request_id str | None

Original request ID from the agent response.

None
thread_id str | int | None

Thread ID if feedback is for a threaded conversation.

None

Returns:

Type Description
dict[str, Any]

Response dictionary confirming feedback submission.

Raises:

Type Description
SnowflakeAPIError

If the request fails.

Examples:

await client.submit_feedback(
    agent_name="MY_AGENT",
    database="DB",
    schema="SCHEMA",
    positive=True,
    feedback_message="Very helpful response!",
    orig_request_id=response.request_id
)
Source code in cortex_agents/core/feedback.py
async def submit_feedback(
    self,
    agent_name: str,
    database: str,
    schema: str,
    *,
    positive: bool,
    feedback_message: str | None = None,
    categories: list[str] | None = None,
    orig_request_id: str | None = None,
    thread_id: str | int | None = None,
) -> dict[str, Any]:
    """Submit user feedback for a Cortex Agent response (async).

    Args:
        agent_name: Agent name.
        database: Database name.
        schema: Schema name.
        positive: True for positive feedback, False for negative.
        feedback_message: Optional text feedback from user.
        categories: Optional list of feedback categories.
        orig_request_id: Original request ID from the agent response.
        thread_id: Thread ID if feedback is for a threaded conversation.

    Returns:
        Response dictionary confirming feedback submission.

    Raises:
        SnowflakeAPIError: If the request fails.

    Examples:
        ```python
        await client.submit_feedback(
            agent_name="MY_AGENT",
            database="DB",
            schema="SCHEMA",
            positive=True,
            feedback_message="Very helpful response!",
            orig_request_id=response.request_id
        )
        ```
    """
    payload: dict[str, Any] = {"positive": positive}
    if orig_request_id:
        payload["orig_request_id"] = orig_request_id
    if feedback_message:
        payload["feedback_message"] = feedback_message
    if categories:
        payload["categories"] = categories
    if thread_id is not None:
        payload["thread_id"] = thread_id

    endpoint = f"databases/{database}/schemas/{schema}/agents/{agent_name}:feedback"
    return await self._transport.post(endpoint, payload)