In this tutorial, we’ll walk through the steps to create a Chainlit application integrated with Embedchain.

Preview of what you'll be building

Step 1: Create a Chainlit Application

In, import the necessary packages and define one function to handle a new chat session and another function to handle messages incoming from the UI.

With Embedchain
import chainlit as cl
from embedchain import Pipeline as App

import os

os.environ["OPENAI_API_KEY"] = "sk-xxx"

async def on_chat_start():
    app = App.from_config(config={
        'app': {
            'config': {
                'name': 'chainlit-app'
        'llm': {
            'config': {
                'stream': True,
    # import your data here
    app.collect_metrics = False
    cl.user_session.set("app", app)

async def on_message(message: cl.Message):
    app = cl.user_session.get("app")
    msg = cl.Message(content="")
    for chunk in await cl.make_async(
        await msg.stream_token(chunk)
    await msg.send()

Step 2: Run the Application

To start your app, open a terminal and navigate to the directory containing Then run the following command:

chainlit run -w

Next Steps

Congratulations! You’ve just created your first LLM app with Chainlit and Embedchain.

Happy coding! 🎉