简介
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开发从未如此简单!