[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Chainlit--chainlit":3,"tool-Chainlit--chainlit":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",155373,2,"2026-04-14T11:34:08",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":64,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":105,"forks":106,"last_commit_at":107,"license":108,"difficulty_score":109,"env_os":110,"env_gpu":110,"env_ram":110,"env_deps":111,"category_tags":114,"github_topics":115,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":123,"updated_at":124,"faqs":125,"releases":156},7578,"Chainlit\u002Fchainlit","chainlit","Build Conversational AI in minutes ⚡️","Chainlit 是一个专为 Python 开发者设计的开源框架，旨在帮助你在几分钟内构建出生产级的对话式 AI 应用。它主要解决了传统开发中前端界面搭建繁琐、交互逻辑复杂的问题，让开发者无需精通前端技术或耗费数周时间，即可快速将大语言模型（LLM）能力转化为可交互的 Web 应用。\n\n无论是需要快速验证想法的 AI 研究人员，还是希望集成 LangChain、LlamaIndex、OpenAI 等主流库的软件工程师，Chainlit 都能提供极大的便利。其核心亮点在于“纯 Python\"开发体验：你只需编写标准的 Python 异步函数，利用简单的装饰器（如 `@cl.on_message`）即可定义用户消息处理逻辑、工具调用步骤及中间响应。Chainlit 会自动生成美观且功能丰富的前端界面，支持流式输出、多轮对话上下文管理、文件上传及自定义 UI 元素等高级特性。\n\n值得一提的是，Chainlit 目前已由社区驱动维护，拥有活跃的生态系统和丰富的示例库（Cookbook），便于用户参考和学习。如果你希望通过最少的代码量，高效地演示或部署你的 AI 智能体、聊天机器人或数据分析助手","Chainlit 是一个专为 Python 开发者设计的开源框架，旨在帮助你在几分钟内构建出生产级的对话式 AI 应用。它主要解决了传统开发中前端界面搭建繁琐、交互逻辑复杂的问题，让开发者无需精通前端技术或耗费数周时间，即可快速将大语言模型（LLM）能力转化为可交互的 Web 应用。\n\n无论是需要快速验证想法的 AI 研究人员，还是希望集成 LangChain、LlamaIndex、OpenAI 等主流库的软件工程师，Chainlit 都能提供极大的便利。其核心亮点在于“纯 Python\"开发体验：你只需编写标准的 Python 异步函数，利用简单的装饰器（如 `@cl.on_message`）即可定义用户消息处理逻辑、工具调用步骤及中间响应。Chainlit 会自动生成美观且功能丰富的前端界面，支持流式输出、多轮对话上下文管理、文件上传及自定义 UI 元素等高级特性。\n\n值得一提的是，Chainlit 目前已由社区驱动维护，拥有活跃的生态系统和丰富的示例库（Cookbook），便于用户参考和学习。如果你希望通过最少的代码量，高效地演示或部署你的 AI 智能体、聊天机器人或数据分析助手，Chainlit 是一个非常值得尝试的轻量级解决方案。","\u003Ch1 align=\"center\">Welcome to Chainlit 👋\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n\u003Cb>Build python production-ready conversational AI applications in minutes, not weeks ⚡️\u003C\u002Fb>\n\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n   \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fk73SQ3FyUh\" target=\"_blank\">\n   \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1088038867602526210?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb\"\n      alt=\"chat on Discord\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fchainlit_io\" rel=\"nofollow\">\u003Cimg alt=\"Twitter\" src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Fchainlit_io.svg?style=social&label=Follow%20%40chainlit_io\" style=\"max-width:100%;\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fchainlit\" rel=\"nofollow\">\u003Cimg alt=\"Downloads\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fchainlit\" style=\"max-width:100%;\">\u003C\u002Fa>\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchainlit\u002Fchainlit\u002Fgraphs\u002Fcontributors\" rel=\"nofollow\">\u003Cimg alt=\"Contributors\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fchainlit\u002Fchainlit\" style=\"max-width:100%;\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Factions\u002Fworkflows\u002Fci.yaml\" rel=\"nofollow\">\u003Cimg alt=\"CI\" src=\"https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Factions\u002Fworkflows\u002Fci.yaml\u002Fbadge.svg\" style=\"max-width:100%;\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n> ⚠️ **Notice:** Chainlit is now community-maintained.\n>\n> As of May 1st 2025, the original Chainlit team has stepped back from active development. The project is maintained by @Chainlit\u002Fchainlit-maintainers under a formal Maintainer Agreement.\n>\n> Maintainers are responsible for code review, releases, and security.  \n> Chainlit SAS provides no warranties on future updates.\n>\n> Want to help maintain? [Apply here →](https:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F1FAIpQLSf6CllNWnKBnDIoj0m-DnHU6b0dj8HYFGixKy-_qNi_rD4iNA\u002Fviewform)\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fchainlit.io\">\u003Cb>Website\u003C\u002Fb>\u003C\u002Fa>  •  \n    \u003Ca href=\"https:\u002F\u002Fdocs.chainlit.io\">\u003Cb>Documentation\u003C\u002Fb>\u003C\u002Fa>  •  \n    \u003Ca href=\"https:\u002F\u002Fhelp.chainlit.io\">\u003Cb>Chainlit Help\u003C\u002Fb>\u003C\u002Fa>  •  \n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChainlit\u002Fcookbook\">\u003Cb>Cookbook\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F6708\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FChainlit_chainlit_readme_4cc089988f35.png\" alt=\"Chainlit%2Fchainlit | Trendshift\" style=\"width: 250px; height: 45px;\" width=\"250\" height=\"45\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb3738aba-55c0-42fa-ac00-6efd1ee0d148\n\n## Installation\n\nOpen a terminal and run:\n\n```sh\npip install chainlit\nchainlit hello\n```\n\nIf this opens the `hello app` in your browser, you're all set!\n\n### Development version\n\nThe latest in-development version can be installed straight from GitHub with:\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit.git#subdirectory=backend\u002F\n```\n\n(Requires Node and pnpm installed on the system.)\n\n## 🚀 Quickstart\n\n### 🐍 Pure Python\n\nCreate a new file `demo.py` with the following code:\n\n```python\nimport chainlit as cl\n\n\n@cl.step(type=\"tool\")\nasync def tool():\n    # Fake tool\n    await cl.sleep(2)\n    return \"Response from the tool!\"\n\n\n@cl.on_message  # this function will be called every time a user inputs a message in the UI\nasync def main(message: cl.Message):\n    \"\"\"\n    This function is called every time a user inputs a message in the UI.\n    It sends back an intermediate response from the tool, followed by the final answer.\n\n    Args:\n        message: The user's message.\n\n    Returns:\n        None.\n    \"\"\"\n\n\n    # Call the tool\n    tool_res = await tool()\n\n    await cl.Message(content=tool_res).send()\n```\n\nNow run it!\n\n```sh\nchainlit run demo.py -w\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FChainlit_chainlit_readme_2331919efe40.png\" alt=\"Quick Start\">\u003C\u002Fimg>\n\n## 📚 More Examples - Cookbook\n\nYou can find various examples of Chainlit apps [here](https:\u002F\u002Fgithub.com\u002FChainlit\u002Fcookbook) that leverage tools and services such as OpenAI, Anthropiс, LangChain, LlamaIndex, ChromaDB, Pinecone and more.\n\nTell us what you would like to see added in Chainlit using the Github issues or on [Discord](https:\u002F\u002Fdiscord.gg\u002Fk73SQ3FyUh).\n\n## 💁 Contributing\n\nAs 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.\n\nFor detailed information on how to contribute, see [here](\u002FCONTRIBUTING.md).\n\n## 📃 License\n\nChainlit is open-source and licensed under the [Apache 2.0](LICENSE) license.\n","\u003Ch1 align=\"center\">欢迎来到 Chainlit 👋\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n\u003Cb>在几分钟内构建生产级的 Python 对话式 AI 应用，而不是几周 ⚡️\u003C\u002Fb>\n\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n   \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fk73SQ3FyUh\" target=\"_blank\">\n   \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1088038867602526210?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb\"\n      alt=\"在 Discord 上聊天\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fchainlit_io\" rel=\"nofollow\">\u003Cimg alt=\"Twitter\" src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Fchainlit_io.svg?style=social&label=关注%20@chainlit_io\" style=\"max-width:100%;\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fchainlit\" rel=\"nofollow\">\u003Cimg alt=\"下载量\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fchainlit\" style=\"max-width:100%;\">\u003C\u002Fa>\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchainlit\u002Fchainlit\u002Fgraphs\u002Fcontributors\" rel=\"nofollow\">\u003Cimg alt=\"贡献者\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fchainlit\u002Fchainlit\" style=\"max-width:100%;\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Factions\u002Fworkflows\u002Fci.yaml\" rel=\"nofollow\">\u003Cimg alt=\"CI\" src=\"https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Factions\u002Fworkflows\u002Fci.yaml\u002Fbadge.svg\" style=\"max-width:100%;\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n> ⚠️ **注意：** Chainlit 现已由社区维护。\n>\n> 自 2025 年 5 月 1 日起，原 Chainlit 团队已退出项目的积极开发。该项目现由 @Chainlit\u002Fchainlit-maintainers 在正式的维护者协议下维护。\n>\n> 维护者负责代码审查、发布和安全性。  \n> Chainlit SAS 不对未来的更新提供任何保证。\n>\n> 想要参与维护吗？[请在此申请 →](https:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F1FAIpQLSf6CllNWnKBnDIoj0m-DnHU6b0dj8HYFGixKy-_qNi_rD4iNA\u002Fviewform)\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fchainlit.io\">\u003Cb>官网\u003C\u002Fb>\u003C\u002Fa>  •  \n    \u003Ca href=\"https:\u002F\u002Fdocs.chainlit.io\">\u003Cb>文档\u003C\u002Fb>\u003C\u002Fa>  •  \n    \u003Ca href=\"https:\u002F\u002Fhelp.chainlit.io\">\u003Cb>Chainlit 帮助\u003C\u002Fb>\u003C\u002Fa>  •  \n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChainlit\u002Fcookbook\">\u003Cb>示例集\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F6708\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FChainlit_chainlit_readme_4cc089988f35.png\" alt=\"Chainlit%2Fchainlit | Trendshift\" style=\"width: 250px; height: 45px;\" width=\"250\" height=\"45\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb3738aba-55c0-42fa-ac00-6efd1ee0d148\n\n## 安装\n\n打开终端并运行：\n\n```sh\npip install chainlit\nchainlit hello\n```\n\n如果这会在你的浏览器中打开 `hello app`，那么你就准备好了！\n\n### 开发版本\n\n最新的开发版本可以直接从 GitHub 安装：\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit.git#subdirectory=backend\u002F\n```\n\n（需要系统上已安装 Node 和 pnpm。）\n\n## 🚀 快速入门\n\n### 🐍 纯 Python\n\n创建一个名为 `demo.py` 的新文件，并输入以下代码：\n\n```python\nimport chainlit as cl\n\n\n@cl.step(type=\"tool\")\nasync def tool():\n    # 虚拟工具\n    await cl.sleep(2)\n    return \"来自工具的响应！\"\n\n\n@cl.on_message  # 此函数将在用户每次在 UI 中输入消息时被调用\nasync def main(message: cl.Message):\n    \"\"\"\n    当用户在 UI 中输入消息时，此函数会被调用。它会先发送来自工具的中间响应，随后再发送最终答案。\n\n    参数：\n        message: 用户的消息。\n\n    返回值：\n        无。\n    \"\"\"\n\n\n    # 调用工具\n    tool_res = await tool()\n\n    await cl.Message(content=tool_res).send()\n```\n\n现在运行它！\n\n```sh\nchainlit run demo.py -w\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FChainlit_chainlit_readme_2331919efe40.png\" alt=\"快速入门\">\u003C\u002Fimg>\n\n## 📚 更多示例 - 示例集\n\n你可以在 [这里](https:\u002F\u002Fgithub.com\u002FChainlit\u002Fcookbook) 找到各种利用 OpenAI、Anthropic、LangChain、LlamaIndex、ChromaDB、Pinecone 等工具和服务的 Chainlit 应用示例。\n\n请通过 GitHub 问题或 [Discord](https:\u002F\u002Fdiscord.gg\u002Fk73SQ3FyUh) 告诉我们你希望在 Chainlit 中看到哪些新增功能。\n\n## 💁 参与贡献\n\n作为一项快速发展的开源项目，我们欢迎任何形式的贡献，无论是添加新功能还是改进文档。\n\n有关如何参与贡献的详细信息，请参阅 [此处](\u002FCONTRIBUTING.md)。\n\n## 📃 许可证\n\nChainlit 是开源软件，采用 [Apache 2.0](LICENSE) 许可证授权。","# Chainlit 快速上手指南\n\nChainlit 是一个用于快速构建生产级对话式 AI 应用的 Python 框架。只需几分钟，即可将你的 LLM 逻辑转化为功能完备的 Web 界面。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**：Windows, macOS 或 Linux\n*   **Python 版本**：Python 3.9 或更高版本\n*   **包管理器**：pip\n*   **可选（仅开发版需要）**：Node.js 和 pnpm\n\n> **注意**：自 2025 年 5 月 1 日起，Chainlit 转为社区维护模式。项目由社区维护者团队负责代码审查、发布及安全更新。\n\n## 安装步骤\n\n### 1. 安装稳定版\n打开终端，运行以下命令安装最新稳定版本：\n\n```sh\npip install chainlit\n```\n\n> **国内加速建议**：如果下载速度较慢，推荐使用国内镜像源安装：\n> ```sh\n> pip install chainlit -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 2. 验证安装\n运行官方提供的 Hello World 示例，确认安装成功并自动在浏览器中打开应用：\n\n```sh\nchainlit hello\n```\n\n如果浏览器成功弹出欢迎界面，说明环境已配置完毕。\n\n### （可选）安装开发版\n如需体验最新在研功能，可直接从 GitHub 安装（需预先安装 Node 和 pnpm）：\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit.git#subdirectory=backend\u002F\n```\n\n## 基本使用\n\n### 1. 创建应用文件\n新建一个名为 `demo.py` 的文件，并填入以下代码。这是一个最基础的示例，展示了如何定义消息处理函数和工具步骤：\n\n```python\nimport chainlit as cl\n\n\n@cl.step(type=\"tool\")\nasync def tool():\n    # 模拟一个耗时工具调用\n    await cl.sleep(2)\n    return \"Response from the tool!\"\n\n\n@cl.on_message  # 当用户在 UI 中输入消息时，此函数将被调用\nasync def main(message: cl.Message):\n    \"\"\"\n    处理用户消息：先调用工具，再返回最终结果。\n    \"\"\"\n    # 调用工具\n    tool_res = await tool()\n\n    # 发送回复消息\n    await cl.Message(content=tool_res).send()\n```\n\n### 2. 运行应用\n在终端中执行以下命令启动应用。`-w` 参数表示开启热重载模式，修改代码后无需重启即可生效：\n\n```sh\nchainlit run demo.py -w\n```\n\n运行后，终端会显示本地访问地址（通常为 `http:\u002F\u002Flocalhost:8000`），点击链接或在浏览器中打开即可与你的 AI 应用进行交互。\n\n---\n更多高级示例（如集成 OpenAI、LangChain、LlamaIndex 等）可参考官方 [Cookbook](https:\u002F\u002Fgithub.com\u002FChainlit\u002Fcookbook)。","某金融科技公司的数据团队需要快速构建一个内部使用的“合规文档智能问答助手”，让非技术背景的合规专员能直接通过对话查询复杂的监管政策。\n\n### 没有 chainlit 时\n- **前端开发耗时极长**：为了展示流式回答和引用来源，后端工程师必须额外花费数周时间编写 React\u002FVue 前端代码并对接 WebSocket，严重拖慢原型验证进度。\n- **交互逻辑难以实现**：想要展示 AI 思考过程中的“中间步骤”（如检索了哪些数据库片段），需要手动设计复杂的 UI 状态管理，代码耦合度极高。\n- **调试与演示门槛高**：每次调整 Prompt 或后端逻辑，都需要前后端联调部署，无法让业务人员即时在浏览器中体验最新效果，反馈循环缓慢。\n- **多模态支持复杂**：若需在对话中插入图表或文件下载链接，需单独开发渲染组件，缺乏统一的标准化接口。\n\n### 使用 chainlit 后\n- **纯 Python 极速构建**：仅需编写一个 `demo.py` 文件，利用 `@cl.on_message` 装饰器即可在几分钟内生成具备流式输出、历史记录的专业级 Web 界面，无需触碰一行前端代码。\n- **原生支持思维链展示**：通过 `@cl.step` 装饰器，轻松将 AI 的检索、推理等中间过程以折叠卡片形式直观呈现，让合规专员清晰看到答案依据。\n- **热重载即时预览**：运行 `chainlit run -w` 即可开启热更新，修改代码后浏览器自动刷新，业务方能实时测试新策略，大幅缩短从想法到落地的周期。\n- **内置丰富交互组件**：直接调用 `cl.Message` 或 `cl.Element` 即可在对话流中嵌入文件、图表及操作按钮，满足金融场景对多媒体信息的展示需求。\n\nchainlit 将原本需要全栈协作数周的对话应用开发，压缩为单人单天即可完成的纯 Python 任务，让团队能专注于核心业务逻辑而非界面搭建。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FChainlit_chainlit_2331919e.png","Chainlit","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FChainlit_f8b9c59e.png","",null,"chainlit_io","https:\u002F\u002Fchainlit.io\u002F","https:\u002F\u002Fgithub.com\u002FChainlit",[81,85,89,93,97,101],{"name":82,"color":83,"percentage":84},"Python","#3572A5",56.4,{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",41.4,{"name":90,"color":91,"percentage":92},"CSS","#663399",1.4,{"name":94,"color":95,"percentage":96},"JavaScript","#f1e05a",0.7,{"name":98,"color":99,"percentage":100},"HTML","#e34c26",0.1,{"name":102,"color":103,"percentage":104},"C++","#f34b7d",0,11917,1690,"2026-04-14T13:07:59","Apache-2.0",1,"未说明",{"notes":112,"python":110,"dependencies":113},"安装开发版本需要系统预先安装 Node.js 和 pnpm。该工具主要用于构建对话式 AI 应用界面，本身不强制依赖特定深度学习框架，但示例中常结合 OpenAI、LangChain 等库使用。",[],[14,15,35],[116,117,118,119,120,121,122],"python","llm","ui","chatgpt","langchain","openai","openai-chatgpt","2026-03-27T02:49:30.150509","2026-04-15T07:10:22.046987",[126,131,136,141,146,151],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},33952,"遇到 \"Could not reach the server\"（无法连接服务器）错误如何解决？","如果是因为 LLM 响应时间过长或执行了耗时异步函数导致超时，可以使用 concurrent.futures 创建独立线程来运行任务。示例代码如下：\n\nimport asyncio\nimport concurrent.futures\n\nasync def speak_async(answer: str): \n    loop = asyncio.get_running_loop()\n    with concurrent.futures.ThreadPoolExecutor() as pool:\n        await loop.run_in_executor(pool, text_to_speech, answer)\n\n此外，如果是权限问题（如 os error 5），请检查运行环境的文件访问权限。","https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fissues\u002F274",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},33951,"如何移除 Chainlit 界面底部的 \"Made with Chainlit\" 水印？","可以通过自定义 JavaScript 代码来隐藏水印。在配置文件中启用 custom_js，并添加以下代码：\n\nfunction observeAndHideWatermark() {\n  const existingWatermark = document.querySelector(\"a.watermark\");\n  if (existingWatermark) {\n    existingWatermark.style.display = \"none\";\n  }\n  const observer = new MutationObserver(() => {\n    const watermark = document.querySelector(\"a.watermark\");\n    if (watermark && watermark.style.display !== \"none\") {\n      watermark.style.display = \"none\";\n    }\n  });\n  observer.observe(document.body, { \n    childList: true, \n    subtree: true,\n    attributes: true,\n    attributeFilter: ['style']\n  });\n}\nobserveAndHideWatermark();\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', observeAndHideWatermark);\n}","https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fissues\u002F122",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},33953,"如何在 Chainlit 中集成语音转文字（Speech-to-Text）功能？","升级到最新版本的 Chainlit 后，可以使用自定义的语音转文字 API。如果遇到麦克风识别在 2 秒后停止的问题，可以调整静音参数：降低 SILENCE_THRESHOLD 并增加 SILENCE_TIMEOUT。参考配置如下：\n\nSILENCE_THRESHOLD = 2000  # 根据音频电平调整（较安静的音频可设更低）\nSILENCE_TIMEOUT = 3500.0  # 视为回合结束的静音秒数","https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fissues\u002F21",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},33954,"Chainlit 2.0+ 版本如何配置官方数据持久化层（Data Layer）？","从 Chainlit >= 2.0.0 开始，可以使用官方数据层支持 PostgreSQL 和 asyncpg。您可以参考官方文档进行配置，或使用示例项目进行测试：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit-datalayer。此前版本需要手动实现自定义数据层（如 MongoDB、Redis 等）。","https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fissues\u002F793",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},33955,"为什么升级 chainlit>=1.1.400 后流式输出时加载图标不显示？","这是 chainlit>=1.1.400 版本的一个已知前端问题，表现为流式对话第一个字出现前不显示加载图标。旧版本工作正常。社区已提出修复方案，详见 PR：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2229。建议关注该 PR 的合并状态或暂时回退到稳定版本。","https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fissues\u002F1254",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},33956,"如何在 @on_chat_start 中获取浏览器 URL 查询参数？","目前可以直接通过 context.session.environ 获取部分环境信息，例如引用页：\n\n@cl.on_chat_start\ndef on_chat_start():\n    print(context.session.environ['HTTP_REFERER'])\n\n但直接解析查询参数（query params）的功能仍在请求中，且在登录视图或新聊天开始时可能会丢失参数。建议暂时通过 HTTP_REFERER 间接获取或通过用户会话传递必要信息。","https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fissues\u002F144",[157,162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252],{"id":158,"version":159,"summary_zh":160,"released_at":161},263847,"2.9.2","## 变更内容\n\n### 新增\n* 由 @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2678 中添加了缓存测试\n* 由 @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2679 中添加了翻译测试\n* 由 @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2681 中添加了 OAuth 提供者测试\n* 由 @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2677 中添加了聊天上下文测试\n* 由 @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2674 中添加了 Socket 测试\n\n### 修复\n* 修复：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2647 中修复了 Copilot 在 2.8.5 版本中引入的破坏性变更\n\n### 其他\n* 杂项：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2686 中进行了发布操作\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.9.1...2.9.2","2025-11-22T03:29:18",{"id":163,"version":164,"summary_zh":165,"released_at":166},263848,"2.9.1","## 变更内容\n* @ADWasHere 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2624 中为聊天添加了查询参数预填充功能。\n* @SpaceAndrea 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2646 中将意大利语翻译添加到了翻译文件夹。\n* @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2653 中支持在水印中使用 Markdown 格式。\n* @Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2651 中为聊天设置添加了标签页支持。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2643 中添加了对操作的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2660 中添加了对 Step 类的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2666 中添加了对 Element 类的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2665 中完成了 LangChain 测试脚本。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2667 中添加了对输入组件的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2668 中添加了对 MCP 的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2669 中添加了对聊天设置的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2670 中添加了对侧边栏的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2671 中添加了对 Markdown 的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2672 中添加了对工具函数的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2673 中添加了对会话的测试。\n* @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2676 中进行了发布相关的维护工作。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2674 中添加了对 Socket 的测试。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2677 中添加了对聊天上下文的测试。\n\n## 新贡献者\n* @SpaceAndrea 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2646 中做出了首次贡献。\n* @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2653 中做出了首次贡献。\n* @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2643 中做出了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.9.0...2.9.1","2025-11-20T15:35:53",{"id":168,"version":169,"summary_zh":170,"released_at":171},263849,"2.9.0","## 变更内容\n* 由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2632 中改进多智能体支持\n* 由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2633 中进行的例行发布更新\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.8.5...2.9.0","2025-11-07T23:45:31",{"id":173,"version":174,"summary_zh":175,"released_at":176},263850,"2.8.5","## What's changed\r\n### Added\r\n* feat: add raw response from OAuthProviders by @ADWasHere in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2608\r\n* feat: add slack reaction added event by @efealioksuz in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2627\r\n* feat: add display_name field to ChatProfile by @slovx2 in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2616\r\n\r\n### Fixed\r\n* security: add missed authorization check by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2637\r\n\r\n⚠️ This is a **fix for a security vulnerability** in Chainlit. The vulnerability is of low severity, as it requires an attacker to:\r\n* Know the thread ID\r\n* Already be a registered user in the Chainlit app\r\n\r\n### Changed\r\n* refactor: remove FastAPI upper version restriction by @s-quinn in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2618\r\n\r\n## New Contributors\r\n* @ADWasHere made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2608\r\n* @s-quinn made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2618\r\n* @slovx2 made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2616\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.8.4...2.8.5","2025-11-07T22:37:24",{"id":178,"version":179,"summary_zh":180,"released_at":181},263851,"2.8.4","## What's Changed\r\n* ci: fix pnpm publish checks by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2572\r\n* fix: missing \u002F in url with base path when connecting Streamable HTTP MCP by @ggirou in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2480\r\n* fix - persist custom_elements to data layer without cloud storage by @jason-raitz in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2589\r\n* fix: propagate IME composition events in AutoResizeTextarea by @servak in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2575\r\n* fix: confirm when enter by @Ms3314 in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2556\r\n* Fix(translation): correct French translation of chat watermark by @dboyker in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2590\r\n* fix(ui): add fallback logo if custom logo is missing by @aniketppanchal in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2586\r\n* Feature\u002FSupport GitHub Enterprise  by @youngbo89 in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2602\r\n* feat: explicit disable on input widget by @jochenrui in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2605\r\n* Fix\u002Ftasklist by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2609\r\n* chore\u002Frelease by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2610\r\n\r\n## New Contributors\r\n* @jason-raitz made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2589\r\n* @servak made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2575\r\n* @Ms3314 made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2556\r\n* @dboyker made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2590\r\n* @aniketppanchal made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2586\r\n* @youngbo89 made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2602\r\n* @jochenrui made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2605\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.8.3...2.8.4","2025-10-29T20:38:17",{"id":183,"version":184,"summary_zh":185,"released_at":186},263852,"2.8.3","## What's Changed\r\n### Added\r\n* Support for the target attribute in header links, which can be configured through the configuration options by @mwmdev in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2568\r\n\r\n### Changed\r\n* ci: libs publishing workflow by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2570\r\n\r\n## @chainlit\u002Freact-client release\r\n`@chainlit\u002Freact-client` verison `0.3.0` released with all changes made between Chainlit versions `2.4.1`...`2.8.3`\r\n\r\n## New Contributors\r\n* @mwmdev made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2568\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.8.2...2.8.3","2025-10-06T02:26:28",{"id":188,"version":189,"summary_zh":190,"released_at":191},263853,"2.8.2","## What's Changed\r\n* UX improvement: Don't autoFocus on mobile for MessageComposer by @jstsch in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2548\r\n* Try\u002Fexcept when calling get_read_url for elements in sqlalchemy.py + None checks by @GhimBoon in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2551\r\n* fix: properly finalize data layer by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2555\r\n* fix: on_chat_start not always firing by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2549\r\n* fix(copilot): Voice hotkey (P) incorrectly triggers when typing in chat input within Shadow DOM by @RoyBA in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2560\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2565\r\n\r\n## New Contributors\r\n* @RoyBA made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2560\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.8.1...2.8.2","2025-10-01T19:50:57",{"id":193,"version":194,"summary_zh":195,"released_at":196},263840,"2.11.0","## 变更内容\n* chore：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2864 中为项目引入了 AI 辅助开发功能。\n* fix：@mgquach 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2855 中修复了当 metadata 为 None 时更新线程导致的 NOT NULL 违规问题。\n* fix：@mgquach 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2841 中修正了 OAuth state 验证中日志格式说明符使用错误的问题。\n* fix：@Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2834 中修复了手风琴组件需要两次点击才能关闭的问题。\n* fix：@Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2837 中修复了移除收藏会用过时快照覆盖实时消息状态的问题。\n* fix：@nzjrs 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2867 中修复了当斜杠输入与任何已注册命令都不匹配时，按下 Enter 键仍会发送消息的问题。\n* @Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2860 中修复了设置编辑钩子相关的问题。\n* fix：@Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2846 中修复了 Multiselect、Tags、Datepicker 和 RadioButton 组件不支持禁用选项的问题。\n* feat：@Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2811 中实现了通过环境变量配置 AzureAD OAuth 作用域的功能。\n* fix：@Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2809 中将 send_toast 改为异步函数。\n* @Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2561 中新增了在 Step 组件中显示 Lucid 图标而非默认头像的功能。\n* fix：@GhimBoon 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2805 中强化了 MCP 退出堆栈清理逻辑，以防止跨任务取消作用域错误。\n* fix：@Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2808 中将空的 custom_fonts 数组视为移除默认字体的意图。\n* feat：@nzjrs 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2861 中实现了在 Plotly 元素中尊重显式指定的图表高度。\n* fix：@MaxwellCalkin 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2831 中修复了当可流式传输的 HTTP MCP 连接失败时未显示错误提示的问题。\n* feat：@JonasKenke 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2833 中添加了改进后的 PDF 查看器。\n* fix：@sefadegirmenci 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2844 中处理了 app_mention 事件中的 Slack 工作流\u002F机器人消息。\n* feat(i18n)：@scafer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2840 中添加了葡萄牙语（pt-PT）翻译。\n* feat：@nzjrs 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2866 中实现了通过 CSS 变量自定义停止图标和加载光标的功能。\n* fix：@Chukwuebuka-2003 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2858 中修复了切换聊天个人资料时附件未被清空的问题。\n* feat：@EyalAmitay 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2785 中新增了支持拖动调整大小的 Copilot 侧边栏模式。\n* chore(ai)：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2874 中同步了代理\u002F编辑器设置和 Context7 库 ID。\n* docs(ai)：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2875 中上传了研究与 AI 相关文档的更新。\n* chore(frontend)：明确声明 pdfjs-dist 作为依赖项。","2026-04-07T22:48:18",{"id":198,"version":199,"summary_zh":200,"released_at":201},263841,"2.10.1","## 变更内容\n* chore: 迁移到 OIDC 用于 npm 发布，由 @willydouhard 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2854 中完成\n* fix: 在 WebSocket 恢复时验证会话所有权，由 @willydouhard 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2857 中完成\n  * ⚠️ 这是 Chainlit 中 **一个安全漏洞的修复**\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.10.0...2.10.1","2026-03-27T07:07:40",{"id":203,"version":204,"summary_zh":205,"released_at":206},263842,"2.10.0","## 变更内容\n* 功能：始终在空状态显示收藏消息按钮，由 @EyalAmitay 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2769 中实现\n* 功能：为分组启动项添加起始类别，由 @EyalAmitay 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2762 中实现\n* 功能：新增选项以禁用用户消息的 Markdown 渲染，由 @jfperusse 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2726 中实现\n* 修复：在现有聊天中收到新消息后重新排序聊天历史侧边栏，由 @hztBUAA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2795 中实现\n* 修复：登录凭据错误时使用错误详情作为错误信息，由 @hztBUAA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2794 中实现\n* 功能：允许轻松删除收藏项，由 @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2792 中实现\n* 修复：在 _extract_feedback_dict_from_step_row 中将 UUID 字段转换为字符串，由 @jarvisrjz 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2793 中实现\n* 功能：通过环境变量配置状态 Cookie 的生命周期，由 @dokterbob 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2788 中实现\n* 修复：当 update_thread 被调用且未提供 metadata 参数时，保留现有元数据，由 @veeceey 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2778 中实现\n* 修复：当权限被拒绝时重置音频界面，由 @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2771 中实现\n* 添加丹麦语 (da-DK) 翻译，由 @mgquach 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2780 中实现\n* 国际化功能：添加阿拉伯语 (ar-SA) 翻译，由 @bigdizaya 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2782 中实现\n* 修复：解决 sidebarinset 扩展超出父容器导致水平滚动的问题，由 @Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2774 中实现\n* 功能 (#1858)：实现设置更改监听器，由 @FosanzDev 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2801 中实现\n* 添加图片预览功能，由 @Alex2251 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2783 中实现\n* 数据修复：防止在 upsert 操作中空字符串覆盖步骤内容，由 @giulio-leone 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2807 中实现\n* 功能：为命令添加预选选项，由 @Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2817 中实现\n* 修复：在配置 SSL 时使用正确的 URL 方案，由 @Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2819 中实现\n* 功能：为 Step 添加 auto_collapse 参数，由 @Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2818 中实现\n* 功能：为容器编排添加 \u002Fhealth 端点，由 @Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2810 中实现\n* 功能：为 default_sidebar_state 配置添加 “hidden” 选项，由 @Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2814 中实现\n* 功能：通过 config.toml 配置头像大小，由 @Br1an67 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2816 中实现\n* 杂项：发布，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2826 中实现\n\n## 新贡献者\n* @EyalAmitay 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2769 中完成了首次贡献\n* @hztBUAA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2795 中完成了首次贡献\n* @jarvisrj","2026-03-05T20:35:12",{"id":208,"version":209,"summary_zh":210,"released_at":211},263843,"2.9.6","## 变更内容\n* 功能：允许跳过新建聊天确认，由 @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2757 中实现\n* 日期选择器输入组件，由 @Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2654 中实现\n* 功能：为侧边栏添加聊天设置切换功能，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2759 中实现\n* 杂项：发布版本，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2764 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.9.5...2.9.6","2026-01-20T19:33:23",{"id":213,"version":214,"summary_zh":215,"released_at":216},263844,"2.9.5","## 变更内容\n* 修复：启动器应采用选中模式，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2745 中实现\n* 保存收藏消息（提示模板），由 @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2736 中实现\n* 功能：添加从数据层获取步骤的能力，由 @awilfox 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2729 中实现\n* 杂项：发布版本，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2748 中完成\n\n## 新贡献者\n* @awilfox 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2729 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.9.4...2.9.5","2026-01-12T15:24:07",{"id":218,"version":219,"summary_zh":220,"released_at":221},263845,"2.9.4","## 变更内容\n\n⚠️ 本次发布包含：\n* **破坏性变更**：如果你使用持久化功能，需要执行 `ALTER TABLE steps ADD COLUMN IF NOT EXISTS modes JSONB;` 来完成迁移。\n* **安全漏洞修复**\n\n### 新增\n* @Allaoua9 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2715 中为共享线程添加了图标。\n* @jfperusse 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2724 中新增了一个选项，允许禁用助手消息的自动滚动。\n* 功能：@hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2734 中添加了“模式”功能。\n\n### 修复\n* 修复：@jfperusse 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2725 中修复了长消息中头像显示的小错误。\n* 安全：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2737 中为自定义线程元素更新添加了输入 sanitization 处理。\n\n### 其他\n* 杂项：@hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2733 中升级了 watchfiles。\n* 杂项：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2735 中在 watchfiles 更改后更新了 uv.lock 文件。\n* 杂项：@asvishnyakov 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2738 中完成了发布。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.9.3...2.9.4","2025-12-25T03:22:21",{"id":223,"version":224,"summary_zh":225,"released_at":226},263846,"2.9.3","## 变更内容\n* 测试：添加缺失的 OAuth 提供者测试，由 @codomposer 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2687 中完成\n* 测试：添加消息相关测试，由 @OxLeOx 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2664 中完成\n* 更新 Chainlit 数据层，支持元数据合并，由 @jfperusse 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2688 中完成\n* Bug 修复：修复登录后页面闪烁问题，由 @ADWasHere 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2640 中完成\n* 更新 useChatSession.ts 文件，由 @tosokr 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2657 中完成\n* 修复：修复 #2640 引入的 CI 问题，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2711 中完成\n* 修复（Socket）：在恢复 WebSocket 会话时设置环境变量，由 @daniel-oronsi 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2689 中完成\n* 文档：移动 hello.py 文件以避免导入遮蔽，由 @RoyBA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2702 中完成\n* 功能：在 Markdown 渲染中添加原生视频支持，由 @RoyBA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2704 中完成\n* 优化：通过记忆化优化聊天消息渲染和消息树更新，由 @SimonEOA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2706 中完成\n* 修复：当 allow_threadsharing 设置为 false 时，不显示分享线程按钮，由 @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2708 中完成\n* 功能：添加语言配置选项，用于覆盖浏览器语言设置，由 @RoyBA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2703 中完成\n* 修复：修复 Chainlit 作为库使用时的日志记录配置问题，由 @goatwu1993 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2683 中完成\n* 修复：更新 LangChain 的导入，以兼容 v1.x 版本，由 @RoyBA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2700 中完成\n* 功能：改进图标名称格式化，由 @eiseleMichael 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2693 中完成\n* 杂项：发布版本，由 @hayescode 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2712 中完成\n\n## 新贡献者\n* @OxLeOx 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2664 中完成了首次贡献\n* @daniel-oronsi 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2689 中完成了首次贡献\n* @SimonEOA 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2706 中完成了首次贡献\n* @goatwu1993 在 https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2683 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.9.2...2.9.3","2025-12-04T21:42:20",{"id":228,"version":229,"summary_zh":230,"released_at":231},263854,"2.8.1","## What's Changed\r\n* docs: update privacy policy by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2515\r\n* docs: fix changelog of latest release by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2514\r\n* feat: add german translation by @tammenha in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2517\r\n* feat: add Korean translation for application by @taeminlee in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2534\r\n* refactor: allow Thread Sharing by user-defined callback by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2521\r\n* refactor: remove redundant message sending in process_slack_message by @tosokr in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2540\r\n* Add support for custom_meta_url by @jstsch in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2536\r\n* fix: generate signed url when loading elements from sqlalchemy datalayer by @eduardafneumann in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2541\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2547\r\n\r\n## New Contributors\r\n* @tammenha made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2517\r\n* @taeminlee made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2534\r\n* @tosokr made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2540\r\n* @jstsch made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2536\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.8.0...2.8.1","2025-09-24T19:13:35",{"id":233,"version":234,"summary_zh":235,"released_at":236},263855,"2.8.0","## What's Changed\r\n### Added\r\n* feat: add Thread Sharing by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2489\r\n* feat: add a second optional language parameter to set_starters by @jfperusse in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2456,  https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2461\r\n* feat: Add MultiSelect, RadioGroup and Checkbox input widget types by @agutierrezmorag in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2472\r\n* feat: add Spanish translation file by @agutierrezmorag in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2458\r\n* feat: allow sending commands from custom elements by @agutierrezmorag in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2459\r\n\r\n### Changed\r\n* refactor: reorder Message Composer Elements by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2510\r\n\r\n### Fixed\r\n* fix: default to plaintext code blocks for unsupported languages by @jfperusse in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2453\r\n* fix: threadsorting fix by @jasparm in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2463\r\n* fix: Replace hardcoded strings with translation keys by @agutierrezmorag in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2468\r\n* fix: data persistence bug introduced in #2433 by @mihidumh in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2460\r\n* fix(hot-reload): preserve run.module_name on config reload and safely… by @DmitriyAlergant in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2481\r\n* fix: take overridden config into account in audio handlers by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2512\r\n\r\n### Other\r\n* chore: async e2e spec entry point name by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2504\r\n* ci: support manual publishing to TestPyPI from main and any branch by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2483\r\n* chore: build frontend and copilot on installation from source code (fork, git, local folder) by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2482\r\n* chore: temporary fix typing issues & ci by @asvishnyakov in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2513\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2511\r\n\r\n## New Contributors\r\n* @agutierrezmorag made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2458\r\n* @DmitriyAlergant made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2481\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.7.2...2.8.0","2025-09-13T03:22:28",{"id":238,"version":239,"summary_zh":240,"released_at":241},263856,"2.7.2","## What's Changed\r\n* Import GCSStorageClient only when needed to avoid requiring optional dependencies by @mihidumh in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2433\r\n* feat: Dynamic Config Improvements by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2435\r\n* Add LiteralAI Deprecation warning by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2436\r\n* Initialize WebsocketSession context for on_feedback by @jfperusse in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2437\r\n* Add maintainers as CodeOwners by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2446\r\n* feat: add Traditional Chinese (Taiwan) translations by @lcy0321 in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2444\r\n* feat: add configurable user_env persistence to database by @ayylemao in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2397\r\n* fix: add command translations by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2450\r\n* fix: Update contributing and fix logo by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2451\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2452\r\n\r\n## New Contributors\r\n* @lcy0321 made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2444\r\n* @ayylemao made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2397\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.7.1.1...2.7.2","2025-08-26T15:02:20",{"id":243,"version":244,"summary_zh":245,"released_at":246},263857,"2.7.1.1","## What's Changed\r\n* fix: include frontend assets as artifacts by @sandangel in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2430\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2431\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.7.1...2.7.1.1","2025-08-21T14:36:53",{"id":248,"version":249,"summary_zh":250,"released_at":251},263858,"2.7.1","## What's Changed\r\n* Add copilot-setup-steps.yaml GitHub workflow for GitHub Copilot coding agent by @discohead in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2411\r\n* feat: Add Dynamic Configuration to ChatProfiles by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2401\r\n* [Add] Implement Slack Socket Mode support by @JCMarques15 in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F1436\r\n* fix: AskFileButton can now upload file with proper checking and it's own limits by @pmercier in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F1911\r\n* fix: changed thread sorting to use updated time instead of creation time by @jasparm in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2404\r\n* fix: added content-disposition metadata to azure blob uploads to persist download file name by @jasparm in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2405\r\n* Rewrite chat input to use textarea and ChatGPT-style command selection (fixes inline command bugs) by @AidanShipperley in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2393\r\n* Add missing headers when connecting Streamable HTTP MCP by @ggirou in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2417\r\n* feat(auth): update require_login to check for CHAINLIT_AUTH_SECRET environment variable instead of CHAINLIT_CUSTOM_AUTH by @xjose97x in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2403\r\n* feat: Migrate from poetry to uv by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2415\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2423\r\n* fix: frontend build in publish workflow @hayescode\r\n* revert: breaking change to custom auth by @sandangel \r\n\r\n## New Contributors\r\n* @discohead made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2411\r\n* @JCMarques15 made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F1436\r\n* @jasparm made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2404\r\n* @ggirou made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2417\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.6.9...2.7.0","2025-08-21T11:51:34",{"id":253,"version":254,"summary_zh":255,"released_at":256},263859,"2.7.0","## What's Changed\r\n* Add copilot-setup-steps.yaml GitHub workflow for GitHub Copilot coding agent by @discohead in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2411\r\n* feat: Add Dynamic Configuration to ChatProfiles by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2401\r\n* [Add] Implement Slack Socket Mode support by @JCMarques15 in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F1436\r\n* fix: AskFileButton can now upload file with proper checking and it's own limits by @pmercier in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F1911\r\n* fix: changed thread sorting to use updated time instead of creation time by @jasparm in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2404\r\n* fix: added content-disposition metadata to azure blob uploads to persist download file name by @jasparm in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2405\r\n* Rewrite chat input to use textarea and ChatGPT-style command selection (fixes inline command bugs) by @AidanShipperley in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2393\r\n* Add missing headers when connecting Streamable HTTP MCP by @ggirou in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2417\r\n* feat(auth): update require_login to check for CHAINLIT_AUTH_SECRET environment variable instead of CHAINLIT_CUSTOM_AUTH by @xjose97x in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2403\r\n* feat: Migrate from poetry to uv by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2415\r\n* chore: release by @hayescode in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2423\r\n\r\n## New Contributors\r\n* @discohead made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2411\r\n* @JCMarques15 made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F1436\r\n* @jasparm made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2404\r\n* @ggirou made their first contribution in https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fpull\u002F2417\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FChainlit\u002Fchainlit\u002Fcompare\u002F2.6.9...2.7.0","2025-08-21T01:57:34"]