Chainlit 可以作为 FastAPI 的子应用挂载。

my_cl_app
import chainlit as cl

@cl.on_chat_start
async def main():
    await cl.Message(content="Hello World").send()
main
from fastapi import FastAPI
from chainlit.utils import mount_chainlit

app = FastAPI()


@app.get("/app")
def read_main():
    return {"message": "Hello World from main app"}

mount_chainlit(app=app, target="my_cl_app.py", path="/chainlit")

在上面的示例中,我们有一个带有单个端点 /app 的 FastAPI 应用。我们将 Chainlit 应用 my_cl_app.py 挂载到 /chainlit 路径。

启动 FastAPI 服务器

uvicorn main:app --host 0.0.0.0 --port 80

在使用 FastAPI 集成时,请求头身份验证是认证用户的首选方法。这种方法允许 Chainlit 将身份验证过程委托给父级 FastAPI 应用,从而提供更无缝、更安全的集成。