LangChain构建命理大师智能Agent
本文介绍了一个基于LangChain开发的智能命理大师Agent"陈玉楼",具备自然对话、情绪感知和知识库管理等功能。该系统采用多层记忆架构(Redis存储对话历史),动态情绪感知(7种情绪状态),并集成命理知识库支持专业咨询。技术亮点包括模块化设计、可扩展工具系统和性能优化(Redis缓存、流式响应)。应用场景涵盖在线命理咨询、情绪支持和传统文化教育。未来可扩展多模态、多语言
引言
在当今AI技术飞速发展的时代,我们见证了各种智能助手在各个领域的应用。今天,我要分享一个特别的项目——一个基于LangChain开发的智能命理大师Agent。这个项目不仅实现了自然对话功能,还融入了情绪感知、知识库管理、流式响应等先进特性,为用户提供沉浸式的命理咨询服务。
项目概述
这个命理大师Agent被命名为"陈玉楼",设定为一位60岁左右、精通阴阳五行的算命先生。他不仅有丰富的背景故事(曾为湘西土匪头子,后因盗墓失明转为算命为生),还拥有多变的情绪状态和独特的口头禅,使得对话更加生动有趣。
核心架构设计
1. 多层记忆系统
项目采用了分层的记忆管理策略:
class DestinyMaster:
def __init__(self, session_id: str = "default_session"):
self.memory = ConversationBufferWindowMemory(
memory_key=self.MEMORY_KEY,
chat_memory=RedisChatMessageHistory(
session_id=self.session_id,
url=self.redis_url,
key_prefix="destiny_master:"
),
k=5, # 保留最近5轮对话
return_messages=True
)
短期记忆:通过ConversationBufferWindowMemory保存最近5轮对话
长期存储:使用Redis持久化所有对话历史
会话隔离:每个session_id都有独立的记忆空间
2. 动态情绪感知系统
Agent能够实时感知用户情绪并调整回应方式:
def _emotion_chain(self, query):
"""判断用户情绪"""
prompt = ChatPromptTemplate.from_template("""根据用户的输入判断用户的情绪...""")
chain = prompt | self.llm | StrOutputParser()
return chain.invoke({"input": query})
系统支持7种情绪状态:default、upbeat、angry、depressed、friendly、cheerful等,每种情绪都有独特的回应风格。
3. 知识库集成
通过向量数据库存储命理相关知识,支持实时检索:
def _add_knowledge_tool(self):
def knowledge_retrieval(query: str) -> str:
"""从知识库中检索相关信息"""
results = self.vector_store.search_knowledge(query, 3)
context = "\n\n".join([f"知识{i + 1}: {doc.page_content}" for i, doc in enumerate(results)])
return f"从知识库中找到以下相关信息:\n\n{context}"
功能展示
🗣️ 智能对话功能
Agent能够进行自然的命理咨询对话,根据用户的问题提供专业的算命、紫薇斗数、姓名测算等服务。
📚 知识库管理
支持通过URL和文本两种方式导入专业知识
往知识库添加现代算命先生信息
再次询问
📊 对话历史管理
支持查看和清空对话记录:
😊 情绪自适应
系统能够检测用户情绪并动态调整Agent的回应方式
技术亮点
1. 模块化设计
DestinyMaster类:核心Agent逻辑封装
VectorDB类:向量数据库操作抽象
WebSocket管理器:连接和会话管理
2. 可扩展性
工具系统支持轻松添加新功能
情绪系统可扩展更多情绪状态
知识库支持多种数据源
3. 性能优化
Redis缓存提高响应速度
流式处理减少用户等待时间
记忆窗口限制避免内存溢出
部署与使用
环境配置
# 安装依赖
pip install langchain openai redis chromadb fastapi websockets
# 启动Redis
redis-server
# 运行服务
python app.py
API接口
POST /add_urls:添加URL到知识库
POST /add_texts:添加文本到知识库
GET /api/conversation:获取对话历史
DELETE /api/conversation:清空对话历史
WS /ws/{client_id}:WebSocket流式对话
实际应用场景
-
在线命理咨询
为用户提供个性化的命理咨询服务,结合专业知识库给出准确建议。 -
情绪支持系统
通过情绪感知功能,为用户提供情感支持和建议。 -
文化教育工具
作为传统文化和命理知识的学习平台。
未来改进方向
多模态支持:添加图片、语音输入输出
多语言扩展:支持更多语言版本
个性化学习:根据用户反馈优化回应风格
移动端适配:开发移动端应用
插件系统:支持第三方插件扩展功能
结语
这个命理大师Agent项目展示了现代AI技术与传统文化的有趣结合。通过LangChain的强大功能,我们不仅创建了一个智能对话系统,更赋予了它独特的个性和情感。项目的模块化设计和可扩展性为后续开发提供了坚实基础。
无论是作为技术探索还是实际应用,这个项目都为我们展示了AI在个性化服务领域的巨大潜力。随着技术的不断发展,相信这类智能Agent将在更多领域发挥重要作用。
更多推荐



所有评论(0)