โครงร่างด่วน
โพสต์นี้มีส่วนต่อไปนี้:
- วิธีใช้ Async API Agent ใน LangChain
- วิธีที่ 1: การใช้การดำเนินการแบบอนุกรม
- วิธีที่ 2: การใช้การดำเนินการพร้อมกัน
- บทสรุป
จะใช้ Async API Agent ใน LangChain ได้อย่างไร
โมเดลการแชททำงานหลายอย่างพร้อมกัน เช่น การทำความเข้าใจโครงสร้างของพรอมต์ ความซับซ้อน การดึงข้อมูล และอื่นๆ อีกมากมาย การใช้เอเจนต์ Async API ใน LangChain ช่วยให้ผู้ใช้สามารถสร้างโมเดลการแชทที่มีประสิทธิภาพซึ่งสามารถตอบคำถามได้หลายข้อในแต่ละครั้ง หากต้องการเรียนรู้กระบวนการใช้เอเจนต์ Async API ใน LangChain เพียงทำตามคำแนะนำนี้:
ขั้นตอนที่ 1: การติดตั้งกรอบงาน
ก่อนอื่น ให้ติดตั้งเฟรมเวิร์ก LangChain เพื่อรับการขึ้นต่อกันจากตัวจัดการแพ็คเกจ Python:
pip ติดตั้ง langchain
หลังจากนั้น ให้ติดตั้งโมดูล OpenAI เพื่อสร้างโมเดลภาษา เช่น llm และตั้งค่าสภาพแวดล้อม:
pip ติดตั้ง openai
ขั้นตอนที่ 2: สภาพแวดล้อม OpenAI
ขั้นตอนต่อไปหลังจากการติดตั้งโมดูลคือ การตั้งค่าสภาพแวดล้อม โดยใช้คีย์ API ของ OpenAI และ เซิร์ฟเวอร์ API เพื่อค้นหาข้อมูลจาก Google:
นำเข้า คุณ
นำเข้า รับผ่าน
คุณ . ประมาณ [ 'OPENAI_API_KEY' ] = รับผ่าน . รับผ่าน ( 'คีย์ OpenAI API:' )
คุณ . ประมาณ [ 'SERPER_API_KEY' ] = รับผ่าน . รับผ่าน ( 'คีย์ API ของเซิร์ฟเวอร์:' )
ขั้นตอนที่ 3: การนำเข้าไลบรารี
เมื่อตั้งค่าสภาพแวดล้อมแล้ว เพียงนำเข้าไลบรารีที่จำเป็น เช่น asyncio และไลบรารีอื่น ๆ โดยใช้การขึ้นต่อกันของ LangChain:
จาก แลงเชน ตัวแทน นำเข้า เตรียมใช้งาน_ตัวแทน , โหลด_เครื่องมือนำเข้า เวลา
นำเข้า อะซินซิโอ
จาก แลงเชน ตัวแทน นำเข้า ประเภทตัวแทน
จาก แลงเชน llms นำเข้า OpenAI
จาก แลงเชน โทรกลับ . มาตรฐาน นำเข้า StdOutCallbackHandler
จาก แลงเชน โทรกลับ . ผู้ตามรอย นำเข้า LangChainTracer
จาก aiohttp นำเข้า เซสชันไคลเอ็นต์
ขั้นตอนที่ 4: ตั้งค่าคำถาม
ตั้งชุดข้อมูลคำถามที่มีหลายคำค้นหาที่เกี่ยวข้องกับโดเมนหรือหัวข้อต่างๆ ที่สามารถค้นหาได้บนอินเทอร์เน็ต (Google):
คำถาม = [“ใครคือผู้ชนะการแข่งขันยูเอสโอเพ่นในปี 2564” ,
“แฟนของโอลิเวีย ไวลด์อายุเท่าไหร่” ,
“ใครคือผู้ชนะตำแหน่งแชมป์โลกสูตร 1” ,
“ใครจะคว้าแชมป์ยูเอสโอเพ่นหญิงรอบชิงชนะเลิศปี 2021” ,
“ใครคือสามีของบียอนเซ่ และเขาอายุเท่าไหร่” ,
]
วิธีที่ 1: การใช้การดำเนินการแบบอนุกรม
เมื่อขั้นตอนทั้งหมดเสร็จสิ้น เพียงดำเนินการคำถามเพื่อรับคำตอบทั้งหมดโดยใช้การดำเนินการแบบอนุกรม หมายความว่าจะมีการดำเนินการ/แสดงคำถามหนึ่งข้อในแต่ละครั้ง และยังส่งคืนเวลาทั้งหมดที่ใช้ในการดำเนินการคำถามเหล่านี้ด้วย:
llm = OpenAI ( อุณหภูมิ = 0 )เครื่องมือ = โหลด_เครื่องมือ ( [ 'Google-ส่วนหัว' , 'llm-คณิตศาสตร์' ] , llm = llm )
ตัวแทน = เตรียมใช้งาน_ตัวแทน (
เครื่องมือ , llm , ตัวแทน = ประเภทตัวแทน ZERO_SHOT_REACT_DESCRIPTION , รายละเอียด = จริง
)
ส = เวลา . perf_counter ( )
#การกำหนดค่าตัวนับเวลาเพื่อรับเวลาที่ใช้สำหรับกระบวนการทั้งหมด
สำหรับ ถาม ใน คำถาม:
ตัวแทน. วิ่ง ( ถาม )
ผ่านไปแล้ว = เวลา . perf_counter ( ) - ส
#พิมพ์เวลาทั้งหมดที่ตัวแทนใช้ในการรับคำตอบ
พิมพ์ ( ฉ 'ซีเรียลดำเนินการใน {elapsed:0.2f} วินาที' )
เอาท์พุต
ภาพหน้าจอต่อไปนี้แสดงว่าแต่ละคำถามได้รับคำตอบในกลุ่มแยกกัน และเมื่อกลุ่มแรกเสร็จสิ้น กลุ่มที่สองจะเริ่มทำงาน การดำเนินการแบบอนุกรมจะใช้เวลามากขึ้นในการรับคำตอบทั้งหมดทีละรายการ:
วิธีที่ 2: การใช้การดำเนินการพร้อมกัน
วิธีดำเนินการพร้อมกันจะตอบคำถามทั้งหมดและรับคำตอบพร้อมกัน
llm = OpenAI ( อุณหภูมิ = 0 )เครื่องมือ = โหลด_เครื่องมือ ( [ 'Google-ส่วนหัว' , 'llm-คณิตศาสตร์' ] , llm = llm )
#การกำหนดค่าตัวแทนโดยใช้เครื่องมือด้านบนเพื่อรับคำตอบพร้อมกัน
ตัวแทน = เตรียมใช้งาน_ตัวแทน (
เครื่องมือ , llm , ตัวแทน = ประเภทตัวแทน ZERO_SHOT_REACT_DESCRIPTION , รายละเอียด = จริง
)
#การกำหนดค่าตัวนับเวลาเพื่อรับเวลาที่ใช้สำหรับกระบวนการทั้งหมด
ส = เวลา . perf_counter ( )
งาน = [ ตัวแทน. โรค ( ถาม ) สำหรับ ถาม ใน คำถาม ]
รออะซินซิโอ รวมตัว ( *งาน )
ผ่านไปแล้ว = เวลา . perf_counter ( ) - ส
#พิมพ์เวลาทั้งหมดที่ตัวแทนใช้ในการรับคำตอบ
พิมพ์ ( ฉ 'ดำเนินการพร้อมกันใน {elapsed:0.2f} วินาที' )
เอาท์พุต
การดำเนินการพร้อมกันจะแยกข้อมูลทั้งหมดพร้อมกันและใช้เวลาน้อยกว่าการดำเนินการแบบอนุกรม:
นั่นคือทั้งหมดที่เกี่ยวกับการใช้ Async API agent ใน LangChain
บทสรุป
หากต้องการใช้เอเจนต์ Async API ใน LangChain เพียงติดตั้งโมดูลเพื่อนำเข้าไลบรารีจากการขึ้นต่อกันเพื่อรับไลบรารี asyncio หลังจากนั้น ให้ตั้งค่าสภาพแวดล้อมโดยใช้คีย์ OpenAI และ Serper API โดยการลงชื่อเข้าใช้บัญชีที่เกี่ยวข้อง กำหนดค่าชุดคำถามที่เกี่ยวข้องกับหัวข้อต่างๆ และดำเนินการเชนตามลำดับและพร้อมกันเพื่อรับเวลาดำเนินการ คู่มือนี้ได้อธิบายรายละเอียดเกี่ยวกับกระบวนการใช้ Async API agent ใน LangChain