An AI agent ควรถามเอกสารสามอย่างก่อนที่มันจะเรนเดอร์หน้าเดียว: จำนวนหน้าที่มี, ขนาดของแต่ละหน้า, และว่าต้องการรหัสผ่านหรือไม่. เซิร์ฟเวอร์ GroupDocs.Viewer.Mcp ตอบสองข้อแรกด้วยการเรียกที่ inexpensive หนึ่งครั้ง (get_view_info), ทำงานบนเครื่องของคุณ, และคำถามรหัสผ่านจะถูกจัดการในพรอมต์. จากนั้นเอเจนต์จะเรนเดอร์เฉพาะหน้าที่สำคัญเท่านั้น:
อะไรคือ contract.docx — มีกี่หน้าและขนาดหน้าคืออะไร?
เวอร์ชันขั้นตอนต่อขั้นตอนพร้อมการตั้งค่าและการแก้ไขปัญหาอยู่ในเอกสาร: วิธีตรวจสอบหน้าของเอกสารก่อนการเรนเดอร์.
ทำไมต้องตรวจสอบก่อน?
ทุกหน้าที่เครื่องมือ render_page สร้างขึ้นจะกลับมาให้เอเจนต์เป็น PNG แบบฝังในข้อความ, มักมีขนาดหลายร้อยกิโลไบต์. เอเจนต์ที่เรนเดอร์ไฟล์ 60 หน้าเพื่อค้นหาตารางหนึ่งจ่ายค่า 59 รูปภาพที่ไม่จำเป็น, ทั้งในแง่เวลาและหน้าต่างบริบท. เครื่องมือการตรวจสอบ, get_view_info, ไม่ทำการเรนเดอร์อะไร. มันคืนค่าอ็อบเจ็กต์ JSON ขนาดเล็ก, ดังนั้นการตัดสินใจว่าจะเรนเดอร์อะไรจึงทำบนพื้นฐานของข้อเท็จจริงแทนการคาดเดา.
รูปแบบนี้สามารถนำกลับมาใช้ใหม่ได้ในไคลเอนต์ใดก็ได้: Claude Desktop, Claude Code, Cursor, VS Code กับ GitHub Copilot หรือ Windsurf. มันเป็นนิสัยที่คุณใส่ไว้ในพรอมต์, ไม่ใช่ฟีเจอร์ที่คุณตั้งค่า.
คำถาม 1: มีกี่หน้า?
get_view_info คืนค่า pageCount. นี่เป็นการป้องกันเดียวที่มีต่อขอบคมที่ระบุในเอกสาร: render_page ไม่ตรวจสอบหมายเลขหน้าเทียบกับเอกสาร. ถามหน้าที่ 40 ของไฟล์ 12 หน้าแล้วคุณยังจะได้รับภาพที่บันทึกเป็น <name>_page40.png ซึ่งเป็นหน้าที่ไม่ใช่หน้า 40.
พรอมต์ที่สร้างการป้องกันนี้:
มีกี่หน้าของรายงาน? แล้วแสดงหน้าสุดท้ายให้ฉันดู.
สำหรับสเปรดชีต จำนวนหน้ามีความสำคัญยิ่งกว่า. เอนจินจะแบ่งชีตเป็นหน้า, และจำนวนอาจมากกว่าที่ชีตดู. การรู้ล่วงหน้าช่วยให้เอเจนต์ไม่ต้องเรนเดอร์ทั้งหมด.
คำถาม 2: ขนาดของแต่ละหน้าคือเท่าไหร่?
ขนาดของหน้าต่างใน PDF นี้คืออะไร — Letter หรือ A4?
การตอบกลับจะแสดง number, width และ height ของทุกหน้า, หน่วยเป็น points. 612 x 792 คือ US Letter; ประมาณ 595 x 842 คือ A4. เอกสารที่มีหนึ่งหน้ากว้าง (landscape) อยู่ในหน้าตรง (portrait) จะปรากฏในขนาดเหล่านั้น, และหน้าดังกล่าวมักเป็นตารางหรือภาพวาดที่คนถามถึง.
อีกสองฟิลด์คือ name และ visible จะถูกเติมเมื่อฟอร์แมตมีข้อมูลเหล่านั้น, เช่น ชื่อแผ่นงานและสไลด์หรือชีตที่ซ่อนอยู่. หากไม่มีจะเป็น null และ true ตามลำดับ.
คำถาม 3: ไฟล์ต้องการรหัสผ่านหรือไม่?
get_view_info ไม่มีฟิลด์การป้องกัน, ดังนั้นประเภทไฟล์และจำนวนหน้าไม่บอกว่าต้องการรหัสผ่านหรือไม่. ไฟล์ที่มีการป้องกันด้วยรหัสผ่านต้องระบุรหัสผ่านในทุกการเรียก, ไม่ว่าจะเป็นเครื่องมือใด. ให้ระบุไว้ล่วงหน้าในพรอมต์:
รหัสผ่านสำหรับ contract.pdf อยู่ในข้อความของฉัน. ตรวจสอบจำนวนหน้าที่มี, แล้วแสดงหน้าที่ 2 ให้ฉันดู.
หากไม่มีรหัสผ่านการเรียกจะล้มเหลว, และเอเจนต์สามารถถามคุณแทนการคาดเดา. หากการเรียกล้มเหลว, get_view_info จะคืนข้อความที่เริ่มด้วย View-info lookup failed for ตามด้วยประเภทของข้อยกเว้นและข้อความ, ทำให้เอเจนต์อ่านเหตุผลและขอรหัสผ่านหรือชื่อไฟล์ที่ถูกต้อง.
พรอมต์ตรวจสอบแล้วเรนเดอร์ที่สามารถนำกลับมาใช้ใหม่ได้
ก่อนจะเรนเดอร์อะไรจากไฟล์ที่ชื่อด้านล่าง, ตรวจสอบประเภทไฟล์, จำนวนหน้าและขนาดหน้า. บอกฉันว่าคุณพบอะไร, แล้วเรนเดอร์เฉพาะหน้าที่จำเป็นเพื่อตอบคำถามของฉัน. ไฟล์: contract.docx. คำถาม: ข้อกำหนดการยกเลิกอยู่ที่ไหน?
เอเจนต์เรียก get_view_info, รายงานประเภทไฟล์และจำนวนหน้า, เลือกหน้า, และเรียก render_page สำหรับแต่ละหน้า. เครื่องมือ get_license_status เป็นเครื่องมือที่สามบนเซิร์ฟเวอร์; ใช้เมื่อคุณต้องการทราบว่าหน้าที่เรนเดอร์จะมีลายน้ำหรือไม่.
ตัวอย่างเซสชัน
ภาพอธิบายที่อิงตามรูปแบบการตอบกลับที่ระบุในเอกสาร, ไม่ใช่ภาพหน้าจอที่จับได้.
You: Inspect report.pdf before rendering anything.
Agent: [calls get_view_info on report.pdf]
report.pdf: Portable Document Format File (.pdf), 2 pages.
Page 1: 612 x 792 points (US Letter). Page 2: 612 x 792 points.
Which page would you like me to render?
เอเจนต์ตัดสินใจอย่างไร, และเอนจินทำอะไร?
| ขั้นตอน | เอเจนต์ | เอนจิน |
|---|---|---|
| เลือกไฟล์ | รับชื่อไฟล์จากพรอมต์ของคุณ | ค้นหาไฟล์ในโฟลเดอร์จัดเก็บ, แสดงไฟล์ที่มีถ้าชื่อไม่ตรงกัน |
| ตรวจสอบ | ตัดสินใจว่าคำถามใดสำคัญ | คืนค่าประเภทไฟล์, จำนวนหน้าและขนาดหน้า |
| เลือกหน้า | แมปคำถามของคุณเป็นหมายเลขหน้า | ไม่มีอะไร |
| เรนเดอร์ | เรียก render_page สำหรับแต่ละหน้าที่เลือก |
สร้าง PNG |
ข้อจำกัดที่ตรงไปตรงมา
- โหมดการประเมิน. หน้าที่เรนเดอร์มีลายน้ำการประเมินและกระบวนการเซิร์ฟเวอร์เปิดสูงสุด 15 เอกสาร. ถามว่า “เซิร์ฟเวอร์ Viewer มีลิขสิทธิ์หรือไม่?” เพื่อให้เอเจนต์เรียก
get_license_statusก่อนที่คุณจะพึ่งพาผลลัพธ์. - จำนวนหน้าไม่ได้เลือกหน้าสำหรับคุณ.
get_view_infoบอกว่ามีหน้าใดบ้าง, ไม่ได้บอกว่าหน้าใดมีคำตอบ. สำหรับนั้น, เรนเดอร์หน้าสารบัญหรือหลายหน้าที่เป็นไปได้. - PNG เท่านั้น. ไม่มีตัวเลือกรูปแบบบน
render_page.
คำถามที่พบบ่อย
เอเจนต์ AI จะรับจำนวนหน้าของ PDF ได้อย่างไร? หากเซิร์ฟเวอร์ Viewer เชื่อมต่อ, Claude สามารถเรียก get_view_info และอ่าน pageCount โดยไม่ต้องเรนเดอร์อะไร. คำตอบมาจากเอกสาร, ไม่ใช่การคาดเดา.
เครื่องมือ MCP ข้อมูลเอกสารสามารถบอกเอเจนต์ว่าหน้าใดควรเรนเดอร์ได้หรือไม่? ใช่. ให้จำนวนหน้าและขนาดก่อน, แล้วบอกว่าอะไรที่คุณกำลังมองหา. มันจะเรนเดอร์หน้าที่ตอบคำถาม.
การตรวจสอบเอกสารทำให้ไฟล์อัปโหลดไปที่ไหนหรือไม่? ไม่. เซิร์ฟเวอร์อ่านไฟล์จากโฟลเดอร์ที่คุณกำหนดและคืนอ็อบเจ็กต์ JSON ขนาดเล็กให้กับไคลเอนต์ของคุณ.
ไปลึกกว่า
- เอกสาร, วิธีทำตามมาตรฐาน: วิธีตรวจสอบหน้าของเอกสารก่อนการเรนเดอร์
- ศูนย์รวมเอกสาร GroupDocs.Viewer MCP Server: GroupDocs.Viewer MCP Server
- เริ่มต้นที่นี่: Multimodal agents need pixels, not just text
- เกี่ยวข้อง: Automate screenshot-grade page images for reports with MCP
- เกี่ยวข้อง: When the answer is in the chart: AI agents reading diagrams and scans via MCP
- โมเดลการติดตั้งในองค์กรและความปลอดภัย: 3 architectures for AI document processing, and the one that keeps files inside your network
- คำถาม: GroupDocs Viewer forum
- แหล่งที่มา: GroupDocs.Viewer.Mcp on GitHub