引言

在当今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流式对话

实际应用场景

  1. 在线命理咨询
    为用户提供个性化的命理咨询服务,结合专业知识库给出准确建议。

  2. 情绪支持系统
    通过情绪感知功能,为用户提供情感支持和建议。

  3. 文化教育工具
    作为传统文化和命理知识的学习平台。

未来改进方向

多模态支持:添加图片、语音输入输出

多语言扩展:支持更多语言版本

个性化学习:根据用户反馈优化回应风格

移动端适配:开发移动端应用

插件系统:支持第三方插件扩展功能

结语

这个命理大师Agent项目展示了现代AI技术与传统文化的有趣结合。通过LangChain的强大功能,我们不仅创建了一个智能对话系统,更赋予了它独特的个性和情感。项目的模块化设计和可扩展性为后续开发提供了坚实基础。

无论是作为技术探索还是实际应用,这个项目都为我们展示了AI在个性化服务领域的巨大潜力。随着技术的不断发展,相信这类智能Agent将在更多领域发挥重要作用。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