Công cụ Chuyển Đổi Tài Liệu office2md 2.0

office2md 2.0 là một dịch vụ chuyển đổi tài liệu mạnh mẽ, chuyên về việc chuyển đổi các loại tài liệu văn phòng sang định dạng Markdown. Mục tiêu chính là đạt được việc trích xuất dữ liệu chất lượng cao với chi phí bằng không, nhằm cung cấp nguồn ngữ liệu chính xác hơn cho mô hình RAG.

Tính Năng Chính

  • Hỗ trợ chuyển đổi nhiều định dạng tệp: PowerPoint, Word, Excel, hình ảnh, âm thanh và HTML
  • Gồm các mô hình hiểu thị giác và hiệu chỉnh hình ảnh
  • Trích xuất dữ liệu chất lượng cao với chi phí bằng không
  • Hỗ trợ xử lý song song, nâng cao đáng kể tốc độ chuyển đổi
  • Tích hợp công nghệ hiệu chỉnh hình ảnh UVDoc

Bắt Đầu Nhanh

Sử dụng Docker để triển khai dịch vụ, hỗ trợ CPU:

docker run -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/markitdown

Tối Ưu Hóa Hiệu Suất

Cập nhật này đã tái cấu trúc logic xử lý, sử dụng kiến trúc xử lý song song "chia nhỏ-chia batch-xử lý-kết hợp". Kiểm tra hiệu suất cho thấy thời gian trung bình xử lý mỗi trang của một tệp PDF 44 trang đã giảm xuống dưới 1 giây mỗi trang. Nhờ vào kiến trúc xử lý song song, lợi ích hiệu suất càng rõ rệt khi số lượng trang tăng lên (không tính thời gian tải mô hình).

Năng lực Hiệu Chỉnh Hình Ảnh

Tích hợp công cụ hiệu chỉnh hình ảnh dựa trên mạng lưới thần kinh UVDoc, phát triển từ nghiên cứu của ETH Zurich. UVDoc cung cấp một mô hình nhẹ chỉ 30MB, hỗ trợ chạy trực tiếp trong ứng dụng và thực hiện hiệu chỉnh hình ảnh trong vài giây trên môi trường CPU. Nếu cần hiệu suất cao hơn, office2md cũng hỗ trợ tăng tốc bằng GPU. Ngoài ra, người dùng có thể lựa chọn sử dụng dịch vụ UVDoc trực tuyến do Gitee AI cung cấp.

Mở rộng: Xử Lý Cấu Trúc Bằng Mô Hình Lớn

office2md hỗ trợ xử lý nội dung tài liệu thành cấu trúc thông qua mô hình lớn. Dưới đây là ví dụ triển khai sử dụng Java và SDK langchain4j:

1. Định nghĩa Giao Diện Trợ lý AI

@AiService
public interface ThongTinSanPhamTrichXuat {
    @UserMessage("Trích xuất thông tin sản phẩm chi tiết từ {{it}}")
    ThongTinSanPham trichXuatThongTinSanPham(String json);

    @Data
    class ThongTinSanPham {
        @Description("Tên sản phẩm")
        private String ten;
        @Description("Mã số hoặc quy cách sản phẩm")
        private String maSo;
        @Description("Số đăng ký y tế y dược")
        private String soDangKyYTe;
        @Description("Số yêu cầu kỹ thuật sản phẩm")
        private String soYeuCauKyThuat;
        @Description("Số giấy phép sản xuất")
        private String soGiayPhepSanXuat;
    }
}

2. Cấu Hình Dịch Vụ AI

@Bean
public ChatLanguageModel chatLanguageModel() {
    return OpenAiChatModel.builder()
            .apiKey(System.getenv("GITEE_AI_KEY"))
            .modelName("Qwen2-VL-72B")
            .logRequests(true)
            .baseUrl("https://ai.gitee.com/v1")
            .build();
}

@Bean
public ThongTinSanPhamTrichXuat sanPhamTrichXuat(ChatLanguageModel chatLanguageModel) {
    return AiServices.create(ThongTinSanPhamTrichXuat.class, chatLanguageModel);
}

Bằng cách cấu hình như trên, bạn có thể thực hiện việc chuyển đổi từ văn bản tự nhiên sang đối tượng JSON cấu trúc.

Địa chỉ dự án office2md: https://gitee.com/log4j/office2md

Thẻ: office2md Markdown UVDoc langchain4j Qwen2-VL-72B

Đăng vào ngày 20 tháng 5 lúc 17:52