เอกสารอ้างอิงการประยุกต์ใช้งาน นี่คือสถาปัตยกรรมและรายการตรวจสอบขอบเขตงานเชิงตัวอย่าง ไม่ใช่โครงการของลูกค้าที่ผ่านการตรวจสอบแล้วหรือการใช้งานจริงที่มีการวัดผล เทคโนโลยี ขอบเขตการผสานระบบ และรายการส่งมอบจะตกลงกันตามบรีฟจริง
สถานการณ์และข้อจำกัด
ธุรกิจที่ต้องการให้ AI ตอบคำถามจากเอกสารผลิตภัณฑ์ นโยบาย หรือประวัติการสนับสนุนของตนเอง ข้อกำหนดที่มีผลต่อการตัดสินใจด้านสถาปัตยกรรมจริง ได้แก่ คำตอบต้องอ้างอิงแหล่งที่มา ระบบต้องบอกว่าไม่ทราบแทนการแต่งคำตอบ ต้นทุนต่อการสนทนาต้องอยู่ภายใต้ขอบเขต และคุณภาพต้องวัดผลได้ก่อนและหลังการเปลี่ยนพรอมป์หรือโมเดล
สถาปัตยกรรม
เลเยอร์และความรับผิดชอบ
| เลเยอร์ | เทคโนโลยี | ความรับผิดชอบ |
|---|---|---|
| การนำเข้าข้อมูล | เวิร์กเกอร์ Python | การแยกวิเคราะห์เอกสาร การแบ่งเป็นชิ้น การสร้างเวกเตอร์ฝังตัว และการดึงข้อมูลเมทาดาทา ทำงานเป็นไปป์ไลน์ เพื่อให้การสร้างดัชนีใหม่เป็นการดำเนินงานตามปกติ ไม่ใช่การสร้างระบบใหม่ทั้งหมด |
| ที่จัดเก็บเวกเตอร์ | PostgreSQL + pgvector | จัดเก็บเวกเตอร์ฝังตัวของชิ้นข้อมูลไว้พร้อมกับเมทาดาทาเชิงสัมพันธ์ การใช้ฐานข้อมูลหนึ่งชุดแทนบริการเวกเตอร์แยกต่างหากช่วยให้การจัดการสิทธิ์และการสำรองข้อมูลง่ายขึ้นในขนาดนี้ |
| การดึงข้อมูล | บริการ Go | การค้นหาแบบผสม: ความคล้ายคลึงของเวกเตอร์ร่วมกับการจับคู่คีย์เวิร์ด แล้วจัดอันดับใหม่ การเรียกคืนด้วยคีย์เวิร์ดช่วยตรวจจับหมายเลขชิ้นส่วนและรหัสที่ตรงกันแบบเจาะจง ซึ่งการฝังเวกเตอร์มักพลาด |
| การตอบคำถาม | บริการ Go ที่เรียกใช้ API ของโมเดล | ประกอบพรอมป์พร้อมบริบทที่ดึงมา การบังคับใช้อ้างอิงแหล่งที่มา การตอบกลับแบบสตรีม และงบประมาณโทเค็นต่อคำขอ |
| กลไกป้องกัน | เลเยอร์แอปพลิเคชัน | ตรวจสอบขอบเขต ปฏิเสธเมื่อความเชื่อมั่นของการดึงข้อมูลต่ำ กรองข้อมูลส่วนบุคคล และส่งต่อไปยังคิวเจ้าหน้าที่ |
| ผู้ดูแลระบบ | แผงผู้ดูแลระบบ Vue | การจัดการเอกสาร การเรียกใช้การสร้างดัชนีใหม่ การตรวจสอบการสนทนา ชุดประเมินผล และแดชบอร์ดต้นทุน |
โมเดลข้อมูล
ตารางด้านล่างเป็นที่จัดเก็บกฎซึ่งทุกส่วนอื่นต้องพึ่งพา การกำหนดสิ่งเหล่านี้ผิดคือสาเหตุที่ทำให้เดโมที่ใช้งานได้กลายเป็นระบบที่ต่อยอดไม่ได้
เอนทิตีหลัก
| เอนทิตี | ฟิลด์หลัก ความสัมพันธ์ และกฎ |
|---|---|
| document / version | เอกสารต้นฉบับพร้อมประวัติเวอร์ชันและวันที่มีผล เพื่อให้สามารถติดตามคำตอบกลับไปยังฉบับเอกสารที่เป็นต้นเหตุของคำตอบได้ |
| chunk | ส่วนข้อความพร้อมเวกเตอร์ฝังตัว เส้นทางหัวข้อ จำนวนโทเค็น และตัวชี้กลับไปยังเอกสารกับตำแหน่งของส่วนข้อความ ตำแหน่งนี้ทำให้ลิงก์อ้างอิงชี้ไปยังตำแหน่งที่ถูกต้องแทนที่จะชี้ไปยังไฟล์ทั้งไฟล์ |
| access_scope | ระบุว่าบทบาทหรือผู้เช่ารายใดสามารถดึงชิ้นข้อมูลได้ การกรองเกิดขึ้นภายในคำค้นสำหรับการดึงข้อมูลเสมอ ไม่ใช่หลังการสร้างคำตอบ มิฉะนั้นเนื้อหาที่จำกัดสิทธิ์อาจรั่วไหลเข้าไปในคำตอบก่อนที่การตรวจสอบจะทำงาน |
| conversation / message | ประวัติการโต้ตอบพร้อมรหัสชิ้นข้อมูลที่ดึงมา โมเดลที่ใช้ จำนวนโทเค็น และเวลาแฝงต่อข้อความ ซึ่งทำให้สามารถระบุต้นทุนและคุณภาพต่อการสนทนาได้ |
| feedback | การกดถูกใจหรือไม่ถูกใจ การแก้ไข และแฟล็กการส่งต่อสำหรับแต่ละคำตอบ ซึ่งจะถูกนำไปสร้างชุดประเมินผลแทนที่จะหายไปในไฟล์บันทึก |
| eval_case | คำถาม แหล่งที่มาที่คาดหวัง และบันทึกเกณฑ์การยอมรับ ใช้ทดสอบกับการเปลี่ยนพรอมป์หรือโมเดลทุกครั้ง เพื่อให้ตรวจพบการถดถอยก่อนเผยแพร่ แทนที่จะให้ลูกค้าเป็นผู้พบ |
อินเทอร์เฟซหลัก
เอนด์พอยต์ที่รองรับกฎทางธุรกิจ
| เอนด์พอยต์ | วัตถุประสงค์และหมายเหตุด้านการทำงานพร้อมกัน |
|---|---|
| POST /api/v1/ingest | จัดคิวเอกสารสำหรับการแยกวิเคราะห์ การแบ่งเป็นชิ้น และการสร้างเวกเตอร์ฝังตัว ทำงานแบบ idempotent ต่อ (document, version) ดังนั้นการส่งซ้ำจะแทนที่ข้อมูลเดิมแทนการสร้างข้อมูลซ้ำ |
| POST /api/v1/chat | สตรีมคำตอบ ใช้ขอบเขตการเข้าถึงกับการดึงข้อมูล จำกัดโทเค็นบริบท บังคับใช้อ้างอิงแหล่งที่มา และส่งการปฏิเสธเมื่อความเชื่อมั่นของการดึงข้อมูลต่ำกว่าเกณฑ์ที่กำหนด |
| POST /api/v1/chat/{id}/escalate | ส่งต่อการสนทนาพร้อมบริบททั้งหมดไปยังคิวเจ้าหน้าที่ ซึ่งเป็นกลไกระบายแรงกดดันที่ช่วยให้ระบบซึ่งมีขอบเขตชัดเจนยังคงซื่อตรง แทนการบังคับให้ระบบตอบทุกเรื่อง |
| POST /api/v1/eval/run | เรียกใช้ชุดประเมินผลกับการกำหนดค่าปัจจุบัน และรายงานอัตราผ่านเกณฑ์กับความแม่นยำของการอ้างอิงต่อกรณี |
| GET /api/v1/usage | บันทึกบัญชีโทเค็นและต้นทุนต่อผู้เช่าและต่อช่วงเวลา ซึ่งเป็นพื้นฐานสำหรับการจำกัดอัตราการใช้งานและการแจ้งเตือนงบประมาณ |
การตัดสินใจทางเทคนิค
- การดึงข้อมูลแบบผสม ไม่ใช่เวกเตอร์อย่างเดียว การดึงข้อมูลด้วยเวกเตอร์อย่างเดียวอาจพลาดตัวระบุที่ตรงกันแบบเจาะจง เช่น หมายเลขชิ้นส่วน รหัสข้อผิดพลาด หรือการอ้างอิงบทความ ควรเปรียบเทียบแนวทางการดึงข้อมูลกับคำถามในชุดประเมินผลจริง การจับคู่คีย์เวิร์ดช่วยอุดช่องว่างนี้ และการจัดอันดับใหม่จะรวมผลลัพธ์ทั้งสองแบบ
- บังคับใช้อ้างอิง ไม่ใช่เพียงร้องขอ การขอให้โมเดลอ้างอิงแหล่งที่มาอย่างสุภาพให้ผลลัพธ์ที่ไม่น่าเชื่อถือ คำตอบจะถูกตรวจสอบกับรหัสชิ้นข้อมูลที่ดึงมาและถูกปฏิเสธเมื่อไม่มีการอ้างอิงใด ๆ ซึ่งเป็นความแตกต่างระหว่างระบบที่คุณไว้วางใจได้กับระบบที่ให้คำตอบฟังดูสมเหตุสมผล
- เกณฑ์การปฏิเสธตามความเชื่อมั่นของการดึงข้อมูล คำตอบที่ผิดแต่ดูมั่นใจมีต้นทุนสูงกว่าการไม่ตอบ เมื่อความเชื่อมั่นต่ำกว่าเกณฑ์ ระบบจะบอกว่าไม่ทราบและเสนอการส่งต่อ
- ใช้ pgvector แทนฐานข้อมูลเวกเตอร์เฉพาะทาง สำหรับปริมาณเอกสารที่พบได้ทั่วไปในธุรกิจหนึ่งแห่ง อินสแตนซ์ PostgreSQL เดียวสามารถรองรับทั้งเวกเตอร์และเมทาดาทา ทำให้การดำเนินงาน สิทธิ์ และการสำรองข้อมูลอยู่ในระบบเดียว ฐานข้อมูลเฉพาะทางจะคุ้มค่ากับความซับซ้อนของมันเมื่อมีขนาดใหญ่กว่านี้มากเท่านั้น
- มีชุดประเมินผลตั้งแต่สัปดาห์แรก หากไม่มีชุดนี้ การเปลี่ยนพรอมป์ทุกครั้งก็เป็นเพียงการคาดเดา และการถดถอยจะถูกค้นพบโดยผู้ใช้ ชุดนี้เป็นการควบคุมคุณภาพที่มีต้นทุนต่ำที่สุดในโครงการ AI และเป็นสิ่งที่มักถูกข้ามมากที่สุด
- เข้าถึงโมเดลผ่านแบ็กเอนด์ของเรา คีย์ API จะไม่ไปถึงไคลเอนต์ และการจำกัดอัตราการใช้งาน การกำหนดเพดานงบประมาณ และการสลับโมเดลจะคงอยู่ในการกำหนดค่าฝั่งเซิร์ฟเวอร์แทนการต้องออกแอปเวอร์ชันใหม่
เป้าหมายการออกแบบเชิงสมมติฐาน
ตัวเลขด้านล่างเป็นตัวอย่างการวางแผนความจุเชิงสมมติฐาน ไม่ใช่ผลลัพธ์ของลูกค้าที่วัดได้ คำแนะนำด้านการกำหนดขนาดที่ผ่านการยืนยันแล้ว หรือ SLA กำหนดเป้าหมายการยอมรับเฉพาะโครงการหลังจากระบุภาระงาน อุปกรณ์ ข้อมูล ฮาร์ดแวร์ และการพึ่งพาบุคคลที่สามแล้ว ตรวจสอบเป้าหมายเหล่านี้ผ่านโครงการนำร่องและการทดสอบโหลดก่อนให้คำมั่นต่อเป้าหมายการใช้งานจริง
เป้าหมายด้านความจุและประสิทธิภาพ
| เป้าหมาย | ค่าและสมมติฐาน |
|---|---|
| เวลาแฝงของโทเค็นแรก | กำหนดงบประมาณโทเค็นแรกเชิงสมมติฐาน แล้วทดสอบประสิทธิภาพด้วยผู้ให้บริการ ไปป์ไลน์การดึงข้อมูล และชุดประเมินผลที่เลือกไว้ เวลาแฝงของผู้ให้บริการอยู่นอกเหนือการควบคุมของแอปพลิเคชัน การสตรีมสามารถแสดงความคืบหน้าได้โดยไม่รับประกันเวลาตอบกลับ |
| การดึงข้อมูล | ต่ำกว่า 200 ms สำหรับการค้นหาแบบผสมร่วมกับการจัดอันดับใหม่บนคลังข้อมูลที่มีชิ้นข้อมูลระดับหลักแสน โดยใช้ดัชนี pgvector ที่เหมาะสม |
| ต้นทุนต่อการสนทนา | จำกัดด้วยเพดานโทเค็นบริบทและงบประมาณต่อผู้เช่าพร้อมการแจ้งเตือน ตัวเลขจริงขึ้นอยู่กับการเลือกโมเดลและความยาวการสนทนา และจะวัดผลระหว่างโครงการนำร่อง |
| คุณภาพคำตอบ | ติดตามเป็นอัตราผ่านเกณฑ์และความแม่นยำของการอ้างอิงบนชุดประเมินผล ค่าพื้นฐานจะถูกกำหนดระหว่างโครงการนำร่องแทนการรับประกันไว้ล่วงหน้า |
สิ่งที่รวมอยู่ในการส่งมอบ
- ซอร์สของไปป์ไลน์การนำเข้าข้อมูล บริการดึงข้อมูลและตอบคำถาม และแผงผู้ดูแลระบบในรีโพซิทอรีของคุณ
- สคีมาฐานข้อมูลที่รวมตารางชิ้นข้อมูล ขอบเขต และการประเมินผล พร้อมการกำหนดค่าดัชนี
- เทมเพลตพรอมป์และชุดประเมินผล โดยทั้งสองรายการควบคุมเวอร์ชันร่วมกับโค้ด
- แดชบอร์ดต้นทุนและการใช้งาน การกำหนดค่าการจำกัดอัตราการใช้งานและการแจ้งเตือนงบประมาณ
- บันทึกการนำระบบไปใช้งาน ขั้นตอนการจัดการคีย์ และแนวทางการสลับโมเดลที่จัดทำเป็นเอกสาร
การวางแผนสำหรับธุรกิจของคุณ
โมดูลด้านบนเป็นจุดเริ่มต้น ไม่ใช่แพ็กเกจตายตัว โดยปกติเราจะจำกัดรุ่นแรกให้เหลือเวิร์กโฟลว์หลักหนึ่งรายการและเวิร์กโฟลว์ผู้ดูแลระบบหนึ่งรายการ จากนั้นจึงขยายเมื่อการใช้งานจริงแสดงให้เห็นว่าภาระงานและกรณีขอบอยู่ที่ใด ส่งบรีฟที่กำหนดขอบเขตแล้ว และเราจะจับคู่บรีฟนั้นกับสถาปัตยกรรมนี้ พร้อมแจ้งให้ทราบว่าส่วนใดที่คุณยังไม่จำเป็นต้องใช้
