I've used nv-ingest and Nvidia's nemoretriever-parse model.