199 lines
7.9 KiB
Plaintext
199 lines
7.9 KiB
Plaintext
Metadata-Version: 2.4
|
||
Name: chainlit
|
||
Version: 2.9.4
|
||
Summary: Build Conversational AI.
|
||
Project-URL: Homepage, https://chainlit.io/
|
||
Project-URL: Documentation, https://docs.chainlit.io/
|
||
Project-URL: Repository, https://github.com/Chainlit/chainlit
|
||
Author: Willy Douhard, Dan Andre Constantini
|
||
License: Apache-2.0
|
||
Keywords: Agents,LLM,MCP,chat ui,chatbot ui,conversational ai,copilot,gen ai,langchain,openai
|
||
Classifier: Environment :: Web Environment
|
||
Classifier: Framework :: FastAPI
|
||
Classifier: Programming Language :: JavaScript
|
||
Classifier: Topic :: Communications :: Chat
|
||
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||
Classifier: Topic :: Software Development :: User Interfaces
|
||
Requires-Python: <4.0.0,>=3.10
|
||
Requires-Dist: aiofiles<25.0.0,>=23.1.0
|
||
Requires-Dist: asyncer<0.1.0,>=0.0.8
|
||
Requires-Dist: audioop-lts<0.3.0,>=0.2.1; python_version >= '3.13'
|
||
Requires-Dist: click<9.0.0,>=8.1.3
|
||
Requires-Dist: dataclasses-json<0.7.0,>=0.6.7
|
||
Requires-Dist: fastapi>=0.116.1
|
||
Requires-Dist: filetype<2.0.0,>=1.2.0
|
||
Requires-Dist: httpx>=0.23.0
|
||
Requires-Dist: lazify<0.5.0,>=0.4.0
|
||
Requires-Dist: literalai==0.1.201
|
||
Requires-Dist: mcp<2.0.0,>=1.11.0
|
||
Requires-Dist: nest-asyncio<2.0.0,>=1.6.0
|
||
Requires-Dist: packaging>=23.1
|
||
Requires-Dist: pydantic-settings>=2.10.1
|
||
Requires-Dist: pydantic<3,>=2.7.2
|
||
Requires-Dist: pyjwt<3.0.0,>=2.8.0
|
||
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
||
Requires-Dist: python-multipart<1.0.0,>=0.0.18
|
||
Requires-Dist: python-socketio<6.0.0,>=5.11.0
|
||
Requires-Dist: starlette>=0.47.2
|
||
Requires-Dist: syncer<3.0.0,>=2.0.3
|
||
Requires-Dist: tomli<3.0.0,>=2.0.1
|
||
Requires-Dist: uvicorn>=0.35.0
|
||
Requires-Dist: watchfiles<2.0.0,>=1.1.1
|
||
Provides-Extra: custom-data
|
||
Requires-Dist: asyncpg<1.0.0,>=0.30.0; extra == 'custom-data'
|
||
Requires-Dist: azure-identity<2.0.0,>=1.14.1; extra == 'custom-data'
|
||
Requires-Dist: azure-storage-blob<13.0.0,>=12.24.0; extra == 'custom-data'
|
||
Requires-Dist: azure-storage-file-datalake<13.0.0,>=12.14.0; extra == 'custom-data'
|
||
Requires-Dist: boto3<2.0.0,>=1.34.73; extra == 'custom-data'
|
||
Requires-Dist: google-cloud-storage<3.0.0,>=2.19.0; extra == 'custom-data'
|
||
Requires-Dist: sqlalchemy<3.0.0,>=2.0.28; extra == 'custom-data'
|
||
Provides-Extra: dev
|
||
Requires-Dist: ruff<1.0.0,>=0.9.0; extra == 'dev'
|
||
Provides-Extra: mypy
|
||
Requires-Dist: mypy-boto3-dynamodb<2.0.0,>=1.34.113; extra == 'mypy'
|
||
Requires-Dist: mypy<2.0.0,>=1.13; extra == 'mypy'
|
||
Requires-Dist: pandas-stubs<3.0.0,>=2.2.2; (python_version >= '3.9') and extra == 'mypy'
|
||
Requires-Dist: types-aiofiles<24.0.0,>=23.1.0.5; extra == 'mypy'
|
||
Requires-Dist: types-requests<3.0.0,>=2.31.0.2; extra == 'mypy'
|
||
Provides-Extra: tests
|
||
Requires-Dist: aiosqlite<1.0.0,>=0.20.0; extra == 'tests'
|
||
Requires-Dist: botbuilder-core<5.0.0,>=4.15.0; extra == 'tests'
|
||
Requires-Dist: discord<3.0.0,>=2.3.2; extra == 'tests'
|
||
Requires-Dist: langchain<0.3.0,>=0.2.4; extra == 'tests'
|
||
Requires-Dist: llama-index<1.0.0,>=0.13.0; extra == 'tests'
|
||
Requires-Dist: matplotlib<4.0.0,>=3.7.1; extra == 'tests'
|
||
Requires-Dist: moto<6.0.0,>=5.0.14; extra == 'tests'
|
||
Requires-Dist: openai<2.0.0,>=1.11.1; extra == 'tests'
|
||
Requires-Dist: pandas<3.0.0,>=2.2.2; extra == 'tests'
|
||
Requires-Dist: plotly<6.0.0,>=5.18.0; extra == 'tests'
|
||
Requires-Dist: pytest-asyncio<1.0.0,>=0.23.8; extra == 'tests'
|
||
Requires-Dist: pytest-cov<6.0.0,>=5.0.0; extra == 'tests'
|
||
Requires-Dist: pytest<9.0.0,>=8.3.2; extra == 'tests'
|
||
Requires-Dist: semantic-kernel<2.0.0,>=1.24.0; extra == 'tests'
|
||
Requires-Dist: slack-bolt<2.0.0,>=1.18.1; extra == 'tests'
|
||
Requires-Dist: tenacity<9.0.0,>=8.4.1; extra == 'tests'
|
||
Requires-Dist: transformers<5.0,>=4.38; extra == 'tests'
|
||
Description-Content-Type: text/markdown
|
||
|
||
<h1 align="center">Welcome to Chainlit 👋</h1>
|
||
|
||
<p align="center">
|
||
<b>Build python production-ready conversational AI applications in minutes, not weeks ⚡️</b>
|
||
|
||
</p>
|
||
<p align="center">
|
||
<a href="https://discord.gg/k73SQ3FyUh" target="_blank">
|
||
<img src="https://img.shields.io/discord/1088038867602526210?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb"
|
||
alt="chat on Discord"></a>
|
||
<a href="https://twitter.com/chainlit_io" rel="nofollow"><img alt="Twitter" src="https://img.shields.io/twitter/url/https/twitter.com/chainlit_io.svg?style=social&label=Follow%20%40chainlit_io" style="max-width:100%;"></a>
|
||
<a href="https://pypistats.org/packages/chainlit" rel="nofollow"><img alt="Downloads" src="https://img.shields.io/pypi/dm/chainlit" style="max-width:100%;"></a>
|
||
<a href="https://github.com/chainlit/chainlit/graphs/contributors" rel="nofollow"><img alt="Contributors" src="https://img.shields.io/github/contributors/chainlit/chainlit" style="max-width:100%;"></a>
|
||
<a href="https://github.com/Chainlit/chainlit/actions/workflows/ci.yaml" rel="nofollow"><img alt="CI" src="https://github.com/Chainlit/chainlit/actions/workflows/ci.yaml/badge.svg" style="max-width:100%;"></a>
|
||
</p>
|
||
|
||
> ⚠️ **Notice:** Chainlit is now community-maintained.
|
||
>
|
||
> As of May 1st 2025, the original Chainlit team has stepped back from active development. The project is maintained by @Chainlit/chainlit-maintainers under a formal Maintainer Agreement.
|
||
>
|
||
> Maintainers are responsible for code review, releases, and security.
|
||
> Chainlit SAS provides no warranties on future updates.
|
||
>
|
||
> Want to help maintain? [Apply here →](https://docs.google.com/forms/d/e/1FAIpQLSf6CllNWnKBnDIoj0m-DnHU6b0dj8HYFGixKy-_qNi_rD4iNA/viewform)
|
||
|
||
<p align="center">
|
||
<a href="https://chainlit.io"><b>Website</b></a> •
|
||
<a href="https://docs.chainlit.io"><b>Documentation</b></a> •
|
||
<a href="https://help.chainlit.io"><b>Chainlit Help</b></a> •
|
||
<a href="https://github.com/Chainlit/cookbook"><b>Cookbook</b></a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://trendshift.io/repositories/6708" target="_blank"><img src="https://trendshift.io/api/badge/repositories/6708" alt="Chainlit%2Fchainlit | Trendshift" style="width: 250px; height: 45px;" width="250" height="45"/></a>
|
||
</p>
|
||
|
||
https://github.com/user-attachments/assets/b3738aba-55c0-42fa-ac00-6efd1ee0d148
|
||
|
||
|
||
## Installation
|
||
|
||
Open a terminal and run:
|
||
|
||
```sh
|
||
pip install chainlit
|
||
chainlit hello
|
||
```
|
||
|
||
If this opens the `hello app` in your browser, you're all set!
|
||
|
||
### Development version
|
||
|
||
The latest in-development version can be installed straight from GitHub with:
|
||
|
||
```sh
|
||
pip install git+https://github.com/Chainlit/chainlit.git#subdirectory=backend/
|
||
```
|
||
|
||
(Requires Node and pnpm installed on the system.)
|
||
|
||
## 🚀 Quickstart
|
||
|
||
### 🐍 Pure Python
|
||
|
||
Create a new file `demo.py` with the following code:
|
||
|
||
```python
|
||
import chainlit as cl
|
||
|
||
|
||
@cl.step(type="tool")
|
||
async def tool():
|
||
# Fake tool
|
||
await cl.sleep(2)
|
||
return "Response from the tool!"
|
||
|
||
|
||
@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 the tool, followed by the final answer.
|
||
|
||
Args:
|
||
message: The user's message.
|
||
|
||
Returns:
|
||
None.
|
||
"""
|
||
|
||
|
||
# Call the tool
|
||
tool_res = await tool()
|
||
|
||
await cl.Message(content=tool_res).send()
|
||
```
|
||
|
||
Now run it!
|
||
|
||
```sh
|
||
chainlit run demo.py -w
|
||
```
|
||
|
||
<img src="/images/quick-start.png" alt="Quick Start"></img>
|
||
|
||
## 📚 More Examples - Cookbook
|
||
|
||
You can find various examples of Chainlit apps [here](https://github.com/Chainlit/cookbook) that leverage tools and services such as OpenAI, Anthropiс, LangChain, LlamaIndex, ChromaDB, Pinecone and more.
|
||
|
||
Tell us what you would like to see added in Chainlit using the Github issues or on [Discord](https://discord.gg/k73SQ3FyUh).
|
||
|
||
## 💁 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](/CONTRIBUTING.md).
|
||
|
||
## 📃 License
|
||
|
||
Chainlit is open-source and licensed under the [Apache 2.0](LICENSE) license.
|