Bạn có thể cho một tác nhân AI xem một trang tài liệu thay vì đọc một bản sao văn bản của nó. Máy chủ GroupDocs.Viewer.Mcp sẽ render bất kỳ trang nào của tệp PDF, Word, Excel hoặc PowerPoint thành PNG và trả về cho tác nhân, và nó thực hiện điều này cục bộ trên máy của bạn:

Báo cáo report.pdf có bao nhiêu trang? Sau đó hiển thị trang cuối cùng.

Phiên bản từng bước với cấu hình và khắc phục sự cố có trong tài liệu: Cách để cho một tác nhân AI xem các trang tài liệu.

Tại sao việc trích xuất văn bản lại thất bại trên tài liệu thực tế?

Một công cụ trích xuất văn bản trả về các ký tự theo thứ tự đọc. Nó không trả về biểu đồ cột giữa hai đoạn văn, con dấu “APPROVED” ở góc, bố cục cột của bảng giá, hoặc một trang được quét và không có ký tự nào. Một tác nhân làm việc dựa trên đầu ra đó sẽ trả lời một cách tự tin về một tài liệu mà nó chỉ nhìn thấy một nửa, và nửa còn lại thường là phần bạn đã hỏi.

Giải pháp không phải là một lời nhắc tốt hơn. Đó là một đầu vào khác: trang dưới dạng hình ảnh, được cung cấp cho mô hình chấp nhận đầu vào hình ảnh.

Cách tiếp cận sai: chuyển mọi thứ qua công cụ trích xuất văn bản

Mặc định phổ biến là chuyển đổi tài liệu thành văn bản, dán văn bản vào cửa sổ ngữ cảnh và đặt câu hỏi. Nó hoạt động tốt cho văn xuôi. Nó gặp vấn đề theo bốn cách mà bạn có thể xác minh trên bất kỳ tài liệu nào bạn sở hữu:

  • Bố cục bị mất, vì vậy không thể trả lời “tổng cộng có ở cột bên phải không?”
  • Các hình ảnh trong biểu đồ và sơ đồ bị mất, vì chúng được vẽ, không phải gõ.
  • Con dấu, chữ ký và chữ viết tay bị mất.
  • PDF được quét không tạo ra văn bản.

Một mô hình không thể khôi phục thông tin đã bị loại bỏ trước khi nó xem tài liệu.

Cách tiếp cận đúng: render một trang PDF thành hình ảnh cho LLM

render_page render một trang dưới dạng PNG, trả về hình ảnh nội tuyến cho tác nhân và lưu một bản sao vào thư mục đầu ra của bạn với tên <name>_page<N>.png. Máy chủ hỗ trợ hơn 170 định dạng, bao gồm PDF, DOCX, XLSX, PPTX, ODT, RTF, HTML, EML và MSG. Một mô hình có khả năng thị giác sau đó sẽ nhìn thấy trang theo cách bạn nhìn.

Tác nhân không nên đoán số trang, vì vậy nó kết hợp render_page với get_view_info, công cụ này trả về loại tệp, số lượng trang và kích thước của mỗi trang mà không cần render bất kỳ thứ gì. Công cụ thứ ba, get_license_status, báo cáo chế độ cấp phép đang hoạt động.

Làm thế nào để chạy máy chủ cho Claude, Cursor hoặc Copilot?

Ảnh Docker là độc lập:

docker run --rm -i -v $(pwd)/documents:/data \
  ghcr.io/groupdocs-viewer/viewer-net-mcp:latest

Với .NET 10 SDK đã được cài đặt, dnx GroupDocs.Viewer.Mcp --yes chạy cùng một máy chủ mà không cần Docker. Đăng ký nó trong Claude Desktop, Claude Code, Cursor, VS Code với GitHub Copilot, Windsurf và các khách hàng khác; trang hub liệt kê cấu hình chính xác cho mỗi trường hợp. Khách hàng khởi động máy chủ như một tiến trình con và giao tiếp với nó qua đầu vào và đầu ra tiêu chuẩn, vì vậy không có cổng vào và không có điểm cuối nào cần bảo mật.

Phiên làm việc mẫu

Đây là một minh hoạ được xây dựng dựa trên hành vi được tài liệu mô tả của hai công cụ, không phải một ảnh chụp màn hình đã ghi lại.

You:   How many pages does report.pdf have? Then show me the last one.

Agent: [calls get_view_info on report.pdf]
       report.pdf is a PDF with 2 pages, both 612 x 792 points (US Letter).
       [calls render_page with page = 2]
       Page 2 of 'report.pdf' Saved to: <output folder>/report_page2.png
       Here is what page 2 shows: ...

Hình ảnh xuất hiện nội tuyến trong các khách hàng hiển thị nó. Phản hồi văn bản là mô tả của tác nhân về những gì nó thấy trên trang.

Tác nhân quyết định gì, và engine thực hiện gì?

Tác nhân quyết định trang nào trả lời câu hỏi và những gì cần hỏi mô hình về nó. Engine thực hiện phần phải chính xác: mở tệp, phân trang theo cách tài liệu phân trang, và tạo PNG. Mô hình không bao giờ phải đoán bố cục trang, vì nó nhận được trang đã được render.

Giới hạn thực tế

  • Chế độ đánh giá. Không có giấy phép, các trang đã render có dấu watermark đánh giá và quá trình máy chủ mở tối đa 15 tài liệu. Dấu watermark có thể che phủ chi tiết bạn hỏi. Hỏi tác nhân “Máy chủ viewer có được cấp phép không?” để nó gọi get_license_status trước khi bạn dựa vào những gì nó đọc.
  • Chỉ PNG. Đầu ra là hình ảnh PNG; không có tùy chọn định dạng.
  • Không kiểm tra số trang. render_page không từ chối số trang vượt quá trang cuối cùng. Kiểm tra số lượng với get_view_info trước.
  • Mô hình phải chấp nhận hình ảnh. Với mô hình chỉ nhận văn bản, tác nhân vẫn nhận được đường dẫn tệp đã lưu, nhưng không thể cho bạn biết nội dung trên trang.
  • Hình ảnh có kích thước lớn. Mỗi trang là PNG nội tuyến, thường vài trăm kilobytes. Chỉ render các trang cần thiết cho nhiệm vụ, không phải toàn bộ tệp.
  • Một yếu tố ra khỏi máy. Hình ảnh đã render được gửi tới tác nhân và từ đó tới bất kỳ mô hình nào nó sử dụng. Một mô hình được lưu trữ cục bộ giữ mọi thứ trên máy.

Câu hỏi thường gặp

Claude có thể xem trang PDF và bố cục của nó không? Có, nếu trang PDF được render thành hình ảnh và mô hình Claude đang sử dụng chấp nhận đầu vào hình ảnh. render_page tạo ra hình ảnh đó cục bộ và trả về cho client.

Tôi có phải tải tài liệu lên bất kỳ nơi nào để render không? Máy chủ đọc tệp từ thư mục bạn gắn và ghi hình ảnh bên cạnh; tài liệu không được máy chủ tải lên. Hình ảnh trang sẽ được gửi tới mô hình của tác nhân.

Nó có hoạt động với Excel và PowerPoint, không chỉ PDF không? Có. PowerPoint render một hình ảnh cho mỗi slide, và các sheet Excel được chia thành các trang, với số lượng có thể xem qua get_view_info.

Đi sâu hơn