Flamehaven FileSearch — เอนจินค้นหาเอกสาร RAG โอเพนซอร์สที่โฮสต์เองได้
(github.com/flamehaven01)🔥Flamehaven FileSearch
- Flamehaven FileSearch คือ เอนจินค้นหาเชิงความหมายแบบโอเพนซอร์สที่โฮสต์เองได้ ซึ่งช่วยให้ใครก็ตามสามารถสร้างระบบ RAG (Retrieval-Augmented Generation) ที่อิงเอกสารได้ภายใน 5 นาที
- ทำงานบนพื้นฐานของ Python, FastAPI และ SQLite และใช้ Google Gemini Embedding เพื่อทำ การถาม-ตอบด้วยภาษาธรรมชาติ จากเอกสารหลากหลายประเภท เช่น PDF/DOCX/TXT/MD
ทำไมถึงสร้างมันขึ้นมา?
- โครงการ RAG แบบโอเพนซอร์สส่วนใหญ่ทำงานได้ดีในสภาพแวดล้อมอย่าง Colab หรือ Jupyter แต่เมื่อจะนำขึ้นเซิร์ฟเวอร์เพื่อใช้งานจริง มักมีโครงสร้างที่ซับซ้อนเกินไปหรือยังขาดเสถียรภาพ
- Flamehaven FileSearch ถูกออกแบบภายใต้เป้าหมาย “สแตก RAG ขนาดเบาที่ใช้งานได้จริง” เพื่อให้นักวิจัย สตาร์ทอัป และนักพัฒนารายบุคคลสามารถทดลองค้นหาเชิงความหมายกับข้อมูลของตนเองได้ทันที
ทำไมจึงน่าจับตา?
- อิสระอย่างสมบูรณ์: ไม่ต้องพึ่งพาเซิร์ฟเวอร์ภายนอกหรือคลาวด์ และข้อมูลทั้งหมดถูกเก็บไว้ในเครื่องโลคัล
- โครงสร้างที่เน้นนักพัฒนา: Python SDK + REST API พร้อมเอกสาร Swagger ที่สร้างอัตโนมัติบน FastAPI
- เผยแพร่เป็นแพ็กเกจบน PyPI: ติดตั้งได้ทันทีจาก PyPI — เพียงบรรทัดเดียว
pip install flamehaven-filesearch[api]ก็ติดตั้งแบบอัตโนมัติครบชุด - พร้อมใช้งานทันที: หลังติดตั้งสามารถรันเซิร์ฟเวอร์ได้ทันทีด้วยคำสั่ง
flamehaven-apiและทดสอบ API ได้ที่/docsบนเบราว์เซอร์ - ขยายต่อได้: รองรับที่เก็บข้อมูลแบบ SQLite, สถาปัตยกรรมปลั๊กอิน และการดีพลอยด้วย Docker
- เหมาะกับการศึกษา/วิจัย: ใช้ Gemini Embedding จึงเหมาะอย่างยิ่งสำหรับการฝึกปฏิบัติด้าน semantic search บนพื้นฐาน LLM รุ่นใหม่
มีอะไรอยู่ข้างในบ้าง? (ไฮไลต์)
-
Python SDK:
from flamehaven_filesearch import FlamehavenFileSearch→ มีฟังก์ชันครบสำหรับอัปโหลดเอกสาร / ค้นหา / จัดการสโตร์
-
REST API: เอนด์พอยต์
/upload,/search,/stores+ Swagger UI -
รองรับ Docker:
docker run -e GEMINI_API_KEY=... -p 8000:8000 flamehaven/filesearch:latest -
โครงสร้าง:
core(เอนจิน)/api(FastAPI)/data(SQLite)/examples/docs
ลองใช้อย่างรวดเร็ว
1️⃣ แพ็กเกจ PyPI
Flamehaven FileSearch สามารถติดตั้งได้ทันทีผ่าน PyPI
ดูเวอร์ชันล่าสุด: https://pypi.org/project/flamehaven-filesearch
pip install flamehaven-filesearch[api]
2️⃣ ติดตั้ง
pip install flamehaven-filesearch[api]
export GEMINI_API_KEY="your-google-gemini-key"
flamehaven-api
3️⃣ อัปโหลดเอกสารและค้นหา
curl -X POST "http://localhost:8000/upload" -F "file=@handbook.pdf"
curl "http://localhost:8000/search?q=vacation+policy"
4️⃣ ตัวอย่างการใช้ SDK
from flamehaven_filesearch import FlamehavenFileSearch
fs = FlamehavenFileSearch()
fs.upload_file("handbook.pdf")
print(fs.search("vacation policy")["answer"])
ประสิทธิภาพและสเปก
- สภาพแวดล้อม: Ubuntu 22.04 / 2vCPU / 4GB RAM / SSD
- อัปโหลด PDF ขนาด 10MB → ประมาณ 5 วินาที
- เวลาเฉลี่ยในการตอบกลับการค้นหา → 2 วินาที (เมื่ออ้างอิงแหล่งข้อมูล 5 รายการ)
- การลบ/สร้างสโตร์ → ภายใน 1 วินาที
- โอเวอร์เฮดของสตอเรจ → ประมาณ 5% ของขนาดเอกสาร
โรดแมป
- v1.1 : แคชและการจัดการโควตา
- v1.2 : การค้นหาแบบแบตช์ + WebSocket streaming
- v2.0 : รองรับเอกสารหลายภาษา, แดชบอร์ดวิเคราะห์
- อนาคต : ผสาน Pinecone/Weaviate vector DB, OCR, collaborative store
ใบอนุญาต
- MIT License (โอเพนซอร์สเต็มรูปแบบ)
🛡️ ประกาศด้านความปลอดภัยและบัญชี GitHub ของ Flamehaven
เมื่อไม่นานมานี้ มีการตรวจพบความพยายามเข้าสู่ระบบที่น่าสงสัยในบัญชี GitHub ของ Flamehaven (บัญชีหลักนี้) ส่งผลให้บัญชีอยู่ในสถานะถูกระงับชั่วคราว ขณะนี้กำลังร่วมมือกับทีมความปลอดภัยของ GitHub เพื่อตรวจสอบปัญหา
จากเหตุการณ์ครั้งนี้ บัญชีที่มี dir2md, flashrecord, crom-efficient และ Arr-medic-cyp3a4 รวมอยู่ด้วย จะหยุดใช้งานชั่วคราวไปก่อนในระยะนี้
ขออภัยผู้ใช้งานทุกท่านอย่างจริงใจสำหรับความไม่สะดวก และขอความกรุณาให้รอสักระยะจนกว่าการตรวจสอบด้านความปลอดภัยจะเสร็จสิ้น
4 ความคิดเห็น
อัปเดต: เปิดตัว v1.2.2
หลังจากโพสต์ก่อนหน้านี้ ตอนนี้อัปเดตมาถึง v1.2.2 แล้ว ณ วันนี้
สรุปเฉพาะการเปลี่ยนแปลงแบบสั้น ๆ ได้ดังนี้:
เสริมการทดสอบ/ความเสถียร
บริการเข้ารหัส: ทดสอบเส้นทาง round trip ของ encrypt/decrypt ที่อิงกับคีย์ env + เส้นทาง invalid token
การค้นหาแบบแบตช์: คิวลำดับความสำคัญแบบขนาน, บริการที่ยังไม่ได้เริ่มต้น → 503, แยกข้อยกเว้นตามแต่ละคิวรี
Redis cache: ใช้ in-memory fake client เพื่อทดสอบ get/set/delete/clear + การพร้อมใช้งาน
รวม
cache_redis.pyที่ก่อนหน้านี้ตกหล่นจาก coverage เข้าเป็นเป้าหมายของ coverageความพร้อมของบริการ (Service readiness)
เมื่อเซิร์ฟเวอร์เริ่มทำงานครั้งแรก จะสร้างสโตร์พื้นฐานและเอกสาร fallback ขนาดเล็กโดยอัตโนมัติ
แม้จะยังไม่ได้อัปโหลดอะไรเลย
/searchและ/healthก็จะตอบกลับ 200 ได้ทันที→ นำไปใช้กับเดโม/CI health check/การบูตเอเจนต์ได้ทันที
การจัดระเบียบด้านการปฏิบัติการ
จัดระเบียบสตริงเวอร์ชัน, log metadata, Prometheus label และชื่อ OpenAPI ให้เป็น v1.2.2
Redis ยังเป็นตัวเลือกเหมือนเดิม และถ้าไม่มี ก็จะ fallback ไปใช้ in-process LRU cache อย่างเป็นธรรมชาติ
ไม่มี breaking change ผู้ใช้เดิมอัปเกรดได้ตามปกติ
ตอนนี้กำลังค่อย ๆ ปรับให้เป็นฝั่งที่ “พร้อมใช้งานในระบบจริงได้ทันที” มากขึ้นเรื่อย ๆ.
🚀 เปิดตัว Flamehaven Filesearch v1.2.1!
ขอเปิดเผย Flamehaven Filesearch เวอร์ชันล่าสุด v1.2.1 ที่ได้รับการปรับปรุงอย่างต่อเนื่องนับตั้งแต่การอัปเดตครั้งก่อน โดยรีลีสครั้งนี้มุ่งเน้นไปที่การเสริมความปลอดภัย การขยายเครื่องมือสำหรับผู้ดูแล และการปรับปรุงความสะดวกในการปฏิบัติการ
🔐 อัปเดตหลัก
🔺เพิ่ม Admin Cache Controls
สามารถตรวจสอบสถานะแคชและสั่งล้างแคชได้ผ่านเส้นทาง /api/admin/cache/stats และ /api/admin/cache/flush (สำหรับ Admin เท่านั้น)
🔺เสริมสิทธิ์ของ API Key
คีย์ที่ไม่มีสิทธิ์ Admin จะได้รับ 403 เมื่อใช้ฟังก์ชันผู้ดูแล
API Key ใหม่จะมีสิทธิ์ admin รวมอยู่โดยค่าเริ่มต้น
🔺นำ IAMProvider Hook มาใช้
เตรียมโครงสร้างสำหรับการผสานรวม OIDC/IAM backend ในอนาคต
🔺ขยาย Metrics
เพิ่ม Cache, health_status และ prometheus placeholder เพื่อช่วยให้ใช้งานแดชบอร์ดได้ดีขึ้น
🔺อัปเดต Frontend
เชื่อมหน้า Cache / Metrics เข้ากับ backend
เชื่อมฟังก์ชันกรอก Token ในหน้า Upload / Admin
ปรับปรุงหน้า Landing และ Dashboard ใหม่
🔺เสริมการทดสอบ
เพิ่ม test_admin_cache.py เพื่อนำการทดสอบ Admin API ที่เกี่ยวข้องกับแคชเข้ามาใช้
🔺อัปเดตเอกสาร
อัปเดตเวอร์ชันใน README และเสริมคู่มือด้านความปลอดภัย รวมถึงตัวแปรสภาพแวดล้อม FLAMEHAVEN_ENC_KEY
🐛 Fixed
บล็อกการเข้าถึง (403) เมื่อมีการร้องขอฟังก์ชันผู้ดูแลโดยไม่มีสิทธิ์ Admin
🔗 GitHub: https://github.com/flamehaven01/Flamehaven-Filesearch
เวอร์ชันนี้ยังได้วางรากฐานสำหรับการผสานรวม IAM และการยกระดับแดชบอร์ดที่วางแผนไว้ในอนาคตด้วย
เมื่อวานได้ปล่อย Flamehaven FileSearch v1.2.0 แล้ว เวอร์ชันนี้มุ่งเน้นการเปลี่ยนทั้งบริการจาก “public API” ไปเป็นแพลตฟอร์มระดับองค์กรที่เน้นความปลอดภัยและการขยายระบบ
การเปลี่ยนแปลงหลักมีดังนี้:
เพิ่มระบบยืนยันตัวตนและสิทธิ์การใช้งาน API
ทุก protected endpoint ต้องใช้การยืนยันตัวตนแบบ Bearer Token
API Key รองรับสิทธิ์แบบละเอียด เช่น อัปโหลด/ค้นหา/store/ลบ พร้อม rate limit แยกตามคีย์, audit log และการจัดเก็บเป็น SHA256 hash (ไม่เก็บคีย์ต้นฉบับ)
เพิ่ม Admin Dashboard
เป็นเว็บ UI สำหรับสร้าง/ดู/เพิกถอน API Key รวมถึงดูสถิติคำขอและการกระจายการใช้งานของ endpoint
เขียนด้วย HTML/CSS/JS แบบบรรจุครบในตัวทั้งหมด จึงไม่มี dependency ภายนอก
Batch Search API
รองรับการประมวลผล 1–100 คิวรีในคำขอเดียว
มีโหมดรันแบบขนาน/ตามลำดับ, การจัดเรียงตามลำดับความสำคัญ, การแยกข้อผิดพลาดรายคิวรี และเมตริกด้านเวลาที่ละเอียด
Redis cache backend
เป็นตัวเลือก distributed cache สำหรับสภาพแวดล้อมแบบ multi-worker
มีเวลาในการดึงข้อมูล <10ms, automatic LRU fallback และช่วยลดจำนวนการเรียก LLM ได้ 40–60%
มีเทมเพลตสำหรับ deployment (Docker/Kubernetes)
มีตัวอย่าง Docker, Docker Compose และ Kubernetes (ConfigMap/Secret/Deployment) ให้พร้อมใช้งานได้ทันที
สรุปประสิทธิภาพ:
cache hit: <10ms
cache miss (เรียก LLM): ~0.5–3s
Batch Search (10 รายการ): ~2–5s
GitHub: https://github.com/flamehaven01/Flamehaven-Filesearch
หากมีข้อเสนอแนะเกี่ยวกับการออกแบบความปลอดภัย, การใช้งาน API หรือโครงสร้างการ deploy ยินดีต้อนรับเสมอ
v1.2.1 (ปรับปรุงการยืนยันตัวตนของแอดมิน, Redis settings UI) และ v1.3.0 (key rotation + OAuth2/OIDC) กำลังอยู่ระหว่างเตรียมการ
วันนี้ได้ปล่อย v1.1.0 แล้ว
เวอร์ชันนี้มีการปรับปรุงหลัก ๆ ได้แก่ แพตช์ช่องโหว่ path traversal, อัปเดตความปลอดภัยของ FastAPI/Starlette, การติดตาม request ID, rate limit, แคช (hit <10ms), และการเพิ่ม Prometheus metrics เป็นต้น โดยทำงานได้เสถียรกว่าเวอร์ชันก่อนหน้าอย่างมาก
อัปเดตครั้งนี้ยังคงมุ่งเน้นไปที่สถาปัตยกรรมที่มีน้ำหนักเบาและสามารถโฮสต์เองได้ ขอบคุณครับ