ข้ามไปเนื้อหาหลัก

สร้างระบบวิเคราะห์ CSV ด้วย SQLite และ LangChain ให้ปลอดภัย

เรียนรู้วิธีสร้างระบบฐานข้อมูล SQLite จากไฟล์ CSV ควบคุมด้วย SQL แบบอ่านอย่างเดียว เพื่อใช้งานร่วมกับ LangChain อย่างปลอดภัย

เรียบเรียงโดย AI
Inewgen
31 Aug 20263 นาทีอ่าน (0 ครั้ง)
แชร์
สร้างระบบวิเคราะห์ CSV ด้วย SQLite และ LangChain ให้ปลอดภัย

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • สร้างรากฐานวิเคราะห์ CSV สู่ SQLite ที่ปลอดภัยสำหรับ LangChain
  • ควบคุมการทำงานด้วย SQL แบบอ่านอย่างเดียวและจำกัดผลลัพธ์ไม่เกิน 100 แถว
  • แยกตรรกะความปลอดภัยออกจากโมเดลภาษาเพื่อลดความเสี่ยงด้านข้อมูล
  • ใช้งาน Python 3.10 ขึ้นไป พร้อมโมดูลมาตรฐานโดยไม่ต้องพึ่งพาไลบรารีภายนอก

การพัฒนาเอเจนต์ปัญญาประดิษฐ์เพื่อดึงข้อมูลมักเผชิญกับความท้าทายด้านความปลอดภัย โดยเฉพาะเมื่อต้องให้ระบบ AI เข้าถึงฐานข้อมูล บทความเชิงเทคนิคจาก Gate of AI ได้นำเสนอแนวทางการสร้างระบบวิเคราะห์ข้อมูลจากไฟล์ CSV สู่ฐานข้อมูล SQLite ที่มีการควบคุมความปลอดภัยอย่างเข้มงวด เพื่อให้ระบบเอเจนต์รูปแบบ LangChain สามารถเรียกใช้งานได้อย่างปลอดภัยหลังจากผ่านการตรวจสอบเอกสารอย่างเป็นทางการแล้ว

แนวคิดหลักของสถาปัตยกรรมนี้คือการแยกส่วนการทำงานที่ต้องมีความแน่นอนออกจากตัวโมเดลภาษา แม้ว่า AI จะมีความสามารถในการเลือกเครื่องมือและแปลงคำถาม แต่ไม่ควรได้รับสิทธิ์เข้าถึงฐานข้อมูลแบบเขียนได้ ฟังก์ชันเชลล์ หรือการรันโค้ด Python โดยไม่มีการจำกัดสิทธิ์ แอปพลิเคชันหลักควรเป็นผู้ควบคุมขั้นตอนการนำเข้าข้อมูล การเข้าถึงฐานข้อมูล ขีดจำกัดของคิวรี และนโยบายการบันทึกข้อมูลทั้งหมด

ในทางปฏิบัติ การให้สิทธิ์ AI เข้าถึงฐานข้อมูลโดยตรงถือเป็นความเสี่ยงด้านความปลอดภัยขั้นสูง การสร้างชั้นความปลอดภัย (Security Boundary) ด้วยการตรวจสอบ SQL แบบอ่านอย่างเดียวและการเปิดฐานข้อมูลในโหมด Read-Only ผ่าน URI ช่วยป้องกันการโจมตีประเภท SQL Injection หรือการแก้ไขข้อมูลโดยไม่ตั้งใจ แม้ว่าตัวโมเดลภาษาจะสร้างคำสั่งผิดพลาดก็ตาม

ระบบต้นแบบนี้พัฒนาขึ้นด้วยภาษา Python 3.10 ขึ้นไป โดยอาศัยเพียงไลบรารีมาตรฐานอย่างโมดูล sqlite3 เท่านั้น โครงสร้างโปรเจกต์ประกอบด้วยไฟล์สำคัญดังนี้:

  • sample_data.py สำหรับสร้างข้อมูลตัวอย่าง
  • database.py สำหรับจัดการฐานข้อมูลและการตรวจสอบความปลอดภัย
  • app.py สำหรับเป็นจุดเชื่อมต่อการทำงานของแอปพลิเคชัน
  • tests/test_database.py สำหรับชุดทดสอบการทำงาน

กระบวนการนำเข้าข้อมูลจะเริ่มจากการปรับแต่งหัวข้อ CSV ให้เป็นตัวระบุในฐานข้อมูลที่ปลอดภัย สร้างตารางคำสั่งซื้อ และใช้การแทรกข้อมูลแบบกำหนดพารามิเตอร์ ข้อมูลที่นำเข้าทั้งหมดจะถูกจัดเก็บเป็นข้อความเพื่อป้องกันปัญหาการแปลงค่าที่ไม่ต้องการ เช่น รหัสที่มีเลขศูนย์นำหน้า ขณะที่การวิเคราะห์เชิงตัวเลขจะบังคับให้แปลงประเภทข้อมูลเป็น REAL อย่างชัดเจน

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

chromebook notebook computer office desk workspace

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ในส่วนของเกราะป้องกันคำสั่ง SQL ระบบจะทำการปฏิเสธคำสั่งที่มีเครื่องหมายคอมเมนต์ เครื่องหมายอัฒภาค คิวรีแบบเรียกซ้ำ คำสั่งเริ่มต้นที่ไม่ใช่การอ่าน และรายการปฏิบัติการระดับผู้ดูแลระบบหรือการเขียนข้อมูล นอกจากนี้ยังเปิดฐานข้อมูลผ่าน SQLite Read-Only URI และจำกัดจำนวนแถวที่ส่งคืนไม่ให้เกิน 100 แถว เพื่อเป็นชั้นป้องกันเสริมอีกชั้นหนึ่ง

100จำกัดจำนวนแถวสูงสุดที่ส่งคืน
3.10เวอร์ชัน Python ขั้นต่ำที่รองรับ

ชุดทดสอบควรได้รับการตรวจสอบการนำเข้าและเกราะป้องกันคิวรีโดยไม่ต้องเรียกใช้โมเดล เพื่อให้สามารถตรวจสอบข้อผิดพลาดได้อย่างรวดเร็วและคงความปลอดภัยไว้ได้อิสระจากรูปแบบของพรอมต์ เมื่อมีเอกสารอย่างเป็นทางการสำหรับเวอร์ชันของ LangChain ที่ใช้งาน นักพัฒนาควรเปิด expose ฟังก์ชันแคบๆ เพียงสองฟังก์ชัน ได้แก่ฟังก์ชันดึงโครงสร้างสกีมาและฟังก์ชันรันคิวรีที่ผ่านการตรวจสอบแล้วเท่านั้น

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้