精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

拆解 LangChain 的大模型記憶方案

人工智能
本文主要聊了安裝記憶的基本原理、快速給LLM安裝記憶、ConversationBufferMemory、MessagesPlaceholder的使用、對話鏈ConversationChain的使用和原理。

之前我們聊過如何使用LangChain給LLM(大模型)裝上記憶,里面提到對話鏈ConversationChain和MessagesPlaceholder,可以簡化安裝記憶的流程。下文來拆解基于LangChain的大模型記憶方案。

1. 安裝記憶的原理

(1) 核心步驟

給LLM安裝記憶的核心步驟就3個:

  • 在對話之前調取之前的歷史消息。
  • 將歷史消息填充到Prompt里。
  • 對話結束后,繼續將歷史消息保存到到memory記憶中。

(2) 常規使用方法的弊端

了解這3個核心步驟后,在開發過程中,就需要手動寫代碼實現這3步,這也比較麻煩,不僅代碼冗余,而且容易遺漏這些模板代碼。

為了讓開發者聚焦于業務實現,LangChain貼心地封裝了這一整套實現。使用方式如下。

2. 記憶的種類

記憶分為 短時記憶 和 長時記憶。

在LangChain中使用ConversationBufferMemory作為短時記憶的組件,實際上就是以鍵值對的方式將消息存在內存中。

如果碰到較長的對話,一般使用ConversationSummaryMemory對上下文進行總結,再交給大模型。或者使用ConversationTokenBufferMemory基于固定的token數量進行內存刷新。

如果想對記憶進行長時間的存儲,則可以使用向量數據庫進行存儲(比如FAISS、Chroma等),或者存儲到Redis、Elasticsearch中。

下面以ConversationBufferMemory為例,對如何快速安裝記憶做個實踐。

3. 給LLM安裝記憶 — 非MessagesPlaceholder

(1)ConversationBufferMemory使用示例

使用ConversationBufferMemory進行記住上下文:

memory = ConversationBufferMemory()
memory.save_context(
    {"input": "你好,我的名字是半支煙,我是一個程序員"}, {"output": "你好,半支煙"}
)
memory.load_memory_variables({})

(2)LLMChain+ConversationBufferMemory使用示例

# prompt模板
template = """
你是一個對話機器人,以下<history>標簽中是AI與人類的歷史對話記錄,請你參考歷史上下文,回答用戶輸入的問題。

歷史對話:
<history>
{customize_chat_history}
</history>

人類:{human_input}
機器人:

"""

prompt = PromptTemplate(
    template=template,
    input_variables=["customize_chat_history", "human_input"],
)
memory = ConversationBufferMemory(
    memory_key="customize_chat_history",
)
model = ChatOpenAI(
    model="gpt-3.5-turbo",
)

chain = LLMChain(
    llm=model,
    memory=memory,
    prompt=prompt,
    verbose=True,
)

chain.predict(human_input="你知道我的名字嗎?")

# chain.predict(human_input="我叫半支煙,我是一名程序員")

# chain.predict(human_input="你知道我的名字嗎?")

此時,已經給LLM安裝上記憶了,免去了我們寫那3步核心的模板代碼。

對于PromptTemplate使用以上方式,但ChatPromptTemplate因為有多角色,所以需要使用MessagesPlaceholder。具體使用方式如下。

4. 給LLM安裝記憶 — MessagesPlaceholder

MessagesPlaceholder主要就是用于ChatPromptTemplate場景。ChatPromptTemplate模式下,需要有固定的格式。

(1) PromptTemplate和ChatPromptTemplate區別

ChatPromptTemplate主要用于聊天場景。ChatPromptTemplate有多角色,第一個是System角色,后續的是Human與AI角色。因為需要有記憶,所以之前的歷史消息要放在最新問題的上方。

(2) 使用MessagesPlaceholder安裝

最終的ChatPromptTemplate + MessagesPlaceholder代碼如下:

chat_prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "你是一個樂于助人的助手。"),
        MessagesPlaceholder(variable_name="customize_chat_history"),
        ("human", "{human_input}"),
    ]
)

memory = ConversationBufferMemory(
    memory_key="customize_chat_history",
    return_messages=True,
)
model = ChatOpenAI(
    model="gpt-3.5-turbo",
)

