`make_async` 函数接受一个同步函数(例如 LangChain agent),并返回一个异步函数,该异步函数将在单独的线程中运行原始函数。这对于运行长时间运行的同步任务而不会阻塞事件循环非常有用。

参数

func
可调用对象

将在单独线程中运行的同步函数。

返回值

async_function
协程
必需

将在单独线程中运行同步函数的异步函数。

用法

import time
import chainlit as cl

def sync_func():
    time.sleep(5)
    return "Hello!"

@cl.on_message
async def main(message: cl.Message):
    answer = await cl.make_async(sync_func)()
    await cl.Message(
        content=answer,
    ).send()
LangChain agent
import chainlit as cl

res = await cl.make_async(agent)(input_str, callbacks=[cl.LangchainCallbackHandler()])
await cl.Message(content=res["text"]).send()