Ask for the user input before continuing. If the user does not answer in time (see timeout), a TimeoutError will be raised or None will be returned depending on raise_on_timeout. If a project ID is configured, the messages will be uploaded to the cloud storage.

Attributes

content
str
The content of the message.
author
str
default:"config.ui.name"
The author of the message, defaults to the chatbot name defined in your config.
timeout
int
default:60
The number of seconds to wait for an answer before raising a TimeoutError.
raise_on_timeout
bool
default:false
Whether to raise a socketio TimeoutError if the user does not answer in time.

Returns

response
StepDict | None
The response of the user.

Usage

import chainlit as cl


@cl.on_chat_start
async def main():
    res = await cl.AskUserMessage(content="What is your name?", timeout=10).send()
    if res:
        await cl.Message(
            content=f"Your name is: {res['output']}",
        ).send()