news 2026/5/13 6:18:44

用Langflow和Streamlit构建无代码聊天机器人

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用Langflow和Streamlit构建无代码聊天机器人

用 Langflow 和 Streamlit 构建无代码聊天机器人

在生成式 AI 技术飞速演进的今天,越来越多非技术背景的用户也希望能快速构建属于自己的智能助手。然而传统 LLM 应用开发往往需要掌握 Python、LangChain 等工具链,学习成本高、试错周期长。有没有一种方式,能让产品经理、业务人员甚至教师,在不写一行核心代码的情况下,就完成一个具备知识检索能力的聊天机器人原型?

答案是肯定的——Langflow + Streamlit的组合正为此而生。

Langflow 是一个为 LangChain 框架打造的可视化开发工具,它把复杂的语言模型工作流变成了“拖拽连线”的图形操作;而 Streamlit 则能将这些流程一键封装成美观的 Web 对话界面。两者结合,几乎抹平了从想法到可交互原型之间的鸿沟。


可视化编排:让 LLM 工作流像搭积木一样简单

过去使用 LangChain 开发 RAG(检索增强生成)系统,你需要手动编写代码来拼接文档加载器、文本分割器、嵌入模型、向量数据库和问答链。整个过程不仅繁琐,还容易因参数配置不当导致效果不佳。

Langflow 改变了这一点。它基于 React Flow 构建了一个直观的节点式编辑器,将 LangChain 中的核心组件封装成可复用的 UI 模块:

  • Document Loader:支持 PDF、Word、Markdown、网页等多种格式
  • Text Splitter:自动切分长文本,避免上下文溢出
  • Embeddings:集成 OpenAI、HuggingFace、Ollama 等多种嵌入服务
  • Vector Store:Chroma、Pinecone、FAISS 等主流向量库一键接入
  • LLM & Chains:预置 ConversationalRetrievalQA、AgentExecutor 等常用链结构

你只需要把这些模块从左侧边栏拖到画布上,用鼠标连线定义数据流向,就能构建出完整的 RAG 流程。每个节点都支持独立测试,输入后立刻看到输出结果,调试效率大幅提升。

更关键的是,整个流程可以导出为.json文件,便于版本管理与跨环境部署。无论是本地调试还是 Docker 容器化运行,都能无缝衔接。


快速实战:搭建企业 FAQ 智能客服

我们以“企业内部常见问题助手”为例,走一遍完整流程。

第一步:准备知识源

假设公司有一份company_faq.pdf,包含入职指南、报销政策、假期制度等内容。我们的目标是让用户通过自然语言提问,如“新员工试用期多久?”,系统能精准返回答案并附带出处。

第二步:在 Langflow 中构建流程

