แรงบันดาลใจจาก Babyagi ของ Yoheina Kajima
พื้นที่เก็บข้อมูล Babyagi-Chroma นำเสนอโซลูชันการจัดเก็บเวกเตอร์ฟรี Chroma ซึ่งทำงานในพื้นที่ นี่เป็นข้อได้เปรียบโดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ที่ต้องการหลีกเลี่ยงค่าใช้จ่ายที่อาจเกิดขึ้นกับตัวเลือกการจัดเก็บเวกเตอร์อื่น ๆ เช่น Pinecone
สคริปต์ Python นี้นำเสนอตัวอย่างของระบบการจัดการงานที่ขับเคลื่อนด้วย AI ที่ใช้ประโยชน์จากฐานข้อมูล Langchain, OpenAI และ Chroma ของ Chroma เพื่อสร้างจัดลำดับความสำคัญและดำเนินการงาน ระบบสร้างงานตามผลลัพธ์ของงานก่อนหน้านี้และวัตถุประสงค์ที่กำหนดไว้ล่วงหน้า จากนั้นสคริปต์จะใช้ชุดเครื่องมือการประมวลผลภาษาธรรมชาติ Openai (NLP) ของ Langchain และความสามารถในการค้นหาเพื่อสร้างงานใหม่ตามวัตถุประสงค์ในขณะที่ Chroma จัดเก็บและดึงผลลัพธ์งานสำหรับบริบท นี่เป็นเวอร์ชันที่ง่ายของตัวแทนอิสระที่ขับเคลื่อนด้วยงาน (28 มี.ค. 2023)
readme นี้ครอบคลุมหัวข้อต่อไปนี้:
สคริปต์ดำเนินการตามขั้นตอนต่อไปนี้ในวงไม่มีที่สิ้นสุด:
ห่วงโซ่การดำเนินการประมวลผลงานที่กำหนดโดยพิจารณาวัตถุประสงค์และบริบท มันใช้ประโยชน์จาก Llmchain ของ Langchain เพื่อดำเนินงาน ฟังก์ชั่น execute_task ใช้ chroma vectorstore, ห่วงโซ่การดำเนินการ, วัตถุประสงค์และข้อมูลงานเป็นอินพุต มันดึงรายการงาน K ด้านบนจากเวกเตอร์สโตร์ตามวัตถุประสงค์จากนั้นดำเนินการงานโดยใช้ห่วงโซ่การดำเนินการจัดเก็บผลลัพธ์ในเวกเตอร์สโตร์ ฟังก์ชั่นส่งคืนผลลัพธ์
ห่วงโซ่การดำเนินการไม่ได้กำหนดไว้อย่างชัดเจนในบล็อกรหัสนี้ อย่างไรก็ตามมันจะถูกส่งผ่านเป็นพารามิเตอร์เพื่อ execute_task และสามารถกำหนดแยกต่างหากในรหัส มันเป็นอินสแตนซ์ของคลาส LLMCHAIN จาก Langchain ซึ่งยอมรับพรอมต์และสร้างการตอบสนองตามตัวแปรอินพุตที่ให้ไว้
คลาส TaskCreationchain ใช้ llmchain เพื่อสร้างงานใหม่ ฟังก์ชั่น from_llm ใช้เวลาในพารามิเตอร์โดยใช้ PromptTemplate จาก Langchain โดยส่งคืนรายการงานใหม่เป็นสตริง จากนั้นจะสร้างอินสแตนซ์ของ TaskCreationchain พร้อมกับตัวแปรอินพุตที่กำหนดเองและพฤติกรรมที่ระบุ
คลาส TaskPriorItizationChain ใช้ llmchain เพื่อจัดลำดับความสำคัญของงาน ฟังก์ชั่น from_llm ยอมรับพารามิเตอร์ผ่าน ProfttTemplate จาก Langchain โดยส่งคืนรายการงานใหม่เป็นสตริง จากนั้นจะสร้างอินสแตนซ์ของ TaskPriorItizationChain พร้อมกับตัวแปรอินพุตที่กำหนดเองและพฤติกรรมที่ระบุ
สคริปต์ใช้ประโยชน์จาก chroma เพื่อจัดเก็บการค้นหาความคล้ายคลึงกันและดึงผลลัพธ์งานสำหรับบริบท มันสร้างดัชนี chroma ตามชื่อตารางที่ระบุในตัวแปร TABLE_NAME ต่อมา Chroma เก็บผลลัพธ์ของงานไว้ในดัชนีพร้อมกับชื่องานและข้อมูลเมตาเพิ่มเติมใด ๆ
หากต้องการใช้สคริปต์ให้ทำตามขั้นตอนต่อไปนี้:
git clone https://github.com/alexdphan/babyagi-chroma.git และ cd ลงในไดเรกทอรีโคลนpip install -r requirements.txt.env.example ไปที่ .env : cp .env.example .env ตั้งค่าตัวแปรต่อไปนี้ในไฟล์นี้OPENAI_API_KEY และ SERPAPI_API_KEYTABLE_NAMEOBJECTIVEINITIAL_TASKpython babyagi-chroma.pyค่าตัวเลือกทั้งหมดข้างต้นสามารถระบุได้ในบรรทัดคำสั่ง
สคริปต์นี้ใช้งานได้กับทุกรุ่น OpenAI รุ่นเริ่มต้นคือ GPT-3.5 (Text-Davinci-003) หากต้องการใช้โมเดลที่แตกต่างกันอย่าลังเลที่จะแก้ไขรหัสตามนั้น
สคริปต์นี้ได้รับการออกแบบให้ทำงานอย่างต่อเนื่องซึ่งเป็นส่วนหนึ่งของระบบการจัดการงาน การเรียกใช้สคริปต์อย่างต่อเนื่องอาจส่งผลให้เกิดการใช้ API สูงดังนั้นโปรดใช้อย่างรับผิดชอบ นอกจากนี้สคริปต์ต้องการให้ตั้งค่า OpenAI API และ SERP อย่างถูกต้องดังนั้นตรวจสอบให้แน่ใจว่า API นั้นได้รับการกำหนดค่าก่อนเรียกใช้สคริปต์
เพื่อรักษาความเรียบง่ายโปรดปฏิบัติตามแนวทางต่อไปนี้เมื่อส่ง PRS:
ด้วยค่าใช้จ่ายของการจัดเก็บเวกเตอร์มีราคาแพงเป้าหมายคือการจัดหาตัวเลือกการจัดเก็บฟรีเมื่อใช้ Babyagi ดังนั้นตัวอย่างเทมเพลตนี้แสดงให้เห็นว่าการใช้ babyagi กับ chroma
Babyagi-chroma เป็นรุ่น Babyagi ซึ่งเป็นรุ่นที่ง่ายขึ้นของตัวแทนอิสระที่ขับเคลื่อนด้วยงานดั้งเดิม (28 มีนาคม 2023) ที่ใช้ร่วมกันบน Twitter