คู่มือนี้จะแสดงกระบวนการใช้หน่วยความจำเอนทิตีใน LangChain
จะใช้หน่วยความจำเอนทิตีใน LangChain ได้อย่างไร
เอนทิตีถูกใช้เพื่อเก็บข้อเท็จจริงที่สำคัญไว้ในหน่วยความจำเพื่อแยกออกมาเมื่อมนุษย์ถามโดยใช้คำสั่ง/ข้อความแจ้ง หากต้องการเรียนรู้กระบวนการใช้หน่วยความจำเอนทิตีใน LangChain เพียงไปที่คำแนะนำต่อไปนี้:
ขั้นตอนที่ 1: ติดตั้งโมดูล
ขั้นแรก ให้ติดตั้งโมดูล LangChain โดยใช้คำสั่ง pip เพื่อรับการขึ้นต่อกัน:
pip ติดตั้ง langchain
หลังจากนั้น ให้ติดตั้งโมดูล OpenAI เพื่อรับไลบรารีสำหรับการสร้าง LLM และโมเดลการแชท:
pip ติดตั้ง openai
ตั้งค่าสภาพแวดล้อม OpenAI โดยใช้คีย์ API ซึ่งสามารถแยกได้จากบัญชี OpenAI:
นำเข้า คุณ
นำเข้า รับผ่าน
คุณ . ประมาณ [ 'OPENAI_API_KEY' ] = รับผ่าน . รับผ่าน ( 'คีย์ OpenAI API:' )
ขั้นตอนที่ 2: การใช้หน่วยความจำเอนทิตี
หากต้องการใช้หน่วยความจำเอนทิตี ให้นำเข้าไลบรารีที่จำเป็นเพื่อสร้าง LLM โดยใช้เมธอด OpenAI():
จาก แลงเชน llms นำเข้า OpenAIจาก แลงเชน หน่วยความจำ นำเข้า ConversationEntityMemory
llm = OpenAI ( อุณหภูมิ = 0 )
หลังจากนั้นให้กำหนด หน่วยความจำ ตัวแปรโดยใช้เมธอด ConversationEntityMemory() เพื่อฝึกโมเดลโดยใช้ตัวแปรอินพุตและเอาต์พุต:
หน่วยความจำ = ConversationEntityMemory ( llm = llm )_ป้อนข้อมูล = { 'ป้อนข้อมูล' : : “Joe are Root กำลังทำโปรเจ็กต์อยู่” }
หน่วยความจำ. load_memory_variables ( _ป้อนข้อมูล )
หน่วยความจำ. บันทึก_บริบท (
_ป้อนข้อมูล ,
{ 'เอาท์พุท' : : 'เยี่ยมมาก! เป็นโครงการประเภทไหน?' }
)
ตอนนี้ ทดสอบหน่วยความจำโดยใช้แบบสอบถาม/พร้อมท์ในไฟล์ ป้อนข้อมูล ตัวแปรโดยการเรียกเมธอด load_memory_variables():
หน่วยความจำ. load_memory_variables ( { 'ป้อนข้อมูล' : : 'รูตคือใคร' } )
ตอนนี้ ให้ข้อมูลเพิ่มเติมเพื่อให้โมเดลสามารถเพิ่มเอนทิตีเพิ่มเติมในหน่วยความจำได้:
หน่วยความจำ = ConversationEntityMemory ( llm = llm , return_messages = จริง )_ป้อนข้อมูล = { 'ป้อนข้อมูล' : : “Joe are Root กำลังทำโปรเจ็กต์อยู่” }
หน่วยความจำ. load_memory_variables ( _ป้อนข้อมูล )
หน่วยความจำ. บันทึก_บริบท (
_ป้อนข้อมูล ,
{ 'เอาท์พุท' : : “เยี่ยมเลย! โปรเจ็กต์แบบไหนล่ะ” }
)
รันโค้ดต่อไปนี้เพื่อรับเอาต์พุตโดยใช้เอนทิตีที่จัดเก็บไว้ในหน่วยความจำ เป็นไปได้โดยผ่าน. ป้อนข้อมูล มีข้อความแจ้ง:
หน่วยความจำ. load_memory_variables ( { 'ป้อนข้อมูล' : : 'โจคือใคร' } )
ขั้นตอนที่ 3: การใช้หน่วยความจำเอนทิตีในห่วงโซ่
หากต้องการใช้หน่วยความจำเอนทิตีหลังจากสร้างห่วงโซ่ เพียงนำเข้าไลบรารีที่จำเป็นโดยใช้บล็อกโค้ดต่อไปนี้:
จาก แลงเชน ห่วงโซ่ นำเข้า การสนทนาห่วงโซ่จาก แลงเชน หน่วยความจำ นำเข้า ConversationEntityMemory
จาก แลงเชน หน่วยความจำ . พร้อมท์ นำเข้า ENTITY_MEMORY_CONVERSATION_TEMPLATE
จาก ขี้อาย นำเข้า BaseModel
จาก กำลังพิมพ์ นำเข้า รายการ , คำพูด , ใดๆ
สร้างโมเดลการสนทนาโดยใช้เมธอด ConversationChain() โดยใช้อาร์กิวเมนต์ เช่น llm:
การสนทนา = การสนทนาห่วงโซ่ (llm = llm ,
รายละเอียด = จริง ,
พร้อมท์ = ENTITY_MEMORY_CONVERSATION_TEMPLATE ,
หน่วยความจำ = ConversationEntityMemory ( llm = llm )
)
เรียกเมธอด Conversation.predict() ด้วยอินพุตที่เตรียมใช้งานด้วยพรอมต์หรือแบบสอบถาม:
การสนทนา. ทำนาย ( ป้อนข้อมูล = “Joe are Root กำลังทำโปรเจ็กต์อยู่” )
ตอนนี้ รับเอาต์พุตแยกต่างหากสำหรับแต่ละเอนทิตีที่อธิบายข้อมูลเกี่ยวกับมัน:
การสนทนา. หน่วยความจำ . เอนทิตี_สโตร์ . เก็บ
ใช้เอาต์พุตจากแบบจำลองเพื่อให้อินพุตเพื่อให้แบบจำลองสามารถจัดเก็บข้อมูลเพิ่มเติมเกี่ยวกับเอนทิตีเหล่านี้:
การสนทนา. ทำนาย ( ป้อนข้อมูล = 'พวกเขากำลังพยายามเพิ่มโครงสร้างหน่วยความจำที่ซับซ้อนมากขึ้นให้กับ Langchain' )
หลังจากให้ข้อมูลที่ถูกเก็บไว้ในหน่วยความจำแล้ว เพียงถามคำถามเพื่อดึงข้อมูลเฉพาะเกี่ยวกับเอนทิตี:
การสนทนา. ทำนาย ( ป้อนข้อมูล = “คุณรู้อะไรเกี่ยวกับโจและรูทบ้าง” )
ขั้นตอนที่ 4: การทดสอบที่เก็บหน่วยความจำ
ผู้ใช้สามารถตรวจสอบที่เก็บหน่วยความจำได้โดยตรงเพื่อรับข้อมูลที่จัดเก็บไว้ในนั้นโดยใช้รหัสต่อไปนี้:
จาก พิมพ์ นำเข้า พิมพ์พิมพ์ ( การสนทนา. หน่วยความจำ . เอนทิตี_สโตร์ . เก็บ )
ให้ข้อมูลเพิ่มเติมเพื่อเก็บไว้ในหน่วยความจำเนื่องจากข้อมูลเพิ่มเติมจะให้ผลลัพธ์ที่แม่นยำยิ่งขึ้น:
การสนทนา. ทำนาย ( ป้อนข้อมูล = 'Root ได้ก่อตั้งธุรกิจชื่อ HJRS' )
แยกข้อมูลจากที่เก็บหน่วยความจำหลังจากเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับเอนทิตี:
จาก พิมพ์ นำเข้า พิมพ์พิมพ์ ( การสนทนา. หน่วยความจำ . เอนทิตี_สโตร์ . เก็บ )
หน่วยความจำมีข้อมูลเกี่ยวกับหลายเอนทิตีเช่น HJRS, Joe, LangChain และ Root:
ตอนนี้แยกข้อมูลเกี่ยวกับเอนทิตีเฉพาะโดยใช้แบบสอบถามหรือพร้อมท์ที่กำหนดไว้ในตัวแปรอินพุต:
การสนทนา. ทำนาย ( ป้อนข้อมูล = “คุณรู้อะไรเกี่ยวกับรูท” )
นั่นคือทั้งหมดที่เกี่ยวกับการใช้หน่วยความจำเอนทิตีโดยใช้กรอบงาน LangChain
บทสรุป
หากต้องการใช้หน่วยความจำเอนทิตีใน LangChain เพียงติดตั้งโมดูลที่จำเป็นเพื่อนำเข้าไลบรารีที่จำเป็นในการสร้างโมเดลหลังจากตั้งค่าสภาพแวดล้อม OpenAI หลังจากนั้น ให้สร้างแบบจำลอง LLM และจัดเก็บเอนทิตีในหน่วยความจำโดยการให้ข้อมูลเกี่ยวกับเอนทิตี ผู้ใช้ยังสามารถดึงข้อมูลโดยใช้เอนทิตีเหล่านี้และสร้างความทรงจำเหล่านี้ในห่วงโซ่ที่มีข้อมูลที่กวนเกี่ยวกับเอนทิตี โพสต์นี้ได้อธิบายรายละเอียดเกี่ยวกับกระบวนการใช้หน่วยความจำเอนทิตีใน LangChain