A faster way to build chatbot UIs.
Project description
Welcome to Chainlit 👋
Build a production ready Chat GPT like application in minutes ⚡️
Chainlit is an open-source async Python framework that makes it incredibly fast to build Chat GPT like applications with your own business logic and data.
Key features:
- 💬 Multi Modal chats
- 💭 Chain of Thought visualisation
- 💾 Data persistence + human feedback
- 🛝 In context Prompt Playground
- 👤 Authentication
https://github.com/Chainlit/chainlit/assets/13104895/e347e52c-35b2-4c35-8a88-f8ac02dd198e
Installation
Open a terminal and run:
$ pip install chainlit
$ chainlit hello
If this opens the hello app
in your browser, you're all set!
📖 Documentation
Please see here for full documentation on:
- Getting started (installation, simple examples)
- Examples
- Reference (full API docs)
🚀 Quickstart
🐍 Pure Python
Create a new file demo.py
with the following code:
import chainlit as cl
@cl.on_message # this function will be called every time a user inputs a message in the UI
async def main(message: cl.Message):
"""
This function is called every time a user inputs a message in the UI.
It sends back an intermediate response from Tool 1, followed by the final answer.
Args:
message: The user's message.
Returns:
None.
"""
# Send an intermediate response from Tool 1.
await cl.Message(
author="Tool 1",
content=f"Response from tool1",
parent_id=message.id,
).send()
# Send the final answer.
await cl.Message(content=f"This is the final answer").send()
Now run it!
$ chainlit run demo.py -w
🔗 Integrations
Chainlit is compatible with all Python programs and libraries. That being said, it comes with pre-built integrations for Langchain, Llama Index, Haystack and Langflow.
📚 More Examples - Cookbook
You can find various examples of Chainlit apps here that leverage tools and services such as OpenAI, Anthropiс, LangChain, LlamaIndex, ChromaDB, Pinecone and more.
🛣 Roadmap
- Selectable chat profiles (at the beginning of a chat)
- One click chat sharing
- New clients:
- Slack
- Discord
- Website embbed
Tell us what you would like to see added in Chainlit using the Github issues or on Discord.
🏢 Enterprise support
For entreprise grade features and self hosting, please visit this page and fill the form.
💁 Contributing
As an open-source initiative in a rapidly evolving domain, we welcome contributions, be it through the addition of new features or the improvement of documentation.
For detailed information on how to contribute, see here.
📃 License
Chainlit is open-source and licensed under the Apache 2.0 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.