chain = LLMChain(
    llm=model,
    memory=memory,
    prompt=chat_prompt,
    verbose=True,
)

chain.predict(human_input="你好,我叫半支煙,我是一名程序員。")

至此,我們使用了ChatPromptTemplate簡化了構建prompt的過程。

5.使用對話鏈ConversationChain

如果連ChatPromptTemplate都懶得寫了,那直接使用對話鏈ConversationChain,讓一切變得更簡單。實踐代碼如下:

memory = ConversationBufferMemory(
    memory_key="history",  # 此處的占位符必須是history
    return_messages=True,
)
model = ChatOpenAI(
    model="gpt-3.5-turbo",
)

chain = ConversationChain(
    llm=model,
    memory=memory,
    verbose=True,
)

chain.predict(input="你好,我叫半支煙,我是一名程序員。")  # 此處的變量必須是input

ConversationChain提供了包含AI角色和人類角色的對話摘要格式。ConversationChain實際上是對Memory和LLMChain和ChatPrompt進行了封裝,簡化了初始化Memory和構建ChatPromptTemplate的步驟。

6. ConversationBufferMemory

(1) memory_key

ConversationBufferMemory有一個入參是memory_key,表示內存中存儲的本輪對話的鍵,后續可以根據鍵找到對應的值。

(2) 使用"chat_history"還是"history"

ConversationBufferMemory的memory_key,有些資料里是設置是memory_key="history",有些資料里是"chat_history"。

這里有2個規則,如下:

  • 在使用MessagesPlaceholder和ConversationBufferMemory時,MessagesPlaceholder的variable_name和ConversationBufferMemory的memory_key可以自定義,只要相同就可以。比如這樣:
chat_prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "你是一個樂于助人的助手。"),
        MessagesPlaceholder(variable_name="customize_chat_history"),
        ("human", "{input}"),
    ]
)

memory = ConversationBufferMemory(
    memory_key="customize_chat_history",  # 此處的占位符可以是自定義
    return_messages=True,
)
model = ChatOpenAI(
    model="gpt-3.5-turbo",
)

chain = ConversationChain(
    llm=model,
    memory=memory,
    prompt=chat_prompt,
    verbose=True,
)

chain.predict(input="你好,我叫半支煙,我是一名程序員。")  # 此處的變量必須是input
  • 如果只是使用ConversationChain,又沒有使用MessagesPlaceholder的場景下,ConversationBufferMemory的memory_key,必須用history。

7. MessagesPlaceholder的使用場景

MessagesPlaceholder其實就是在與AI對話過程中的Prompt的一部分,它代表Prompt中的歷史消息這部分。它提供了一種結構化和可配置的方式來處理這些消息列表,使得在構建復雜Prompt時更加靈活和高效。

說白了它就是個占位符,相當于把從memory讀取的歷史消息插入到這個占位符里了。

比如這樣,就可以表示之前的歷史對話消息:

chat_prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "你是一個樂于助人的助手。"),
        MessagesPlaceholder(variable_name="customize_chat_history"),
        ("human", "{human_input}"),
    ]
)

是否需要使用MessagesPlaceholder,記住2個原則:

  • PromptTemplate類型的模板,無需使用MessagesPlaceholder
  • ChatPromptTemplate 類型的聊天模板,需要使用MessagesPlaceholder。但是在使用ConversationChain時,可以省去創建ChatPromptTemplate的過程(也可以不省去)。省去和不省去在輸出過程中有些區別,如下:

總結

本文主要聊了安裝記憶的基本原理、快速給LLM安裝記憶、ConversationBufferMemory、MessagesPlaceholder的使用、對話鏈ConversationChain的使用和原理。希望對你有幫助!

責任編輯:趙寧寧 來源: 程序員半支煙
相關推薦

2024-07-12 14:07:04

2023-09-20 08:00:00

大語言模型代碼庫

2024-07-15 08:31:19

2025-07-28 07:42:08

2024-06-12 08:30:34

2025-11-04 07:15:00

LangChain大模型AI

2025-08-04 02:45:00

2025-06-03 08:32:00

2025-09-02 03:00:00

2025-11-04 09:16:14

2024-07-12 11:35:20

2023-05-19 15:58:52

2023-12-01 14:34:42

AnthropicAILLM

2023-06-20 13:44:49

清華推理

2025-06-05 00:00:00