启动 Langflow(默认地址http://localhost:7860),新建一个 flow,依次添加以下节点:

  1. PyPDFLoader
    设置路径/data/company_faq.pdf

  2. RecursiveCharacterTextSplitter
    配置chunk_size=500,chunk_overlap=50,确保语义完整性

  3. OpenAIEmbeddings 或 HuggingFaceEmbeddings
    根据是否联网选择云端或本地嵌入模型

  4. Chroma Vector Store
    创建名为faq_db的集合,用于存储向量化后的文本块

  5. ConversationalRetrievalQA Chain
    连接 retriever 和 LLM(如 ChatOpenAI 的 gpt-3.5-turbo),开启 memory 实现多轮对话

连接完成后保存流程,Langflow 会自动生成唯一的FLOW_ID(例如abc123-def456),并通过内置 API 服务暴露该流程。


调用流程 API:实现前后端解耦

Langflow 内部集成了 FastAPI,每个 flow 都可通过 REST 接口调用。你可以使用 cURL 直接测试:

curl -X POST http://localhost:7860/api/v1/process/abc123-def456 \ -H "Content-Type: application/json" \ -d '{ "inputs": { "question": "年假怎么计算?" } }'

响应示例:

{ "result": { "answer": "正式员工每年享有10天带薪年假,工作满五年后增加至15天。", "source_documents": [ { "page_content": "年假规定:连续工作满一年的员工可享受10天年假...", "metadata": { "source": "/data/company_faq.pdf", "page": 8 } } ] } }

这个 JSON 输出包含了答案和引用来源,非常适合用于构建可信的企业级问答系统。


前端展示:用 Streamlit 打造专业对话界面

虽然 Langflow 自带简易聊天窗口,但要发布给更多用户使用,仍需更友好的前端体验。这时候,Streamlit 就派上了大用场。

它仅需几十行 Python 代码,就能构建出媲美商业产品的对话应用。

安装依赖

pip install streamlit streamlit-chat requests -Uq

注:streamlit-chat提供了类似微信风格的气泡式聊天 UI,社区维护活跃。

核心代码实现

import logging import sys import requests import streamlit as st from streamlit_chat import message # 日志配置 logging.basicConfig( format="%(asctime)s - %(levelname)s - %(message)s", level=logging.INFO, stream=sys.stdout ) # 配置项 LANGFLOW_API_URL = "http://localhost:7860/api/v1/process" FLOW_ID = "abc123-def456" # 替换为你的实际 Flow ID AVATAR_USER = "https://raw.githubusercontent.com/garystafford-aws/static-assets/main/static/people-64px.png" AVATAR_BOT = "https://raw.githubusercontent.com/garystafford-aws/static-assets/main/static/robot-64px.png" def call_langflow(question: str) -> str: """调用 Langflow API 获取回答""" try: payload = { "inputs": {"question": question}, "tweaks": {} } response = requests.post(f"{LANGFLOW_API_URL}/{FLOW_ID}", json=payload) response.raise_for_status() data = response.json() return data["result"]["answer"] except Exception as e: logging.error(f"API 调用失败: {e}") return "抱歉,我暂时无法获取答案,请稍后再试。" # 页面初始化 st.set_page_config(page_title="企业FAQ助手", layout="centered") st.title("💬 企业内部智能客服") st.caption("基于 Langflow 与 Streamlit 构建的无代码聊天机器人") # 初始化会话状态 if "messages" not in st.session_state: st.session_state.messages = [] # 显示历史消息 for msg in st.session_state.messages: message( msg["content"], is_user=msg["role"] == "user", avatar_style="initials", seed="AI" if msg["role"] == "assistant" else "U", key=str(id(msg)) ) # 用户输入 if prompt := st.chat_input("请输入您的问题..."): # 添加用户消息 st.session_state.messages.append({"role": "user", "content": prompt}) message(prompt, is_user=True, avatar_style="initials", seed="U", key=f"user_{len(st.session_state.messages)}") # 显示机器人思考动画 with st.spinner("正在查询知识库..."): response = call_langflow(prompt) # 添加并显示机器人回复 st.session_state.messages.append({"role": "assistant", "content": response}) message(response, is_user=False, avatar_style="initials", seed="AI", key=f"ai_{len(st.session_state.messages)}")

运行命令:

streamlit run chatbot_app.py

访问http://localhost:8501即可看到清晰的对话界面,支持连续对话、自动滚动、错误提示等完整交互功能。


进阶技巧:提升灵活性与安全性

动态调整组件行为(Tweaks)

你可以在请求中通过tweaks字段临时修改某个节点的参数,比如切换不同模型进行 A/B 测试:

TWEAKS = { "ChatOpenAI-XXXXX": { "model_name": "gpt-4-turbo", "temperature": 0.7 } }

这样无需重新部署流程,即可对比不同配置下的生成质量。

支持多类型文档输入

Langflow 的 Document Loader 支持多种格式:
- PDF → PyPDFLoader
- Word → Docx2txtLoader
- Markdown → UnstructuredMarkdownLoader
- 网页 → WebBaseLoader

只需更换加载器组件,即可适配 HR 手册、技术文档、课程资料等各种知识源。

全本地化部署:保护敏感数据

对于金融、医疗等行业,数据隐私至关重要。此时可完全避开 OpenAI,改用本地模型:

  • 使用Ollama运行llama3mistral等开源 LLM
  • 配合HuggingFace Embeddings生成本地向量
  • 向量库存储于Chroma本地实例

整套流程可在内网环境中闭环运行,无需任何外部网络请求,真正实现数据不出域。


实际应用场景一览

场景实现价值
🏢 企业知识助手员工自助查询制度、IT 支持、组织架构,降低 HR 成本
🏫 教育答疑机器人学生随时咨询课程安排、作业要求,减轻教师负担
🛠️ 技术文档客服开发者快速查找 API 说明、SDK 示例,提升开发效率
🏥 医疗健康问答基于公开文献提供初步健康建议(非诊断用途)
📚 图书馆导览系统查询书籍位置、借阅规则、活动信息,改善用户体验

这些场景都可以遵循“上传文档 → Langflow 编排 → Streamlit 展示”三步法,在几小时内完成原型验证。


写在最后:AI 应用开发的新范式

Langflow 与 Streamlit 的结合,标志着 AI 应用开发进入了一个更高效、更民主化的阶段。

  • Langflow扮演“逻辑引擎”的角色,让你零代码完成复杂工作流编排;
  • Streamlit则负责“交互呈现”,用极简语法构建专业前端;
  • 二者通过 API 解耦,形成“后端流程 + 前端界面”的标准架构。

这种模式的优势非常明显:

开发极快:半天内即可完成从零到一的原型
维护简单:流程以 JSON 存储,易于共享与迭代
扩展性强:支持多模型、多数据源、混合部署
协作友好:产品、运营、研发可共同参与设计与测试

更重要的是,它降低了 AI 技术的准入门槛。现在,哪怕你不会写代码,也能亲手搭建一个真正可用的智能体。这正是 AI 民主化的体现——让每一个有想法的人,都有能力创造属于自己的数字助手。

未来,随着更多可视化工具涌现,我们或将迎来“人人皆可编程”的新时代。而 Langflow + Streamlit,无疑是通向这一未来的最佳起点之一。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 9:34:21

在算家云搭建Linly-Talker数字人语音系统

在算家云搭建Linly-Talker数字人语音系统 你有没有想过,只需一张照片和一段文字,就能让一个“数字人”替你说话、讲课甚至直播带货?这听起来像是科幻电影里的场景,但如今借助 Linly-Talker 这样的多模态AI系统,这一切…

作者头像 李华
网站建设 2026/5/1 23:20:59

全球USB厂商及设备ID详细列表

全球USB厂商及设备ID详细列表 # # 全球USB厂商及设备ID详细列表 # # 维护者:Wan2.2-T2V-5B 镜像项目组 # 如发现新设备或需补充信息,请提交至: # https://github.com/wan2-2-t2v-5b/usb-id-list # 或通过邮件发送补丁&#xf…

作者头像 李华
网站建设 2026/4/28 11:00:17

Markdown语法高亮显示TensorRT配置文件内容

TensorRT配置文件的Markdown高亮展示与工程实践 在AI模型从实验室走向生产线的过程中,推理性能往往成为决定系统成败的关键瓶颈。尤其是在视频分析、自动驾驶和语音交互等实时性要求极高的场景中,毫秒级的延迟差异可能直接影响用户体验甚至安全决策。NVI…

作者头像 李华
网站建设 2026/5/4 21:36:15

腾讯开源HunyuanVideo-Foley:实现AI视频声画合一

腾讯开源HunyuanVideo-Foley:实现AI视频声画合一 2025年8月,腾讯混元团队悄然释放了一枚“视听炸弹”——HunyuanVideo-Foley 正式开源。这不仅是一款音效生成工具,更是一次对AI视频创作范式的彻底重构。它让机器第一次真正意义上“听懂画面…

作者头像 李华