Zep - 一个为大模型/聊天应用程序提供长期存储的项目

大家好,又见面了,我是 GitHub 精选君!

背景介绍

在构建LLM / Chatbot应用程序时,我们需要一个长期存储的解决方案,以便存储相关文档、聊天历史记录和丰富的用户数据,以便在应用程序的提示中使用。然而,当前市场上的解决方案大多数都是基于内存的,无法满足长期存储的需求,因此Zep 项目应运而生。

Zep 在 GitHub 有 1k 左右 Star,用一句话介绍该项目就是:“Zep: A long-term memory store for LLM / Chatbot applications”。

项目介绍

Zep 是一个为 LLM 应用程序设计的长期存储解决方案,它不仅可以存储文本和嵌入式信息,还可以存储聊天消息、角色和用户元数据。Zep 还提供了向量数据库和混合搜索功能,可以快速检索相关文档和聊天历史记录。此外,Zep 还提供了嵌入式和丰富功能,可以自动嵌入文本和消息,并使用先进的开源模型、OpenAI 或自定义向量进行丰富。Zep 还支持 Python 和TypeScript / JS SDK,可以轻松集成到您的LLM应用程序中。

如何使用

您可以通过Docker或云部署来快速启动Zep,并使用 Python和TypeScript / JS SDK进行集成。Zep还提供了丰富的API和示例代码,以帮助您更好地了解如何使用Zep。

以下是两个 Python 的使用示例。

1、embedding 向量搜素

# Search by embedding vector, rather than text query
# embedding is a list of floats
results = collection.search(
    embedding=embedding, limit=5
)

2、将聊天历史进行持久化

session_id = "2a2a2a" 

history = [
     { role: "human", content: "Who was Octavia Butler?" },
     {
        role: "ai",
        content:
           "Octavia Estelle Butler (June 22, 1947 – February 24, 2006) was an American" +
           " science fiction author.",
     },
     {
        role: "human",
        content: "Which books of hers were made into movies?",
        metadata={"foo": "bar"},
     }
]


 messages = [Message(role=m.role, content=m.content) for m in history]
 memory = Memory(messages=messages)
 result = await client.aadd_memory(session_id, memory)

以下是该项目 Star 趋势图(代表项目的活跃程度):

更多项目详情请查看如下链接。

开源项目地址:https://github.com/getzep/zep

开源项目作者:getzep

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on August 18, 2023