向量數據庫線程安全Redis

2023-07-13 11:03:12

2025-04-24 11:09:13

2025-01-06 07:00:00

大模型人工智能LLM

2025-07-21 09:09:00

2025-08-18 09:15:00

點贊
收藏

51CTO技術棧公眾號

亚洲一级电影视频| 精品伊人久久久久7777人| 亚洲国产日韩欧美在线99| 男人揉女人奶房视频60分 | 久久人妻无码aⅴ毛片a片app| 国产色99精品9i| 偷偷要91色婷婷| 亚洲电影网站| 天天操天天插天天射| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩成人精品| 久久精品国产亚洲AV成人婷婷| 国产成人一二| 欧美精品久久久久久久多人混战 | 九色porny丨国产首页在线| 国产精品萝li| 欧美精品国产精品久久久| 国产人妻精品一区二区三| 亚洲综合激情| 九九久久久久99精品| 日本爱爱爱视频| 都市激情久久| 日韩色视频在线观看| 成人三级视频在线播放| 黑人极品ⅴideos精品欧美棵| 国产欧美1区2区3区| 精品久久蜜桃| 国产成人精品一区二区无码呦| 久久久久国产一区二区| 欧美激情视频免费观看| 日本二区三区视频| 成人影视亚洲图片在线| 亚洲欧美一区二区三区四区 | 欧美国产精品一区二区| 久久波多野结衣| 亚洲男人第一天堂| 国产精品亚洲人在线观看| 国产精品久久久久久久久久久久久久 | 色哟哟免费视频| 欧美一级做a| 在线观看国产日韩| 日韩无套无码精品| 中文字幕21页在线看| 亚洲第一福利视频在线| 黄色特一级视频| av中文字幕在线播放| 国产天堂av在线| 五月天丁香视频| 国产一区不卡视频| 国产综合福利在线| 懂色av蜜臀av粉嫩av喷吹| 国产日韩精品视频一区二区三区 | 三级影片在线观看欧美日韩一区二区| 欧美精品成人在线| 精品处破女学生| 综合天天久久| 久久69精品久久久久久久电影好| 特一级黄色录像| 亚洲在线久久| 欧美成人午夜免费视在线看片 | 国产高清自拍视频在线观看| 久久精品无码一区二区三区| 日本不卡在线观看| xxxx国产视频| 欧美一乱一性一交一视频| 国产激情视频一区二区三区欧美 | 成人影院www在线观看| jizz性欧美23| 日韩欧美一级片| 91视频免费入口| 中文字幕久久精品一区二区| 欧美成人伊人久久综合网| 深夜福利网站在线观看| 超碰成人福利| 国产偷国产偷亚洲清高网站| 人人妻人人澡人人爽| 久久影院100000精品| 久久婷婷国产麻豆91天堂| 欧美人妻精品一区二区三区| 红桃视频亚洲| 国产99久久精品一区二区 夜夜躁日日躁 | 日韩欧美大片在线观看| 99热这里只有成人精品国产| 欧美性受xxxx黑人猛交| 伊人精品一区二区三区| 国产一区二区美女| 狠狠色伊人亚洲综合网站色| 国产1区2区3区在线| 亚洲欧洲日本在线| 拔插拔插海外华人免费| 免费成人美女女| 9191国产精品| 成人免费无码大片a毛片| 国产成人久久| 久久91精品国产91久久跳| 中国一级免费毛片| 精品在线播放免费| 久久99国产精品| 色影视在线观看| 亚洲动漫第一页| 一区二区三区免费播放| av毛片精品| 这里只有精品视频| 99精品视频99| 亚洲精品午夜国产va久久成人| 999精品在线观看| 久久久久久人妻一区二区三区| 天堂av最新在线| 色哦色哦哦色天天综合| 欧美日韩久久婷婷| 天天躁日日躁狠狠躁欧美| 久久久91精品国产| 日本视频免费观看| 成人一区二区三区| 一本一道久久a久久综合精品| av中文字幕电影在线看| 91麻豆精品国产91久久久久| xxx在线播放| 国语自产精品视频在线看8查询8| 国产精品嫩草视频| 日本天堂影院在线视频| 夜夜嗨av一区二区三区中文字幕| 亚洲精品一二三四五区| 国产精品tv| 精品国产一区二区三区久久狼黑人| 日韩精品在线免费视频| 国产精品亚洲一区二区三区妖精| 亚洲欧美中文在线视频| 国产精品偷伦视频免费观看了 | 日韩欧美一级片| 国产午夜精品福利视频| 久久av一区| 国内精品二区| av第一福利在线导航| 91精品国产综合久久婷婷香蕉 | 日本高清视频精品| 不卡的日韩av| 亚洲欧美日韩国产另类专区| 中文久久久久久| 国产一区二区欧美| 国产成人精品视频在线| 人成在线免费视频| 你懂的在线观看视频网站| 欧美卡一卡二| 午夜激情一区二区三区| 少妇熟女视频一区二区三区 | 国产成人在线视频网站| 免费成人深夜夜行网站视频| 亚洲免费资源| 中文字幕欧美日韩一区| 亚洲高清不卡一区| 九色成人搞黄网站| 中文字幕亚洲欧美| 亚洲一区 中文字幕| 国产清纯白嫩初高生在线观看91| 亚洲午夜精品久久久久久人妖| 国产一区二区三区不卡av| 国模吧一区二区三区| 人成网站在线观看| 图片区小说区区亚洲影院| 中国xxxx性xxxx产国| 国产视频一区三区| 久久精品日韩| 欧美色片在线观看| 日韩中文字幕在线看| 国产免费福利视频| 亚洲综合久久久| 大黑人交xxx极品hd| 久久久久久一区二区| 日韩欧美在线电影| 国产精品亚洲欧美一级在线| 欧美精品一区三区| 五月天激情开心网| 在线亚洲一区二区| 污软件在线观看| 成人性视频免费网站| 国产日产欧美视频| 日韩理论在线| av资源站久久亚洲| 午夜影院一区| 北条麻妃一区二区三区中文字幕 | 三级在线观看视频| 在线观看国产欧美| 国产成人无码www免费视频播放| 欧美日韩国内自拍| 肉色超薄丝袜脚交69xx图片 | 国产精品毛片一区二区三区| 日韩高清在线播放| 亚洲国产精品免费视频| 黄网站色欧美视频| 亚洲男帅同性gay1069| 影音先锋男人的网站| av动漫精品一区二区| 国产成人精品电影久久久| 精品麻豆一区二区三区| 日韩成人av在线播放| 亚洲天堂中文网| 精品国产91久久久久久| 少妇高潮惨叫久久久久| 天堂国产一区二区三区| 国产免费福利视频| 东方欧美亚洲色图在线| 久久人妻精品白浆国产| 中文字幕一区二区三区乱码图片| 久久精品欧美| 亚洲性视频在线| 国产精品免费一区豆花| 玖玖在线播放| 91麻豆精品国产91久久久资源速度| 亚洲欧美视频二区| 国产色综合网| 欧美另类videosbestsex日本| 国产探花一区在线观看| 国产日韩亚洲精品| 欧美亚洲福利| 国产999精品视频| 岛国av在线网站| 久久久精品一区二区三区| 国产一级片在线| 亚洲电影中文字幕| 精品人妻无码一区二区 | 精品人妻一区二区三区潮喷在线 | 久久久久久久久久久影院| 亚洲美女区一区| 欧美另类69xxxx| 久久久精品免费观看| 国产在线观看免费播放| 国精产品一区一区三区mba桃花 | 中文字幕亚洲第一| 国产黄色片在线播放| 亚洲欧美日韩国产中文| 午夜激情小视频| 日韩电影免费观看中文字幕| 国精产品一品二品国精品69xx| 在线综合视频播放| 国产视频手机在线| 欧美丰满高潮xxxx喷水动漫| 中文在线观看免费高清| 欧亚洲嫩模精品一区三区| 无码人妻丰满熟妇奶水区码| 欧美日韩中文字幕在线| 精品91久久久| 黑人巨大精品欧美一区免费视频| 97人人澡人人爽人人模亚洲 | 国产精品视频一区在线观看| 亚洲二区视频在线| 国产午夜久久久| 日韩精品二区| 一区二区三区国产豹纹内裤在线| 人妻无码一区二区三区| 91亚洲资源网| 亚洲第一香蕉网| 国产亚洲精品aa午夜观看| 在线观看免费小视频| 国产欧美日本一区视频| 亚洲av毛片基地| 国产精品日韩成人| 国产乱子轮xxx农村| 久久视频国产| 久久9热精品视频| 麻豆久久久9性大片| 啪啪激情综合网| 欧美aaaaa喷水| 国产欧美高清视频在线| 亚洲一区二区不卡视频| 91精品高清| 日本丰满少妇xxxx| 久久综合九色| 国产美女18xxxx免费视频| 九色成人搞黄网站| 久久精品国产久精国产思思| h片在线免费| 久久男人的天堂| 在线免费日韩片| 国产免费一区二区三区香蕉精| 综合久久av| 激情伦成人综合小说| 免费视频亚洲| 中文字幕在线乱| 亚洲毛片播放| 九九热精品在线播放| 国产成人亚洲综合a∨婷婷图片| 五月天激情小说| 国产欧美精品一区二区色综合 | 一区二区三区精品| 日韩激情在线播放| 欧美喷水一区二区| 黄色av小说在线观看| 一本大道久久加勒比香蕉 | 57pao成人国产永久免费| 久久免费资源| 精品999在线观看| 久久中文字幕av| 春日野结衣av| 国产一本一道久久香蕉| brazzers精品成人一区| 亚洲免费观看高清完整版在线观看| 精品成人久久久| 91精品在线免费观看| 男女av在线| 欧美激情一级精品国产| 久久久久久久性潮| 九色综合日本| 欧美精品三级| 日本xxxx黄色| 97久久精品人人做人人爽50路| 91制片厂在线| 日本高清不卡视频| 国产77777| 久久影院免费观看| 国产精品极品美女在线观看| 国产一区二区三区高清| 一区二区中文| 亚洲黄色av片| 国产婷婷色一区二区三区| 国产成人无码精品| 精品久久久久久无| 神宫寺奈绪一区二区三区| 美女精品导航| 国产精品素人视频| 国产精品精品软件男同| 一本色道久久综合狠狠躁的推荐| 亚洲av综合色区无码一二三区| 中文字幕久久久av一区| 毛片在线网站| 狠狠色伊人亚洲综合网站色| 午夜国产精品视频免费体验区| 亚洲xxx在线观看| 欧美国产乱子伦| 亚洲国产综合视频| 免费大片黄在线| 青娱乐精品视频在线| 无码人妻丰满熟妇区毛片| 99国产精品99久久久久久| 欧美黄片一区二区三区| 制服丝袜亚洲精品中文字幕| 91涩漫在线观看| 国产精品大陆在线观看| 欧美美女在线| www日韩在线观看| 国产性做久久久久久| 国产视频精品免费| 青青草97国产精品免费观看 | 伦理中文字幕亚洲| 91精品亚洲一区在线观看| 伊甸园精品99久久久久久| 狠狠色丁香婷婷综合| 少妇高潮在线观看| 日韩午夜精品电影| 欧美日韩经典丝袜| 国内精品视频在线播放| 野花国产精品入口| 9.1成人看片免费版| 在线视频中文字幕一区二区| 国产在线观看免费| 国产日韩欧美中文在线播放| 久久影视一区| 国产资源中文字幕| 亚洲综合成人在线| 亚洲 小说区 图片区 都市| 日韩美女免费线视频| 爽成人777777婷婷| wwwxxx色| 高跟丝袜欧美一区| 日本在线免费| 成人黄视频免费| 国产精品夜夜夜| 国产午夜精品福利视频| 日韩一区二区三区免费看| 99热99re6国产在线播放| 免费av在线一区二区| 美女视频一区二区三区| 欧美黄色免费在线观看| 亚洲国产精品热久久| 视频在线日韩| 久久久成人精品一区二区三区| 成人av电影在线播放| 日韩免费av网站| 久久影视电视剧免费网站| 日韩欧美ww| 亚洲精品性视频| 亚洲a一区二区| 1024国产在线| 国产不卡一区二区在线观看| 久久九九99| 久草免费在线观看视频| 亚洲视频在线看| 日韩精品一区国产| 国产三级三级三级看三级| 亚洲精品日韩一| 男同在线观看| 99热在线播放| 日本特黄久久久高潮| 久草视频手机在线观看| 国产一区二区三区在线观看视频| 亚洲1区在线| 免费一级特黄录像| 国产一区二区三区四区五区入口| 91综合免费在线| 免费观看成年人视频|