text: capture the stream even if the prompt call is hidden inside higher level method# only the prompts marked with capture_stream will be captured herewith StreamingContext(stream_to_stdout=True, callback=capture_stream_func):    result = await run_prompt()    print("Stream finished ... we can distinguish tokens thanks to alternating colors")print("\nWe've captured",len(tokens),"tokensğŸ�‰\n")print("Here is the result:")print(result)Prompt declarationsBy default the prompt is is the whole function docs, unless you mark your prompt Documenting your promptâ€‹We can specify what part of our docs is the prompt definition, by specifying a code block with <prompt> language tag@llm_promptdef write_me_short_post(topic:str, platform:str="twitter", audience:str = "developers"):    """    Here is a good way to write a prompt as part of a function docstring, with additional documentation for devs.    It needs to be a code block, marked as a `<prompt>` language    ```<prompt>    Write me a short header for my post about {topic} for {platform} platform.     It should be for {audience} audience.    (Max 15 words)    ```    Now only to code block above will be used as a prompt, and the rest of the docstring will be used as a description for developers.    (It has also a nice benefit that IDE (like VS code) will display the prompt properly (not trying to parse it as markdown, and thus not showing new lines properly))    """    return Chat messages promptâ€‹For chat models is very useful to define prompt as a set of message templates... here is how to do it:@llm_promptdef simulate_conversation(human_input:str, agent_role:str="a pirate"):