AI百事通

从零搭建AI聊天机器人:LangChain与Streamlit实战

📅 2026-06-27📰 ai_generated👁 0 次阅读
从零搭建AI聊天机器人:LangChain与Streamlit实战
LangChainStreamlit聊天机器人PythonAI开发

简介

AI聊天机器人已成为企业客户服务和个人助手的重要工具。本教程将使用LangChain框架和Streamlit前端库,快速搭建一个功能完整的聊天机器人。

准备工作

环境要求

  • Python 3.10+
  • OpenAI API密钥(或其他LLM提供者)
  • 基本Python编程知识

安装依赖

pip install langchain streamlit openai python-dotenv

第一步:设置项目结构

创建项目文件夹,包含以下文件:

  • app.py:主程序
  • .env:环境变量
  • requirements.txt:依赖列表

第二步:编写核心逻辑

初始化LLM

from langchain_openai import ChatOpenAI
import os

llm = ChatOpenAI(
    model="gpt-4o",
    temperature=0.7,
    api_key=os.getenv("OPENAI_API_KEY")
)

创建提示词模板

from langchain.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个友好的AI助手,用中文回答用户问题。"),
    ("user", "{input}")
])

添加记忆功能

使用ConversationBufferMemory保留对话历史。

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

memory = ConversationBufferMemory(memory_key="history")
conversation = ConversationChain(
    llm=llm,
    memory=memory,
    prompt=prompt
)

第三步:构建Streamlit界面

创建聊天界面

import streamlit as st

st.set_page_config(page_title="AI 聊天机器人", page_icon="🤖")
st.title("AI 聊天机器人")

if "messages" not in st.session_state:
    st.session_state.messages = []

for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

处理用户输入

if prompt := st.chat_input("请输入你的问题"):
    st.session_state.messages.append({"role": "user", "content": prompt})
    with st.chat_message("user"):
        st.markdown(prompt)
    
    with st.chat_message("assistant"):
        response = conversation.predict(input=prompt)
        st.markdown(response)
    st.session_state.messages.append({"role": "assistant", "content": response})

第四步:添加高级功能

流式输出

使用StreamingCallbackHandler实现打字机效果。

from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

llm = ChatOpenAI(streaming=True, callbacks=[StreamingStdOutCallbackHandler()])

上下文管理

使用ConversationSummaryMemory压缩长对话。

第五步:部署上线

本地运行

streamlit run app.py

云端部署

  • Streamlit Cloud:免费部署,连接GitHub仓库
  • Hugging Face Spaces:支持更多配置
  • AWS/GCP:适合生产环境

完整代码

项目完整代码已上传至GitHub:[链接]

总结

通过本教程,你学会了使用LangChain和Streamlit搭建AI聊天机器人。你可以进一步扩展功能,如添加文档检索、多轮对话、自定义知识库等。AI开发从未如此简单!