术语“多模态”指的是不仅支持文本,还包括图像、视频、音频和文件的能力。

语音助手

Chainlit 允许您访问用户的麦克风音频流并进行实时处理。这可用于创建语音助手、转录音频,甚至实时处理音频。

只有实现了 @cl.on_audio_chunk 装饰器,用户才能使用麦克风。

OpenAI 实时示例

即时文件上传

在 Chainlit 应用中,用户可以灵活地将任何文件附加到他们的消息中。这可以通过拖放功能或点击聊天栏中的 attach 按钮来实现。

将文件附加到消息

作为开发者,您可以通过 cl.on_message 装饰的函数访问这些附加的文件。

import chainlit as cl


@cl.on_message
async def on_message(msg: cl.Message):
    if not msg.elements:
        await cl.Message(content="No file attached").send()
        return

    # Processing images exclusively
    images = [file for file in msg.elements if "image" in file.mime]

    # Read the first image
    with open(images[0].path, "r") as f:
        pass

    await cl.Message(content=f"Received {len(images)} image(s)").send()

禁用即时文件上传

如果您希望禁用此功能(这将阻止用户将文件附加到其消息),可以在 Chainlit 配置文件中设置 features.spontaneous_file_upload.enabled=false