我正在使用最新版本的Chainlit。下面的 Python 代码正确打印了最初默认选择的选项。单击设置时,它还会显示给定列表中的所有可用选项。但如果我更改选项,它就永远不会运行
on_option_change
当用户更改设置中的选项时,我该如何处理?
# To run:
# chainlit run chainlit_trials.py --port 9503
#
import chainlit as cl
from chainlit.input_widget import Select
@cl.on_chat_start
async def initialize():
print(f"Started. Carrying initializations.")
settings = await cl.ChatSettings(
[
Select(
id="Options",
label="Available Options",
values=["option1", "option2", "option3"],
initial_index=0,
on_change= on_option_change
)
]
).send()
option = settings["Options"]
print(f"Option chosen: {option}")
# This function will be called whenever the user changes the database selection
async def on_option_change(value):
print(f"Selected option: {value}")
我找到了答案。这是我们需要定义的
@cl.on_settings_update
。这是完整的工作代码:
# To run:
# chainlit run chainlit_trials.py --port 9503
#
import chainlit as cl
from chainlit.input_widget import Select
@cl.on_chat_start
async def some_name_doesnt_matter_what_it_is():
print(f"Started. Carrying initialisations.")
settings = await cl.ChatSettings(
[
Select(
id="Options",
label="Available Options",
values=["option1", "option2", "option3"],
initial_index=0,
)
]
).send()
option = settings["Options"]
print(f"Option chosen: {option}")
# This receives updates in settings
@cl.on_settings_update
async def some_name_doesnt_matter_what_it_is(settings):
print("Settings updated ", settings)
print(f"Option selected: {settings["Options"]}")