
st-chat
给 Streamlit 应用一键加上 ChatGPT 式聊天界面
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1100
技术标签
使用教程
环境要求
- Python 环境,且能正常使用 pip
- Streamlit 应用运行环境(st-chat 是 Streamlit 组件,需在 Streamlit 应用中调用)
安装与启动步骤
-
1安装组件包
用 pip 安装 streamlit-chat,它会提供后续使用的 message 函数。建议在虚拟环境中安装,避免与已有依赖冲突。
pip install streamlit-chat -
2编写聊天页面
新建 app.py,从 streamlit_chat 导入 message 并调用即可渲染消息气泡;is_user=True 的消息会右对齐。
import streamlit as st from streamlit_chat import message message("My message") message("Hello bot!", is_user=True) -
3启动应用
在 app.py 所在目录启动应用,终端会输出本地访问地址,用浏览器打开就能看到聊天界面。
streamlit run app.py
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
is_user | 否 | 设为 True 时该条消息靠右对齐,代表用户发言;不传则默认在左侧 | True |
如何确认成功
浏览器打开启动后给出的地址,页面出现两个消息气泡,其中 is_user=True 的那条靠右显示。
常见问题
Q:怎么区分用户消息和机器人消息?
A:在 message() 中加 is_user=True,消息会右对齐表示用户发言;不加该参数时消息显示在左侧,通常作为机器人回复。
Q:怎么清空聊天记录?
A:把历史存在 st.session_state 里(如 past、generated 两个列表),示例中通过 del st.session_state.past[:] 和 del st.session_state.generated[:] 清空后重绘。
Q:可以插入 HTML 或富媒体内容吗?
A:可以。README 示例从 streamlit.components.v1 导入 html,将 iframe、markdown 等 HTML 字符串作为消息内容一起渲染。
注意事项
- README 只给出 pip 安装与用法示例,未提供生产部署、端口或服务器配置说明
- 示例应用可参考 https://share.streamlit.io/ai-yash/st-chat/main/examples/chatbot.py
- 组件必须运行在 Streamlit 应用内,不能单独作为网页服务启动
核心亮点
- 专为 Streamlit 设计,安装即用,Python API 简洁,上手快
- 支持流式输出,聊天体验流畅,接近原生对话应用
- 高度可定制,消息样式、组件布局可灵活调整
不足之处
- 依赖 Streamlit 生态,适用范围限于 Streamlit 应用
- 文档和示例相对有限,高级用法需自行探索
适用场景
- 在 Streamlit 数据应用中嵌入智能问答助手
- 快速构建内部工具或原型,需要对话式交互界面
- 为机器学习模型提供交互式演示和用户反馈收集
替代项目
streamlit-chat、Chainlit、Gradio
上一篇:awesome-gpt
下一篇:web-llm-chat
同类项目推荐
ParallelChat
开源
一个界面同时问遍所有主流 AI,免费免 Key,对比结果一目了然。
ParallelChat 是一款开源的多 AI 并行对话桌面应用,让你在一个界面中同时使用 ChatGPT、K···
BotFramework-WebChat
开源
把 Azure Bot 快速变成网页聊天框,还能深度改皮肤
A highly-customizable web-based client for Azure Bot Services.
ChatGPT-in-Slack
开源
在 Slack 里直接召唤 ChatGPT,无需切换工具,提升团队效率
Swift demonstration of how to build a Slack app that enables end-users to interact w···
awesome-chatgpt
开源
一页看尽ChatGPT生态,快速找到趁手工具
Curated list of awesome tools, demos, docs for ChatGPT and GPT-3
sendbird-uikit-react-native
开源
几行代码给 React Native 应用加上聊天功能
Build chat in minutes with Sendbird UIKit open source code.
Radhika
开源
多模型 AI 聊天伙伴,懂心情更懂你
Radhika is a multi-model AI assistant built for your mood and friendship
Magento-Chatbot
开源
给 Magento 店铺装上多平台聊天机器人,自动回复省人力
Magento Chatbot Integration with Telegram, Messenger, Whatsapp, WeChat, Skype and wi···
Termino.js
开源
在网页里轻松嵌入终端,打造酷炫命令行交互。
Create a web based terminal on any website - great for games, animations and real wo···
xiaogpt
开源
让小米音箱秒变 ChatGPT 语音入口,动口就能聊
Play ChatGPT and other LLM with Xiaomi AI Speaker