HydraLLM: ออร์เคสเตรเตอร์อัจฉริยะ
(github.com/TaewonyNet)HydraLLM: ออร์เคสเตรเตอร์อัจฉริยะ
HydraLLM คือเกตเวย์ที่รับรู้บริบทซึ่งออกแบบมาเพื่อใช้ทรัพยากร LLM หลายตัวได้อย่างมีประสิทธิภาพ โดยทำการกำหนดเส้นทางคำขอครอบคลุม Gemini / Groq / Cerebras พร้อมทั้งมีเซอร์กิตเบรกเกอร์แยกตามผู้ให้บริการ, การหมุนเวียนคีย์แบบสุ่ม (รวมคูลดาวน์ที่รับรู้โควตา), ความสามารถในการเสริมข้อมูลจากเว็บแบบเรียลไทม์ และจัดวาง OpenAI-compatible API บน Clean Architecture ที่เคร่งครัด (Domain ตามด้วย Services ตามด้วย Adapters ตามด้วย API)
- เวอร์ชัน:
1.3.0(pyproject.toml) - Python:
3.10+ - จุดเริ่มรัน:
python main.py - UI แบบรวมศูนย์:
http://localhost:8000/ui - เอ็นด์พอยต์ที่เข้ากันได้กับ OpenAI:
POST /v1/chat/completions
เอกสารสเปกทางเทคนิคของ HydraLLM (SPEC)
1. ภาพรวม
HydraLLM คือเกตเวย์ LLM ที่มีความพร้อมใช้งานสูงและยึดตาม Clean Architecture โดยให้ความสามารถด้านการกำหนดเส้นทางอัจฉริยะระหว่างผู้ให้บริการหลายราย, การแยกปัญหาขัดข้องด้วยเซอร์กิตเบรกเกอร์, และการเสริมข้อมูลจากเว็บแบบเรียลไทม์ พร้อมรองรับสเปก OpenAI API อย่างสมบูรณ์
2. สเปกคอมโพเนนต์หลัก
2.1 Gateway (src/services/gateway.py)
- การออร์เคสเตรต: ประสานลำดับงานตั้งแต่โหลดเซสชัน -> วิเคราะห์บริบท -> เสริมข้อมูลจากเว็บ -> รันแบบทนทานต่อความขัดข้อง -> จัดเก็บแบบถาวร
- เหตุผลในการกำหนดเส้นทางเชิงเทคนิค: ใส่เหตุผลของการตัดสินใจไว้ในทุกคำตอบด้วยค่าคงที่ที่ชัดเจน
USER_HINT: ผู้ใช้ระบุอย่างชัดเจนTOKEN_OPTIMIZED: ปรับให้เหมาะตามจำนวนโทเค็นWEB_INTENT_SEARCH: ผลการวิเคราะห์เจตนาการค้นหาเว็บMULTIMODAL_ANALYSIS: ตรวจพบความจำเป็นในการประมวลผลภาพKEY_AVAILABILITY: สถานะคีย์และผลการเฟลโอเวอร์
2.2 Context Analyzer (src/services/analyzer.py)
- อัลกอริทึมการกำหนดเส้นทาง: วิเคราะห์ความยาวโทเค็น, การเป็นมัลติโหมดัล, และเจตนาการค้นหาเว็บ เพื่อสร้าง
RoutingDecisionที่เหมาะสมที่สุด - การกรองความพร้อมใช้งานแบบไดนามิก: สะท้อนสถานะแบบเรียลไทม์ของ
KeyManagerเพื่อยกเว้นโมเดลของผู้ให้บริการที่ไม่มีคีย์ใช้งานอยู่จากตัวเลือก
2.3 Key Manager (src/services/key_manager.py)
- การหมุนเวียนคีย์: สุ่มเลือกภายในพูลคีย์ที่ใช้งานอยู่และติดตามการใช้งาน
- การจัดการความขัดข้อง: ใช้คูลดาวน์ที่แตกต่างกันตามประเภทข้อผิดพลาด
403 Forbidden: 24 ชั่วโมง (รองรับความขัดข้องถาวรระดับคีย์)429 Rate Limit / Quota: 1 ชั่วโมง- ข้อผิดพลาดการสื่อสารอื่น ๆ: 5 นาที
2.4 Web Context Service (src/services/web_context_service.py)
- การเสริมข้อมูล: รวบรวมข้อมูลแบบเรียลไทม์ด้วย Playwright/Scrapling และฉีดเข้าไปในพรอมป์ต์
- การติดตามประสิทธิภาพ: บันทึกอัตราความสำเร็จ, จำนวนอักขระที่เก็บรวบรวม, และเวลาแฝง ผ่านตาราง
scraping_metrics
3. รูปแบบความทนทานและการกู้คืน (Troubleshooting Insights)
- Concurrency Guard: ใช้
asyncio.Lockและthreading.LockกับงานเขียนของKeyManagerและSessionManagerเพื่อรับประกันความถูกต้องของข้อมูลในสภาวะโหลดสูง - Self-Healing Scraper: ทำงานด้วยกลไกรีสตาร์ตอัตโนมัติเมื่อตรวจพบว่าบราว์เซอร์อินสแตนซ์ล่ม
- Unpacking Guard: ยึดตามชนิดคืนค่าที่เข้มงวด (
tuple[list, str | None]) และการ์ดป้องกัน เพื่อหลีกเลี่ยงข้อผิดพลาดNoneTypeที่อาจเกิดขึ้นระหว่างประมวลผลข้อมูลเสริม
ยังไม่มีความคิดเห็น