คู่มือนี้จะแสดงขั้นตอนการใช้บัฟเฟอร์สรุปการสนทนาใน LangChain
จะใช้บัฟเฟอร์สรุปการสนทนาใน LangChain ได้อย่างไร
การสนทนาอาจประกอบด้วยข้อความหลายข้อความที่เหมือนกับการโต้ตอบระหว่างมนุษย์กับเครื่องจักร และบัฟเฟอร์สามารถจัดเก็บข้อความล่าสุดได้ ที่ สรุปการสนทนาBufferMemory ไลบรารีใช้เพื่อรวมทั้งสองแนวคิด เช่น การจัดเก็บข้อความล่าสุดและการแยกข้อมูลสรุป
หากต้องการเรียนรู้กระบวนการใช้บัฟเฟอร์สรุปการสนทนาใน LangChain เพียงทำตามคำแนะนำต่อไปนี้:
ขั้นตอนที่ 1: ติดตั้งโมดูล
ขั้นแรก ให้ติดตั้งโมดูล LangChain โดยใช้คำสั่ง pip เพื่อรับไลบรารีที่จำเป็น:
pip ติดตั้ง langchain
ติดตั้งโทเค็น tiktoken ซึ่งสามารถใช้เพื่อแยกเอกสารข้อความออกเป็นส่วนเล็กๆ:
pip ติดตั้ง tiktoken
หลังจากนั้น ให้ติดตั้งโมดูล OpenAI ที่สามารถใช้สร้างโมเดลภาษา เช่น LLM และเชน:
pip ติดตั้ง openai
ตอนนี้, ตั้งค่าสภาพแวดล้อม โดยรับคีย์ API จากบัญชี OpenAI และใช้ในโมเดล:
นำเข้า คุณนำเข้า รับผ่าน
คุณ . ประมาณ [ 'OPENAI_API_KEY' ] = รับผ่าน . รับผ่าน ( 'คีย์ OpenAI API:' )
ขั้นตอนที่ 2: การใช้บัฟเฟอร์สรุปการสนทนา
เริ่มกระบวนการใช้บัฟเฟอร์สรุปการสนทนาโดยการนำเข้าไลบรารีเพื่อสร้าง LLM โดยใช้เมธอด OpenAI():
จาก แลงเชน หน่วยความจำ นำเข้า สรุปการสนทนาBufferMemoryจาก แลงเชน llms นำเข้า OpenAI
llm = OpenAI ( )
สร้างหน่วยความจำโดยใช้เมธอด ConversationSummaryBufferMemory() แล้วเก็บการสนทนาไว้ในหน่วยความจำ:
หน่วยความจำ = สรุปการสนทนาBufferMemory ( llm = llm , max_token_limit = 10 )หน่วยความจำ. บันทึก_บริบท ( { 'ป้อนข้อมูล' : : 'สวัสดี' } , { 'เอาท์พุท' : : 'เป็นอย่างไรบ้าง' } )
หน่วยความจำ. บันทึก_บริบท ( { 'ป้อนข้อมูล' : : “ฉันสบายดี แล้วคุณล่ะ” } , { 'เอาท์พุท' : : 'ไม่มาก' } )
ตอนนี้รันหน่วยความจำโดยการเรียก load_memory_variables () วิธีการดึงข้อความจากหน่วยความจำ:
หน่วยความจำ. load_memory_variables ( { } )
ตอนนี้ ให้ใช้สรุปบัฟเฟอร์ของการสนทนาเพื่อกำหนดค่าบัฟเฟอร์โดยการจำกัดจำนวนข้อความที่จะจัดเก็บไว้ในบัฟเฟอร์ หลังจากนั้น ให้แยกข้อมูลสรุปของข้อความเหล่านี้ที่จัดเก็บไว้ในบัฟเฟอร์ แล้วเก็บการสนทนาไว้ในหน่วยความจำ:
หน่วยความจำ = สรุปการสนทนาBufferMemory (llm = llm , max_token_limit = 10 , return_messages = จริง
)
หน่วยความจำ. บันทึก_บริบท ( { 'ป้อนข้อมูล' : : 'สวัสดี' } , { 'เอาท์พุท' : : 'เป็นอย่างไรบ้าง' } )
หน่วยความจำ. บันทึก_บริบท ( { 'ป้อนข้อมูล' : : “ฉันสบายดี แล้วคุณล่ะ” } , { 'เอาท์พุท' : : 'ไม่มาก' } )
รับข้อมูลสรุปของข้อความก่อนหน้านี้ที่จัดเก็บไว้ในหน่วยความจำบัฟเฟอร์โดยใช้รหัสต่อไปนี้:
ข้อความ = หน่วยความจำ. chat_memory . ข้อความก่อนหน้า_สรุป = ''
หน่วยความจำ. คาดการณ์_ใหม่_สรุป ( ข้อความ , ก่อนหน้า_สรุป )
ขั้นตอนที่ 3: การใช้บัฟเฟอร์สรุปการสนทนาในห่วงโซ่
สร้างโซ่โดยใช้ ห่วงโซ่การสนทนา() วิธีการที่มีค่าสำหรับหน่วยความจำบัฟเฟอร์เพื่อจัดเก็บข้อความในนั้น:
จาก แลงเชน ห่วงโซ่ นำเข้า การสนทนาห่วงโซ่การสนทนา_กับ_สรุป = การสนทนาห่วงโซ่ (
llm = llm ,
หน่วยความจำ = สรุปการสนทนาBufferMemory ( llm = OpenAI ( ) , max_token_limit = 40 ) ,
รายละเอียด = จริง ,
)
การสนทนา_กับ_สรุป ทำนาย ( ป้อนข้อมูล = 'ว่าไงมีไร?' )
ป้อนข้อมูลในรูปแบบของข้อความโดยใช้วิธีการทำนาย () เพื่อรับบทสรุปของการสนทนา:
การสนทนา_กับ_สรุป ทำนาย ( ป้อนข้อมูล = “เพิ่งทำโครงการ NLP” )
ใช้เอาต์พุตจากโมเดลและเพิ่มข้อมูลเพิ่มเติมโดยใช้ข้อความในหน่วยความจำบัฟเฟอร์และแสดงข้อมูลสรุป:
การสนทนา_กับ_สรุป ทำนาย ( ป้อนข้อมูล = 'ใช่แล้ว! ฉันกำลังออกแบบ LLM' )
สรุปคือผลลัพธ์จะเข้าใจง่ายและเป็นมิตรกับมนุษย์มากขึ้น และเหมาะสำหรับแชทบอทมากกว่า:
การสนทนา_กับ_สรุป ทำนาย (ป้อนข้อมูล = 'ฉันต้องการใช้ LangChain! คุณเคยได้ยินเรื่องนี้ไหม'
)
นั่นคือทั้งหมดที่เกี่ยวกับการใช้บัฟเฟอร์สรุปการสนทนาใน LangChain
บทสรุป
หากต้องการใช้หน่วยความจำบัฟเฟอร์สรุปการสนทนาใน LangChain เพียงติดตั้งโมดูลหรือเฟรมเวิร์กเพื่อรับไลบรารีที่จำเป็น เมื่อนำเข้าไลบรารีแล้ว ให้สร้าง LLM หรือแชทบอทเพื่อใช้ฟังก์ชัน ConverstaionSummaryBufferMemory() เพื่อรับข้อมูลสรุปของการสนทนา หน่วยความจำบัฟเฟอร์ใช้เพื่อจำกัดจำนวนข้อความที่จัดเก็บไว้ในหน่วยความจำเพื่อใช้สำหรับการแยกข้อมูลสรุป โพสต์นี้ได้อธิบายอย่างละเอียดเกี่ยวกับกระบวนการใช้หน่วยความจำบัฟเฟอร์สรุปการสนทนาใน LangChain