ผู้ช่วยอัจฉริยะอีกคน (YAIA)
อินเทอร์เฟซ multimodal chat พร้อมการเข้าถึงเครื่องมือมากมาย
คำอธิบาย
YAIA เป็นอินเทอร์เฟซ multimodal chat ที่ซับซ้อนซึ่งขับเคลื่อนโดยโมเดล AI ขั้นสูงและมีเครื่องมือที่หลากหลาย มันสามารถ:
- ค้นหาและท่องเว็บแบบเรียลไทม์
- ค้นหาข้อมูลในวิกิพีเดีย
- ดำเนินการค้นหาข่าวและแผนที่
- รันโค้ด Python อย่างปลอดภัยซึ่งสามารถสร้างข้อความและรูปภาพ เช่น แผนภูมิและไดอะแกรม
- เขียนบทความขนาดยาวผสมข้อความและรูปภาพ
- สร้าง ค้นหา และเปรียบเทียบภาพ
- วิเคราะห์เอกสารและรูปภาพ
- ค้นหาและดาวน์โหลดเอกสาร arXiv
- สร้างและบันทึกการสนทนาเป็นไฟล์ข้อความและเสียง
- บันทึกไฟล์ลงในไดเร็กทอรีเอาต์พุต
- ติดตามการปรับปรุงส่วนบุคคล
- จัดการรายการตรวจสอบสำหรับการติดตามงาน
สถาปัตยกรรม
เหล่านี้เป็นองค์ประกอบหลัก:
- Gradio 5 สำหรับเว็บอินเตอร์เฟส
- Amazon Bedrock เพื่อจัดการการสนทนาและการใช้เครื่องมือ
- Anthropic Claude 3.5 Sonnet เป็นโมเดลหลัก
- โมเดล Amazon Titan Text และ Multimodal Embeddings
- โปรแกรมสร้างภาพ Amazon Titan
- OpenSearch สำหรับข้อความและดัชนีหลายรูปแบบ
- Amazon Polly สำหรับเสียง
- AWS Lambda สำหรับล่ามโค้ด
ตัวอย่าง
นี่คือตัวอย่างวิธีการใช้เครื่องมือต่างๆ:
ค้นหาเว็บ : "ค้นหาเว็บเพื่อดูความก้าวหน้าล่าสุดในการคำนวณควอนตัม"
Wikipedia : "ค้นหาบทความ Wikipedia เกี่ยวกับประวัติศาสตร์ปัญญาประดิษฐ์"
การเขียนสคริปต์ Python : "สร้างสคริปต์ Python เพื่อสร้างแผนภูมิแท่งของการปล่อย CO2 ทั่วโลกตามประเทศ"
Sketchbook : "เริ่มสมุดร่างใหม่และเขียนคำแนะนำเกี่ยวกับวิธีคำนวณ Pi ด้วยวิธีตัวเลข"
การสร้างภาพ : "สร้างภาพของเมืองแห่งอนาคตด้วยรถบินได้และตึกระฟ้าสูง"
ค้นหารูปภาพ : "ค้นหาภาพสัตว์ใกล้สูญพันธุ์ในแคตตาล็อกภาพ"
การบูรณาการ arXiv : "ค้นหางานวิจัยล่าสุดเกี่ยวกับการเรียนรู้เชิงลึกในการประมวลผลภาษาธรรมชาติ"
การสร้างการสนทนา : "สร้างการสนทนาระหว่างผู้เชี่ยวชาญสามคนเพื่อหารือเกี่ยวกับวิธีตั้งค่า RAG แบบต่อเนื่องหลายรูปแบบ"
การจัดการไฟล์ : "บันทึกบทสรุปการสนทนาของเราเกี่ยวกับการเปลี่ยนแปลงสภาพภูมิอากาศเป็นไฟล์ชื่อ 'climate_change_summary.txt'"
การปรับปรุงตนเอง : "คำแนะนำในการปรับปรุง: เพื่อปรับปรุงคำตอบ ให้ค้นหาแหล่งข้อมูลอย่างเป็นทางการ"
รายการตรวจสอบ : "เริ่มรายการตรวจสอบใหม่เพื่อติดตามรายการงานทีละรายการ"
คุณสมบัติและเครื่องมือที่สำคัญ
การโต้ตอบทางเว็บ :
- ค้นหาข้อความ DuckDuckGo: ทำการค้นหาเว็บ
- ค้นหาข่าว DuckDuckGo: ค้นหาบทความข่าวล่าสุด
- DuckDuckGo Maps Search: ค้นหาสถานที่และธุรกิจ
- การค้นหารูปภาพ DuckDuckGo: ค้นหาภาพที่เปิดเผยต่อสาธารณะ
- เว็บเบราว์เซอร์: เรียกดูเว็บไซต์และดึงเนื้อหา
เครื่องมือวิกิพีเดีย :
- ค้นหา Wikipedia: ค้นหาหน้า Wikipedia ที่เกี่ยวข้อง
- Wikipedia Geodata Search: ค้นหาบทความ Wikipedia ตามที่ตั้งทางภูมิศาสตร์
- Wikipedia Page Retriever: ดึงเนื้อหาหน้า Wikipedia แบบเต็ม
การเขียนสคริปต์หลาม :
- รันสคริปต์ Python สำหรับการคำนวณ การทดสอบ และการสร้างเอาต์พุต รวมถึงข้อความและรูปภาพ
- สามารถเพิ่มโมดูล Python ให้กับล่าม Python ได้
- รหัส Python ทำงานในสภาพแวดล้อมที่ปลอดภัยซึ่งจัดทำโดย AWS Lambda
การจัดการเนื้อหา :
- การเก็บถาวรส่วนบุคคล: จัดเก็บและเรียกค้นเนื้อหาข้อความ Markdown หรือ HTML โดยใช้ฐานข้อมูลความหมาย
- Sketchbook: จัดการสมุดร่างแบบหลายหน้าสำหรับการเขียนและตรวจสอบเนื้อหาแบบยาว รองรับรูปแบบเอาต์พุตหลายรูปแบบ:
- Markdown (.md): เพื่อให้อ่านและแก้ไขได้ง่าย
- เอกสาร Word (.docx): สำหรับการแก้ไขเอกสาร
การจัดการภาพ :
- การสร้างภาพ: สร้างภาพตามข้อความแจ้ง
- การค้นหาแคตตาล็อกรูปภาพ: ค้นหารูปภาพตามคำอธิบาย
- การค้นหาความคล้ายคลึงกันของรูปภาพ: ค้นหารูปภาพที่คล้ายกันตามรูปภาพอ้างอิง
- รูปภาพสุ่ม: ดึงรูปภาพแบบสุ่มจากแค็ตตาล็อก
- รับรูปภาพตาม ID: ดึงรูปภาพเฉพาะจากแค็ตตาล็อกโดยใช้ ID
- จำนวนรูปภาพในแคตตาล็อก: ส่งกลับจำนวนรูปภาพทั้งหมดในแคตตาล็อก
- ดาวน์โหลดรูปภาพ: เพิ่มรูปภาพจาก URL ลงในแค็ตตาล็อก
บูรณาการ arXiv :
- ค้นหาและดาวน์โหลดเอกสาร arXiv
- จัดเก็บเนื้อหาที่เป็นกระดาษไว้ในที่เก็บถาวรเพื่อให้เรียกค้นได้ง่าย
การสร้างบทสนทนา :
- แปลงเนื้อหาเป็นการสนทนาระหว่างสองถึงสี่คน
- สร้างไฟล์เสียงสำหรับการสนทนาโดยใช้การอ่านออกเสียงข้อความ
การจัดการไฟล์ :
- บันทึกไฟล์: อนุญาตให้บันทึกเนื้อหาข้อความลงในไฟล์ที่มีชื่อที่ระบุในไดเร็กทอรีเอาต์พุต
การปรับปรุงตนเอง :
- ติดตามข้อเสนอแนะและข้อผิดพลาดสำหรับการปรับปรุงในอนาคต
รายการตรวจสอบ :
- จัดการรายการงานด้วยความสามารถในการเพิ่มรายการ ทำเครื่องหมายว่าเสร็จสมบูรณ์ และตรวจสอบความคืบหน้า
หากต้องการดูรายการเครื่องมือที่มีอยู่และการใช้งานโดยละเอียด โปรดดูที่ ./Config/tools.json
ความต้องการ
- เครื่องมือคอนเทนเนอร์: Docker หรือ Finch (หากต้องการติดตั้ง Finch ให้ทำตามคำแนะนำที่นี่)
- Python 3.12 หรือใหม่กว่า
- บัญชี AWS ที่มีสิทธิ์ที่เหมาะสมในการเข้าถึง Amazon Bedrock, AWS Lambda และ Amazon ECR
การติดตั้ง
โคลนที่เก็บ:
git clone https://github.com/danilop/multimodal-chat
cd multimodal-chat
สร้างและเปิดใช้งานสภาพแวดล้อมเสมือน (เป็นทางเลือก แต่แนะนำ):
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
ติดตั้งแพ็คเกจที่จำเป็น:
pip install -r requirements.txt
ตั้งค่าฟังก์ชัน AWS Lambda สำหรับการเรียกใช้โค้ด:
cd LambdaFunction
./deploy_lambda_function.sh
cd ..
หากต้องการใช้ Selenium สำหรับการท่องเว็บ ให้ติดตั้ง ChromeDriver การใช้โฮมบรูว์:
brew install --cask chromedriver
หากต้องการส่งสัญญาณเสียง ให้ติดตั้ง ffmpeg
การใช้โฮมบรูว์:
การตั้งค่า OpenSearch
คุณสามารถใช้อินสแตนซ์ OpenSearch ในเครื่องหรือเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้ สำหรับการตั้งค่าในเครื่อง:
นำทางไปยังไดเร็กทอรี OpenSearch:
ตั้งรหัสผ่านผู้ดูแลระบบ (การตั้งค่าครั้งแรก) ขั้นตอนนี้จะสร้างไฟล์ .env
และไฟล์ opensearch_env.sh
:
เริ่ม OpenSearch ในเครื่อง (จำเป็นต้องเข้าถึงไฟล์ .env
):
ตรวจสอบให้แน่ใจว่า OpenSearch (2 โหนด + แดชบอร์ด) เริ่มต้นอย่างถูกต้องโดยตรวจสอบเอาต์พุต
หากต้องการอัปเดต OpenSearch ให้ดาวน์โหลดอิมเมจคอนเทนเนอร์ใหม่โดยใช้สคริปต์นี้:
สำหรับการตั้งค่าเซิร์ฟเวอร์ระยะไกล ให้อัปเดตโค้ดการสร้างไคลเอ็นต์ในสคริปต์หลัก
หากต้องการเปลี่ยนรหัสผ่าน คุณจะต้องลบคอนเทนเนอร์ที่ใช้ finch
หรือ docker
ออก จากนั้นจึงตั้งรหัสผ่านใหม่
การใช้งาน
โมเดลเริ่มต้นสำหรับข้อความ รูปภาพ และการฝังจะอยู่ในไฟล์ Config/config.ini
โมเดลที่จะใช้ได้รับการระบุโดยใช้รหัสโมเดล Amazon Bedrock หรือ ID โปรไฟล์การอนุมานข้ามภูมิภาค คุณต้องมีสิทธิ์และการเข้าถึงโมเดลเหล่านี้ตามที่อธิบายไว้ในโมเดลพื้นฐานของ Access
ส่วนนี้ถือว่า OpenSearch กำลังทำงานอยู่ในเครื่องในหน้าต่างเทอร์มินัลอื่นตามที่อธิบายไว้ก่อนหน้านี้
โหลดรหัสผ่านผู้ดูแลระบบ OpenSearch ลงสู่สภาพแวดล้อม:
source OpenSearch/opensearch_env.sh
เรียกใช้แอปพลิเคชัน:
python multimodal_chat.py
หากต้องการรีเซ็ตข้อความและดัชนีหลายรูปแบบ (หมายเหตุ: สิ่งนี้จะไม่ลบรูปภาพใน ./Images/
):
python multimodal_chat.py --reset-index
เปิดเว็บเบราว์เซอร์แล้วไปที่ http://127.0.0.1:7860/ เพื่อเริ่มแชท
วิดีโอสาธิต
นี่คือตัวอย่างเล็กๆ น้อยๆ ของสิ่งที่คุณสามารถทำได้ในแอปพลิเคชันนี้
ท่องอินเทอร์เน็ตและใช้ไฟล์เก็บถาวรความหมาย
ในการสาธิตนี้:
- เรียกดูเว็บไซต์โดยใช้ Selenium และเครื่องมือเฉพาะสำหรับ DuckDuckGo (การค้นหา ข่าว การค้นหาทางภูมิศาสตร์) และ Wikipedia
- ใช้เครื่องมือเก็บถาวรข้อความความหมายเพื่อเก็บเอกสารและดึงข้อมูลตามคำสำคัญ
นำเข้าและค้นหารูปภาพ
ในการสาธิตนี้:
- การใช้ดัชนีต่อเนื่องหลายรูปแบบและระบบไฟล์ในเครื่องเพื่อจัดการแคตตาล็อกรูปภาพ
- จัดเก็บภาพพร้อมคำอธิบายที่สร้างขึ้น
- ดึงภาพตามคำอธิบายข้อความ (การค้นหาความหมาย)
- ดึงภาพโดยความคล้ายคลึงกับภาพอื่น
- ดึงภาพแบบสุ่ม
สร้างและค้นหาภาพ
ในการสาธิตนี้:
- สร้างภาพจากคำอธิบายที่เป็นข้อความ
- ข้อความเป็นรูปภาพสร้างขึ้นจากคำแนะนำในการแชท
- วิธีนี้ทำให้สามารถใช้การสนทนาโดยรวมเพื่อปรับปรุงข้อความพร้อมท์ได้
ล่ามรหัสหลาม
ในการสาธิตนี้:
- การเรียกใช้โค้ดที่สร้างโดย AI เพื่อแก้ไขปัญหา
- ทำงานเพื่อความปลอดภัยในฟังก์ชัน AWS Lambda พร้อมสิทธิ์พื้นฐาน
- ปรับใช้ผ่านคอนเทนเนอร์อิมเมจเพื่อเพิ่มโมดูล Python ได้อย่างง่ายดาย
- Python เท่านั้น แต่ขยายได้ง่าย
เขียนใน "สมุดสเก็ตช์ภาพ"
ในการสาธิตนี้:
- เครื่องมือช่วยเขียนข้อความที่มีรูปแบบยาว เช่น บทความ และบล็อกโพสต์)
- ให้การเข้าถึงตามลำดับสำหรับการแยกข้อความในหน้า
- เพื่อลด "ความไม่สมมาตร" ระหว่างขนาดอินพุตและเอาต์พุตของโมเดล
Sketchbook พร้อมการตรวจสอบโค้ด Python
ในการสาธิตนี้:
- ผลลัพธ์ที่ดีที่สุดใช้เครื่องมือมากกว่าหนึ่งอย่างร่วมกัน
- เริ่มต้นด้วยสมุดสเก็ตช์ภาพเพื่อเขียนบทความขนาดยาว
- บทความนี้มีข้อมูลโค้ด
- การตรวจสอบจะดำเนินการและทดสอบข้อมูลโค้ดทั้งหมด และอัปเดตแต่ละหน้าเพื่อแก้ไขโค้ด (หากจำเป็น) และเพิ่มผลลัพธ์จริง
การแก้ไขปัญหา
- หากคุณประสบปัญหากับ OpenSearch ให้ตรวจสอบการตั้งค่าการเชื่อมต่อและตรวจสอบให้แน่ใจว่าบริการกำลังทำงานอยู่
- สำหรับข้อผิดพลาดของฟังก์ชัน AWS Lambda ให้ตรวจสอบข้อมูลรับรอง AWS และสิทธิ์ของคุณ
- หากการประมวลผลภาพล้มเหลว ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารีที่จำเป็น และตรวจสอบสิทธิ์ของไฟล์
มีส่วนร่วม
ยินดีต้อนรับการมีส่วนร่วมกับ YAIA! โปรดดูแนวทางการสนับสนุนสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการส่งคำขอดึง รายงานปัญหา หรือคุณลักษณะคำขอ
ใบอนุญาต
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
เคล็ดลับการใช้งาน
- รวมเครื่องมือหลายอย่างสำหรับงานที่ซับซ้อน ตัวอย่างเช่น ใช้การค้นหาเว็บเพื่อค้นหาข้อมูล จากนั้นใช้สมุดร่างเพื่อเขียนสรุป และสุดท้ายก็สร้างการสนทนาเกี่ยวกับหัวข้อนั้น
- เมื่อทำงานกับรูปภาพ คุณสามารถสร้างรูปภาพใหม่ ค้นหารูปภาพที่มีอยู่ หรือดาวน์โหลดรูปภาพจากเว็บเพื่อเพิ่มลงในแค็ตตาล็อกของคุณได้
- ใช้การผสานรวม arXiv เพื่อติดตามงานวิจัยล่าสุดในสาขาที่คุณสนใจ
- เครื่องมือสร้างการสนทนาเหมาะอย่างยิ่งสำหรับการสร้างเนื้อหาที่น่าสนใจหรือการเตรียมการนำเสนอ
- ตรวจสอบและอัปเดตการปรับปรุงส่วนบุคคลของคุณเป็นประจำเพื่อติดตามความคืบหน้าและพื้นที่สำหรับการเติบโต
สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับส่วนประกอบเฉพาะหรือการใช้งานขั้นสูง โปรดดูเอกสารประกอบแบบอินไลน์ในซอร์สโค้ด