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 ขนาดเล็กให้กับไคลเอนต์ของคุณ.

ไปลึกกว่า