Roy เป็นทางเลือกที่ไม่ซับซ้อนสำหรับ autogen
สำหรับการพัฒนาระบบหลายตัวแทนขั้นสูงโดยใช้แบบจำลองภาษา มีจุดมุ่งหมายเพื่อลดความซับซ้อนและทำให้เป็นประชาธิปไตยในการพัฒนาปัญญารวมที่เกิดขึ้นใหม่
Model Agnostic : ใช้ LLM ใดก็ได้ ไม่จำเป็นต้องใช้ API ภายนอก ตั้งค่าเริ่มต้นเป็นโมเดล Wizard-coder-Python แบบเชิงปริมาณ 4 บิตเพื่อประสิทธิภาพ
แบบโมดูลาร์และแบบประกอบได้ : Roy แบ่งการโต้ตอบของเอเจนต์ออกเป็นบล็อคส่วนประกอบที่นำมาใช้ซ้ำได้ - การสร้างเทมเพลต การดึงข้อมูล การสร้าง และการดำเนินการ
โปร่งใสและปรับแต่งได้ : ทุกวิธีมีจุดประสงค์ที่ชัดเจน สลับส่วนประกอบหรือเพิ่มความสามารถใหม่ได้อย่างง่ายดาย
git clone https://github.com/JosefAlbers/Roy
cd Roy
pip install -r requirements.txt
pip install -U transformers optimum accelerate auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
from roy import Roy
roy = Roy ()
ใช้เทมเพลตเพื่อจัดโครงสร้างการสนทนาและให้บริบท
s = 'What date is today? Which big tech stock has the largest year-to-date gain this year? How much is the gain?'
roy . generate ( roy . format ( s ))
เสริมสร้างรุ่นด้วยความรู้ที่เกี่ยวข้อง
s = 'Create a text to image generator.'
r = roy . retrieve ( s , n_topk = 3 , src = 'huggingface' )
[ roy . generate ( s ) for s in r ]
เอเจนต์ทำงานร่วมกันเป็นลูปแน่นเพื่อปรับแต่งเอาต์พุตซ้ำตามข้อกำหนด
# Iterative multiturn chat style
s = "Create a secure and unique secret code word with a Python script that involves multiple steps to ensure the highest level of confidentiality and protection. n "
for i in range ( 2 ):
c = roy . generate ( s , prohibitions = [ 'input' ])
s += roy . execute ( c )
เปรียบเทียบและทำซ้ำสถาปัตยกรรมโมเดลของคุณได้อย่างง่ายดาย:
สลับส่วนประกอบ : โมเดลภาษา รูปแบบพร้อมท์ สถาปัตยกรรมเอเจนต์ ฯลฯ
ทดสอบงานที่หลากหลาย : เลขคณิต, การเข้ารหัสหลาม, HumanEval ของ OpenAI เป็นต้น
การปรับปรุงเชิงปริมาณ : ดูว่าการเปลี่ยนแปลงแต่ละรายการส่งผลต่อประสิทธิภาพโดยรวมอย่างไร
from human_eval import evaluate
evaluate ( roy . generate )
Roy มุ่งหวังที่จะอำนวยความสะดวกให้เกิดระบบหลายตัวแทนที่ซับซ้อนและปรับเปลี่ยนได้ โดยได้รับแรงบันดาลใจจากแนวคิดทางชีววิทยาและ AI เพื่อให้เกิดการประสานงานแบบกระจายอำนาจและการเรียนรู้อย่างต่อเนื่อง
การอยู่รอดของผู้ที่เหมาะสมที่สุด - ประเมินและเลือกรักษาตัวแทนที่มีประสิทธิภาพสูงเป็นระยะๆ โดยพิจารณาจากความแม่นยำ ความเร็ว ฯลฯ เจ้าหน้าที่จะปรับตัวผ่านการโต้ตอบระหว่างเพื่อนร่วมงาน
การผสมผสานของผู้เชี่ยวชาญ - กำหนดความเชี่ยวชาญของตัวแทน รวบรวมทีมผู้เชี่ยวชาญแบบไดนามิก และกำหนดเส้นทางงานไปยังผู้เชี่ยวชาญที่เหมาะสมที่สุด ปรับแต่งและเพิ่มพูนผู้เชี่ยวชาญอย่างต่อเนื่อง
กลไกเหล่านี้เอื้อให้เกิดกลุ่มตัวแทนที่มีความสามารถ ปรับตัวได้ และมีประสิทธิภาพ
พื้นฐานที่ยืดหยุ่นเพื่อสร้างระบบนิเวศของตัวแทน
from roy import Roys
roys = Roys ()
# AutoFeedback
roys . create ( agents = { 'Coder' : 'i = execute(generate(i))' })
roys . start ( requests = { 'i' : 'Create a mobile application that can track the health of elderly people living alone in rural areas.' })
# Retrieval Augmented Generation
roys . create (
agents = {
'Retriever' : 'r = retrieve(i)' ,
'Generator' : 'o = generate(r)' ,
})
roys . start ( requests = { 'i' : 'Create a Deutsch to English translator.' })
# Providing a custom tool to one of the agents using lambda
roys . create (
agents = {
'Coder' : 'c = generate(i)' ,
'Proxy' : 'c = custom(execute(c))' ,
},
tools = { 'custom' : lambda x : f'Modify the code to address the error encountered: n n { x } ' if 'Error' in x else None })
roys . start ( requests = { 'i' : 'Compare the year-to-date gain for META and TESLA.' })
รอยอยู่ระหว่างการพัฒนาอย่างแข็งขัน เรายินดีรับการมีส่วนร่วม - อย่าลังเลที่จะเปิดประเด็นและประชาสัมพันธ์!
หากคุณพบว่าโครงการนี้มีประโยชน์หรือน่าสนใจ และต้องการสนับสนุนการทดลองเหล่านี้เพิ่มเติม อย่าลังเลที่จะซื้อกาแฟให้ฉัน!