ตัวแทนใน LangChain คืออะไร?

Tawthaen Ni Langchain Khux Xari



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

ในบทความนี้ เราจะหารือเกี่ยวกับตัวแทนใน LangChain จากทุกแง่มุมที่เป็นไปได้

ตัวแทนใน LangChain คืออะไร?

แอปพลิเคชั่นบางตัวไม่เพียงต้องการเชนที่กำหนดไว้ล่วงหน้า แต่ยังต้องการเชนที่ไม่รู้จักซึ่งขึ้นอยู่กับอินพุตของผู้ใช้ กรณีดังกล่าวจะมี “ ตัวแทน ” ซึ่งเข้าถึงเครื่องมือและตัดสินใจว่าต้องใช้เครื่องมือใดตามข้อมูลของผู้ใช้และสิ่งที่เขาหรือเธอขอ ชุดเครื่องมือนั้นเป็นชุดเครื่องมือที่จำเป็นในการบรรลุวัตถุประสงค์เฉพาะ และชุดเครื่องมือหนึ่งมีเครื่องมือ 3-5 ชิ้น







ประเภทของตัวแทน LangChain

มีสองตัวแทนหลัก:



  • ตัวแทนการดำเนินการ
  • ตัวแทนวางแผนและดำเนินการ

ตัวแทนดำเนินการ: ตัวแทนเหล่านี้จะตัดสินใจดำเนินการเพื่อประเมินแต่ละขั้นตอนทีละขั้นตอน จากนั้นดำเนินการและย้ายไปยังขั้นตอนถัดไปหากเราหารือเกี่ยวกับรหัสหลอกของตัวแทนที่เกี่ยวข้องกับขั้นตอนไม่กี่ขั้นตอน



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

ตัวแทนวางแผนและดำเนินการ: ขั้นแรกตัวแทนเหล่านี้จะตัดสินใจเลือกการดำเนินการที่จะดำเนินการ จากนั้นจึงดำเนินการทั้งหมดเหล่านั้น





  • ได้รับการป้อนข้อมูลจากผู้ใช้
  • ตัวแทนแสดงรายการขั้นตอนทั้งหมดที่ต้องดำเนินการ
  • ผู้ดำเนินการจะต้องดำเนินการตามรายการขั้นตอนต่างๆ และดำเนินการ

การตั้งตัวแทน

ก่อนตั้งค่าตัวแทน คุณต้องติดตั้งเวอร์ชันล่าสุด หลาม ตามระบบปฏิบัติการของคุณ

ขั้นตอนที่ 1: การติดตั้งแพ็คเกจ
ก่อนอื่น เราต้องสร้างสภาพแวดล้อมสำหรับสิ่งนี้ เราต้องติดตั้ง LangChain, google-search-results และ openai ผ่านทาง “ ปิ๊ป ' สั่งการ:



! ปิ๊ป ติดตั้ง แลงเชน
! ปิ๊ป ติดตั้ง ผลการค้นหาของ Google
! ปิ๊ป ติดตั้ง เปิดใจ

การนำเข้าไลบรารีที่จำเป็น:

จาก langchain.schema นำเข้า SystemMessage
จาก langchain.agents นำเข้า OpenAIFunctionsAgent, AgentExecutor
จากเครื่องมือนำเข้า langchain.agents
จาก langchain.chat_models นำเข้า ChatOpenAI
นำเข้าอีกครั้ง
จาก getpass นำเข้า getpass

ขั้นตอนที่ 2: รับ API ลับของคุณ
หลังจากตั้งค่าสภาพแวดล้อมแล้ว ตอนนี้คุณต้องรับคีย์ API ลับจากแพลตฟอร์ม OpenAI:

openai_api_key = รับพาส ( )
llm = ChatOpenAI ( openai_api_key =openai_api_key, อุณหภูมิ = 0 )

ขั้นตอนที่ 3: การเริ่มต้นเครื่องมือ
ต่อไป เรามากำหนดเครื่องมือกัน โดยเขียนโค้ด Python อย่างง่ายเพื่อรับความยาวของสตริง

@ เครื่องมือ
กำหนด get_word_string ( คำ: st ) - - > int:
'' “ขอความยาวของเชือกมาให้ฉันหน่อย” ''
กลับ เท่านั้น ( คำ )

เครื่องมือ = [ get_word_string ]

ขั้นตอนที่ 4: สร้างเทมเพลตพร้อมท์
หลังจากกำหนดเครื่องมือแล้ว ให้ตั้งค่าเทมเพลตพร้อมท์สำหรับการใช้งานนี้ “OpenAIFunctionsAgent.create_prompt()” ฟังก์ชั่นตัวช่วยที่จะสร้างเทมเพลตโดยอัตโนมัติ

system_message = ข้อความระบบ ( เนื้อหา = 'คุณเป็นผู้ช่วยที่ทรงพลังมาก แต่คำนวณความยาวของเชือกได้ไม่ดี' )
prompt = OpenAIFunctionsAgent.create_prompt ( system_message =system_message )

ขั้นตอนที่ 5: การสร้างตัวแทน
ตอนนี้เราสามารถสรุปชิ้นส่วนทั้งหมดและสร้างตัวแทนโดยใช้ฟังก์ชันที่เรียกว่า “OpenAIFunctionsAgent()” .

ตัวแทน = OpenAIFunctionsAgent ( llm =llm, เครื่องมือ = เครื่องมือ พร้อมท์ =พร้อมท์ )

ขั้นตอนที่ 6: การตั้งค่ารันไทม์
หากคุณสร้างเอเจนต์สำเร็จแล้ว ให้สร้างรันไทม์สำหรับเอเจนต์ สำหรับ ”AgentExecutor” นี้จะถูกใช้เป็นรันไทม์สำหรับเอเจนต์

agent_executor = AgentExecutor ( ตัวแทน =ตัวแทน เครื่องมือ = เครื่องมือ รายละเอียด =จริง )

ขั้นตอนที่ 7: การทดสอบตัวแทน
หลังจากสร้าง Runtime แล้ว ตอนนี้ก็ถึงเวลาทดสอบ Agent

agent_executor.run ( “เชือกเส้นนี้มีกี่คำ” )

หากคุณได้แทรกเพื่อแก้ไขคีย์ API ในขั้นตอนที่ 2 คุณจะได้รับคำตอบ

บทสรุป

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