iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
AI & Data

關於我轉生變成AI詠唱師這檔事系列 第 26

魔法的緩衝:LangChain的SummaryBuffer與TokenBuffer

  • 分享至 

  • xImage
  •  

在這個充滿魔法的異世界中,我發現了LangChain的另一個強大功能,它可以幫助我更好地管理和使用魔法的記憶。這次,我要介紹的是LangChain的「SummaryBuffer」和「TokenBuffer」。

SummaryBuffer

SummaryBuffer是一種特殊的魔法記憶,它可以幫助我們保存對話的摘要。與一般的對話摘要不同,SummaryBuffer可以在每次對話後自動更新,這樣我們就可以隨時獲得最新的對話摘要。這對於長時間的對話或需要隨時回顧對話的情境非常有用。

例如,當我與一個生物進行對話時,我可以使用SummaryBuffer來保存對話的摘要,這樣即使對話很長,我也可以快速地回顧對話的主要內容。

from langchain.memory import SummaryBuffer

# 創建一個SummaryBuffer
buffer = SummaryBuffer()

# 添加對話到SummaryBuffer
buffer.add_message("user", "How are you?")
buffer.add_message("assistant", "I'm good, thanks for asking!")

# 獲取對話摘要
summary = buffer.get_summary()
print(summary)  # Output: "User asked about the assistant's well-being. Assistant replied positively."

TokenBuffer

TokenBuffer是另一種特殊的魔法記憶,它可以幫助我們管理和使用魔法的令牌。在這個異世界中,令牌是使用魔法的基本單位,每次使用魔法都需要消耗一定數量的令牌。TokenBuffer可以幫助我們保存和管理這些令牌,確保我們在使用魔法時不會超出令牌的限制。

例如,當我使用一個強大的魔法時,我可以使用TokenBuffer來確保我有足夠的令牌來施放這個魔法。這樣我就不用擔心因為令牌不足而無法施放魔法。

from langchain.memory import TokenBuffer

# 創建一個TokenBuffer
buffer = TokenBuffer()

# 添加令牌到TokenBuffer
buffer.add_tokens(50)

# 檢查TokenBuffer中的令牌數量
tokens_available = buffer.get_tokens()
print(tokens_available)  # Output: 50

# 使用令牌
buffer.use_tokens(20)

# 檢查剩餘的令牌數量
tokens_left = buffer.get_tokens()
print(tokens_left)  # Output: 30

總之,LangChain的SummaryBuffer和TokenBuffer為我提供了強大的工具,可以幫助我更好地管理和使用魔法的記憶。這些工具不僅使我在這個異世界中的冒險更加順利,還讓我對魔法有了更深入的了解。我期待在未來的冒險中繼續探索這些魔法的可能性。


上一篇
魔法的記憶:LangChain的對話摘要
下一篇
探索LangChain的VectorStore Retriever Memory
系列文
關於我轉生變成AI詠唱師這檔事31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言