st-chat

给 Streamlit 应用一键加上 ChatGPT 式聊天界面

st-chat 是一个基于 Streamlit 的聊天机器人 UI 组件,用 JavaScript 编写,旨在为 Streamlit 应用快速添加类 ChatGPT 的聊天界面。它解决了 Streamlit 原生缺乏交互式聊天组件的问题,让开发者无需深入前端知识,就能在数据应用中集成对话功能。核心能力包括:支持流式输出、自定义消息样式、管理聊天历史、集成用户输入等,并提供了简洁的 Python API 供调用。该项目处于成长阶段,社区活跃,适合数据科学家和 Streamlit 用户快速构建原型或生产级对话应用。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1100
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类对话助手
开发团队AI-Yash
所属国家
官网地址
定价模式free
价格说明开源组件,MIT许可证,完全免费,无付费版本。
访问状态
是否开源是
开源协议MIT
主要语言JavaScript
技术栈/模型chatbot,hacktoberfest,streamlit-component
GitHub 星标★ 1100
30天Star增速
HF 下载量
上线时间2021-12-18 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 3 步

环境要求

  • Python 环境,且能正常使用 pip
  • Streamlit 应用运行环境(st-chat 是 Streamlit 组件,需在 Streamlit 应用中调用)

安装与启动步骤

  1. 1安装组件包

    用 pip 安装 streamlit-chat,它会提供后续使用的 message 函数。建议在虚拟环境中安装,避免与已有依赖冲突。

    pip install streamlit-chat
  2. 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. 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

项目介绍

st-chat 是对话助手领域的开源项目,由 AI-Yash 开发,2021 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,100)位列前 30%,在对话助手分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。开源组件,MIT许可证,完全免费,无付费版本。

它主要面向的使用场景是:在Streamlit数据应用中嵌入智能问答助手。同类可对比的替代方案包括 streamlit-chat、Chainlit、Gradio。

上一篇:awesome-gpt

下一篇:web-llm-chat

同类项目推荐

open-webui 开源

给本地模型配个漂亮聊天室,全家都能用

User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

★ 152821 2026-08-09
prompts.chat 开源

海量好提示词,抄了就能让 AI 更听话

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the commun···

★ 170999 2026-08-09
elia 开源

终端里用键盘快速聊 AI,多模型切换不打断思路

A snappy, keyboard-centric terminal user interface for interacting with large langua···

★ 2479 2026-08-09
NextChat 开源

一个界面聊遍所有主流AI模型,支持全平台部署,轻快又私密。

✨ Zero-config AI chat assistant. No API key needed — sign up and instantly chat wi···

★ 88802 2026-08-09