HTN Planner สร้างแผนรายละเอียดโดยอัตโนมัติโดยใช้ GPT ของ OpenAI และสถาปัตยกรรม Network Network (HTN) ระบบสร้างงานเพื่อให้บรรลุเป้าหมายโดยใช้ LLM และจากนั้นจะสลายตัวซ้ำ ๆ ลงในงานย่อยที่สามารถดำเนินการได้
เพื่อผลลัพธ์ที่ดีที่สุดใช้ GPT-4 แม้ว่า OpenSource LLM อื่น ๆ อาจพอเพียงกับการปรับเปลี่ยน API
ส่วนประกอบ :
- การสลายตัว - รับงานและสลายตัวเป็นงานย่อยจนกว่าจะถึงความลึกสูงสุดหรือแผนล้มเหลว ระบบติดตามการสลายตัวของผู้สมัครและพยายามเลือกตัวเลือกที่ดีที่สุด อาจออกก่อนหากผลลัพธ์ดี
- การวางแผนใหม่-เมื่อการวางแผนล้มเหลวหรือเป็นส่วนหนึ่งของแผนล้มเหลวการวางแผนอีกครั้งจะเกิดขึ้น
- การดำเนินการงาน - ระบุงานเป็นหน่วยปฏิบัติการ
- ในปัจจุบันงานไม่ได้ถูกดำเนินการในเทอร์มินัลจริง
- การติดตามสถานะ - LLM ติดตามและอัปเดตสถานะเมื่อเกิดการดำเนินการ
- การแยกวิเคราะห์ข้อความ - การแยกวิเคราะห์และแยกข้อมูลจากการตอบสนองภาษาธรรมชาติที่ผลิตโดย LLM
- การแปลงาน - พยายามแปลงานระดับต่ำเป็นคำสั่งหรือชิ้นส่วนของรหัสที่สามารถดำเนินการได้
- Frontend - ส่วนหน้าแบบตอบสนองแบบง่ายเพื่อแสดงลำดับชั้นที่แสดงถึงแผน
- Prompt Evolver - แอปพลิเคชันที่ออกแบบมาเพื่อสร้างพรอมต์โดยอัตโนมัติโดยใช้อัลกอริทึมวิวัฒนาการ
- การเลือกดำเนินการโดยใช้
roulette wheel selection - การกลายพันธุ์ดำเนินการโดย LLM
- การรวมตัวกันใหม่จะดำเนินการโดย LLM โดยใช้ผลลัพธ์ของการเลือก
- Fitness ถูกกำหนดโดย LLM และถูกทำให้เป็นมาตรฐานโดยใช้คะแนน Z เพื่อให้สามารถเปรียบเทียบผลลัพธ์โดยใช้ส่วนเบี่ยงเบนมาตรฐาน
- โทโพโลยีสิ่งแวดล้อมเป็นกริด toroidal 2D ที่ปรับให้เข้ากับการเพิ่มประสิทธิภาพในท้องถิ่นหรือระดับโลกแบบไดนามิก
- บันทึก - บันทึกที่หลากหลายจำนวนมากถูกสร้างขึ้นในโฟลเดอร์ "บันทึก" และการติดตามฟังก์ชันสามารถพบได้ใน "function_trace.log"
- function_trace.log - ติดตามฟังก์ชั่นทั้งหมดเรียกใช้คำอธิบายประกอบด้วย "@trace_function_calls"
- บันทึกในโฟลเดอร์ "logs" แต่ละแทร็กระบบย่อยเฉพาะโดยใช้ฟังก์ชัน "log_response"
- Parsing_errors - ติดตามปัญหาใด ๆ เกี่ยวกับการแยกวิเคราะห์ผลลัพธ์จาก LLM เพื่อให้สามารถอัปเดตไปยังตัวแยกวิเคราะห์เพื่อแก้ไขปัญหา
- state_changes - ติดตามการเปลี่ยนสถานะเมื่อเวลาผ่านไปที่สร้างโดย LLM ตามข้อมูลที่มี
สิ่งที่ต้องทำ :
- จัดเก็บแผนการที่ประสบความสำเร็จใน db เวกเตอร์สำหรับการใช้งานในภายหลังและลดต้นทุนการสร้าง
- ปรับปรุงการแยกวิเคราะห์ข้อความต่อไปเพื่อจัดการกับกรณีที่ขอบมากขึ้น
- หลังการประมวลผลเพิ่มเติม
- ประเมินเงื่อนไขล่วงหน้าอีกครั้งเป็นข้อกำหนดสำหรับการดำเนินงาน
การติดตั้ง :
แบ็กเอนด์
- ตั้งค่าตัวแปรสภาพแวดล้อม
OPENAI_KEY เป็นคีย์ OpenAI API ของคุณ - ติดตั้งการพึ่งพา
- เรียกใช้
pip install -r requirements.txt
- เรียกใช้แอปพลิเคชันการวางแผน
-
python src/main.py - ป้อนสถานะเริ่มต้น
- นี่คือข้อมูลใด ๆ ที่คุณต้องการให้ระบบทราบก่อนที่จะเริ่มการวางแผน
- คุณอาจ
None ใส่หรือไม่มีอะไรในอินพุตนี้
- อธิบายเป้าหมายของคุณ
- ป้อนเป้าหมายที่ระบบกำลังวางแผนที่จะเข้าถึง
- ตัวอย่าง:
eat a ham sandwich
- ความสามารถเริ่มต้น
- นี่คือเครื่องมือที่ผู้วางแผนอาจพิจารณาใช้เมื่อสร้างแผน
- ค่าเริ่มต้นนี้ไปยัง
Linux terminal, internet access คุณสามารถกด ENTER เพื่อใช้สิ่งเหล่านี้ได้
- เลือก Planner
- ตัวเลือกสำหรับการสร้างแผนโดยใช้อัลกอริทึมการวางแผนประเภทต่างๆ ตัวเลือกเช่น HTN Planner และ A* Search Planner
- ค่าเริ่มต้นนี้เป็นการใช้ HTN Planner
- เรียกใช้แอปพลิเคชัน Evolver Prompt
-
python src/prompt_evolver.py - เข้าสู่เป้าหมายหรือปัญหาที่คุณต้องการแจ้งให้ออกแบบรอบ ๆ
ส่วนหน้า:
- เข้าไปในไดเรกทอรีส่วนหน้า
- เริ่มต้น
เครดิต :
ข้อมูลอ้างอิง :
- htn
- เอกสาร
- https://arxiv.org/pdf/1106.4869.pdf
- https://arxiv.org/pdf/1403.7426.pdf
- https://www.cs.umd.edu/~nau/papers/nau2021gtpyhop.pdf
- หนังสือ
- การวางแผนอัตโนมัติทฤษฎีและการปฏิบัติ (2008) โดย Malik Ghallab, Dana Nau, Paolo Traverso (บทที่ 11)
- การใช้งานและเอกสารประกอบ
- https://www.cs.umd.edu/projects/shop/description.html
- https://github.com/ptrefall/fluid-hierarchical-task-network
- https://github.com/maksmaisak/htn
- https://maksmaisak.github.io/htn/front.html
- https://github.com/dananau/gtpyhop
- วิดีโอ
- https://www.youtube.com/watch?v=7L3TCOFMR7W
- https://www.youtube.com/watch?v=MYPF9_5WVLM
- https://www.youtube.com/watch?v=7RHI4FWLJW4
- https://www.youtube.com/watch?v=KXM467TFTCY
- https://www.youtube.com/watch?v=xxusfbvquly