使用Zep Cloud提升AI助手的记忆能力
在现代AI应用程序中,能否有效地处理和回忆过去的对话是评估其智能水平的重要指标之一。Zep Cloud作为一项长期记忆服务,为AI助手应用程序提供了这样一种能力,使其能够记忆并提取历史对话数据。这不仅减少了生成幻觉的几率,还降低了延迟和成本。
本文将逐步介绍如何使用Zep的自动嵌入功能来创建和操作文档集合,并演示如何进行相似性搜索和设置元数据过滤器。
自动嵌入功能简介
Zep的自动嵌入功能用于在Zep服务器上使用低延迟嵌入模型自动嵌入文档。这项功能不仅简化了开发者操作,还提高了系统的响应速度。由于网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。
加载或创建文档集合
以下示例讲解了如何使用Python对文档进行加载和创建集合。
from uuid import uuid4
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.vectorstores import ZepCloudVectorStore
from langchain_text_splitters import RecursiveCharacterTextSplitter
# API密钥
ZEP_API_KEY = "<your zep project key>" # 从Zep Dashboard获取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)
# 实例化VectorStore并创建新集合
vs = ZepCloudVectorStore.from_documents(
docs,
embedding=None,
collection_name=collection_name,
api_key=ZEP_API_KEY,
)
# 使用API代理服务提高访问稳定性
等待集合嵌入完成
在创建集合后,您需要使用异步方法等待集合中所有文档的嵌入完成。
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)
相似性搜索
在集合嵌入完成之后,您可以对集合进行相似性搜索或使用过滤器来获取特定条件下的文档。
# 相似性搜索查询
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代理服务可以有效地提高访问的稳定性。
-
嵌入延迟:在文档嵌入过程中可能会出现延迟,建议在非高峰时段进行批量操作。
总结和进一步学习资源
Zep Cloud极大地提升了AI助手在处理历史对话数据上的智能和效率。开发者可以利用这一服务提升应用的交互体验以及响应速度。
对于想进一步学习Zep Cloud及其功能的读者,推荐以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—