download_models.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import json
  2. import os
  3. import requests
  4. from modelscope import snapshot_download
  5. from dotenv import load_dotenv; load_dotenv()
  6. print(f"os.environ['CUDA_VISIBLE_DEVICES']: {os.environ['CUDA_VISIBLE_DEVICES']}")
  7. print(f"os.environ['HF_ENDPOINT']: {os.environ['HF_ENDPOINT']}")
  8. def download_json(url):
  9. # 下载JSON文件
  10. response = requests.get(url)
  11. response.raise_for_status() # 检查请求是否成功
  12. return response.json()
  13. def download_and_modify_json(url, local_filename, modifications):
  14. if os.path.exists(local_filename):
  15. data = json.load(open(local_filename))
  16. config_version = data.get('config_version', '0.0.0')
  17. if config_version < '1.0.0':
  18. data = download_json(url)
  19. else:
  20. data = download_json(url)
  21. # 修改内容
  22. for key, value in modifications.items():
  23. data[key] = value
  24. # 保存修改后的内容
  25. with open(local_filename, 'w', encoding='utf-8') as f:
  26. json.dump(data, f, ensure_ascii=False, indent=4)
  27. if __name__ == '__main__':
  28. mineru_patterns = [
  29. "models/Layout/LayoutLMv3/*",
  30. "models/Layout/YOLO/*",
  31. "models/MFD/YOLO/*",
  32. "models/MFR/unimernet_small/*",
  33. "models/TabRec/TableMaster/*",
  34. "models/TabRec/StructEqTable/*",
  35. ]
  36. model_dir = snapshot_download('opendatalab/PDF-Extract-Kit-1.0', allow_file_pattern=mineru_patterns)
  37. layoutreader_model_dir = snapshot_download('ppaanngggg/layoutreader')
  38. model_dir = model_dir + '/models'
  39. print(f'model_dir is: {model_dir}')
  40. print(f'layoutreader_model_dir is: {layoutreader_model_dir}')
  41. json_url = 'https://gitee.com/myhloli/MinerU/raw/master/magic-pdf.template.json'
  42. config_file_name = 'magic-pdf.json'
  43. # home_dir = os.path.expanduser('~')
  44. home_dir = os.path.dirname(os.path.abspath(__file__))
  45. config_file = os.path.join(home_dir, config_file_name)
  46. json_mods = {
  47. 'models-dir': model_dir,
  48. 'layoutreader-model-dir': layoutreader_model_dir,
  49. }
  50. download_and_modify_json(json_url, config_file, json_mods)
  51. print(f'The configuration file has been configured successfully, the path is: {config_file}')