AutoBrowse เป็นตัวแทน AI อัตโนมัติที่สามารถเรียกดูเว็บได้ คุณเพียงแค่ให้งาน AutoBrowse และมันจะเสร็จสิ้นด้วยการโต้ตอบกับเว็บเบราว์เซอร์ราวกับว่ามันเป็นมนุษย์
ตัวอย่างงานบางส่วนที่คุณสามารถให้ได้:
ไปที่ booking.com และค้นหาโรงแรมสำหรับ 2 คนในมาดริด 2 คืน เริ่มตั้งแต่วันที่ 2 พฤศจิกายน ในราคาต่ำกว่า 200 ยูโรต่อคืน
ลงทะเบียนกับ ryanair.com ด้วยอีเมล: [email protected] และรหัสผ่าน C0mplexPassword!
ไปที่ Craigslist และค้นหา Nintendo DS คลิกที่ผลลัพธ์แรก
https://drive.google.com/file/d/1Ind9z3mjHKTS-Q0vJl2FaHcPLrZtdEX0/view
สร้างสภาพแวดล้อม Python 3.9
conda create --name py39 python=3.9
เปิดใช้งานสภาพแวดล้อม
conda activate py39
ติดตั้งการพึ่งพา
pip install -r requirements.txt
เริ่มต้นสภาพแวดล้อมเบราว์เซอร์
ตรวจสอบ README ใต้ browser-console/
เพื่อดูคำแนะนำในการใช้งาน
สร้างไฟล์ OAI_CONFIG_LIST
โดยมีเนื้อหาต่อไปนี้และใส่คีย์ OpenAI API ของคุณ:
[
{
"model" : " gpt-4 " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo-16k " ,
"api_key" : " <your-api-key> "
}
]
เรียกใช้การเรียกดูอัตโนมัติ
python autobrowse.py
จากนั้นคุณจะได้รับแจ้งให้มอบหมายงานให้กับ AutoBrowse
คุณสามารถแก้ไขคอนฟิกูเรชันเอเจนต์ได้โดยการแก้ไขไฟล์ agent_config.py
คุณสามารถแก้ไขพรอมต์ของระบบ เปลี่ยนโมเดล OpenAI ที่ใช้ ฯลฯ
AutoBrowse ใช้ตัวแทน autogen และคอนโซลของเบราว์เซอร์เพื่อวางแผนและดำเนินงาน
การออกแบบประกอบด้วย 3 ตัวแทน:
ผู้ช่วย HTML ที่ตอบคำถามเกี่ยวกับ HTML ของหน้าปัจจุบันที่เปิดในเบราว์เซอร์
เอเจนต์ตัวสร้างโค้ดที่สร้างโค้ด puppeteer.js เพื่อโต้ตอบกับเบราว์เซอร์ (เช่น นำทางไปยังหน้าใหม่ คลิกที่ปุ่ม กรอกองค์ประกอบของแบบฟอร์ม)
ตัวแทนการวางแผนที่ประสานงานการใช้ตัวแทนทั้งสองด้านบนเพื่อตอบสนองคำอธิบายงานระดับสูงที่ผู้ใช้ให้ไว้
เอเจนต์โต้ตอบกับเบราว์เซอร์ผ่านการเชื่อมต่อ websocket กับสภาพแวดล้อมเบราว์เซอร์แบบแซนด์บ็อกซ์ที่มีจุดสิ้นสุดเพื่อยอมรับโค้ด puppeteer.js เพื่อดำเนินการ รวมถึงและจุดสิ้นสุดเพื่อส่งคืน HTML ที่แสดงผลของเพจที่เปิดปัจจุบัน
เนื่องจากเอกสาร HTML อาจมีความยาวได้มากและเกินขีดจำกัดโทเค็นของ OpenAI ได้ จึงมีแนวทางต่อไปนี้ในการตอบคำถามเกี่ยวกับ HTML:
HTML ที่ส่งคืนจากสภาพแวดล้อมเบราว์เซอร์จะถูกแยกออกและทำให้ง่ายขึ้นเพื่อลดขนาด ซึ่งทำได้โดยการเก็บเฉพาะแอตทริบิวต์ที่สำคัญที่สุด เช่น id, name, type และ class ยิ่งไปกว่านั้น script
, style
, noscript
, img
, svg
, link
, meta
tags จะถูกลบออกทั้งหมด
HTML ที่ประมวลผลจะถูกแบ่งออกเป็นโทเค็น 15,000 รายการ (ตามที่ OpenAI นับ) เพื่อให้สามารถใส่ลงในหน้าต่างบริบท 16K ของ gpt-3.5-turbo-16k
ได้อย่างง่ายดาย
เมื่อใช้ RAG กับการฝัง OpenAI ส่วนที่เกี่ยวข้องมากที่สุดจะถูกจัดเตรียมไว้เป็นบริบทของคำถาม และ gpt-3.5-turbo
ก็สามารถตอบคำถามเกี่ยวกับ HTML ได้
เครื่องสร้างโค้ดใช้ gpt-4
เพื่อสร้างโค้ด puppeteer.js เพื่อโต้ตอบกับเบราว์เซอร์ เอเจนต์พร็อกซีผู้ใช้ที่แนบมากับตัวสร้างโค้ดจะส่งโค้ดนี้ไปยังสภาพแวดล้อมเบราว์เซอร์ที่จะดำเนินการและรายงานผลลัพธ์กลับมา เพื่อให้ตัวสร้างโค้ดสามารถแก้ไขโค้ดได้หากมีข้อผิดพลาดใดๆ เนื่องจากการสร้างโค้ดจะต้องมีความแม่นยำที่สุดเท่าที่จะเป็นไปได้ จึงใช้รุ่น gpt-4
ที่มีราคาแพงกว่าแทน gpt-3.5-turbo
ที่ราคาถูกกว่า
ผู้วางแผนได้รับคำอธิบายงานจากผู้ใช้และพยายามดำเนินการให้เสร็จสิ้นโดยเรียกใช้ผู้ช่วย HTML และตัวสร้างโค้ดตามความจำเป็น นอกเหนือจากการคิดของตัวเองแล้ว ผู้วางแผนยังมีความสามารถในการเรียกใช้ฟังก์ชันสองอย่าง:
ask_html_assistant()
เพื่อถามคำถามเกี่ยวกับ HTML ปัจจุบันกับผู้ช่วย HTML (เช่น แยก HTML สำหรับแบบฟอร์มลงทะเบียน) และ
ask_code_generator()
เพื่อขอให้ตัวสร้างโค้ดสร้างโค้ด puppeteer.js เพื่อส่งไปยังเบราว์เซอร์ ผู้วางแผนอาจเพิ่ม HTML ที่ดึงมาจากผู้ช่วย HTML เพื่อให้บริบทเพิ่มเติมแก่ตัวสร้างโค้ด