จะใช้หน่วยความจำเอนทิตีใน LangChain ได้อย่างไร

Ca Chi Hnwy Khwam Ca Xe Nthi Ti Ni Langchain Di Xyangri



LangChain เป็นโมดูลที่ช่วยให้สามารถสร้างแบบจำลองที่สามารถประมวลผลภาษาธรรมชาติ ซึ่งเป็นภาษาที่มนุษย์ใช้ในการสื่อสาร LangChain มีโมดูลและการพึ่งพาที่จำเป็นทั้งหมดที่สามารถใช้ในการสร้างโมเดลภาษาขนาดใหญ่หรือแชทบอทได้ โมเดลเหล่านี้จำเป็นต้องได้รับการฝึกอบรมเพื่อเรียนรู้ภาษาธรรมชาติเพื่อสร้างข้อความตามคำค้นหาที่ผู้ใช้ให้ไว้

คู่มือนี้จะแสดงกระบวนการใช้หน่วยความจำเอนทิตีใน 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