Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

download_deps.py 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/usr/bin/env python3
  2. # PEP 723 metadata
  3. # /// script
  4. # requires-python = ">=3.10"
  5. # dependencies = [
  6. # "huggingface-hub",
  7. # "nltk",
  8. # "argparse",
  9. # ]
  10. # ///
  11. from huggingface_hub import snapshot_download
  12. import nltk
  13. import os
  14. import urllib.request
  15. import argparse
  16. def get_urls(use_china_mirrors=False):
  17. if use_china_mirrors:
  18. return [
  19. "http://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb",
  20. "http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_arm64.deb",
  21. "https://repo.huaweicloud.com/repository/maven/org/apache/tika/tika-server-standard/3.0.0/tika-server-standard-3.0.0.jar",
  22. "https://repo.huaweicloud.com/repository/maven/org/apache/tika/tika-server-standard/3.0.0/tika-server-standard-3.0.0.jar.md5",
  23. "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken",
  24. "https://storage.googleapis.com/chrome-for-testing-public/121.0.6167.85/linux64/chrome-linux64.zip",
  25. "https://storage.googleapis.com/chrome-for-testing-public/121.0.6167.85/linux64/chromedriver-linux64.zip",
  26. ]
  27. else:
  28. return [
  29. "http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb",
  30. "http://ports.ubuntu.com/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_arm64.deb",
  31. "https://repo1.maven.org/maven2/org/apache/tika/tika-server-standard/3.0.0/tika-server-standard-3.0.0.jar",
  32. "https://repo1.maven.org/maven2/org/apache/tika/tika-server-standard/3.0.0/tika-server-standard-3.0.0.jar.md5",
  33. "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken",
  34. "https://bit.ly/chrome-linux64-121-0-6167-85",
  35. "https://bit.ly/chromedriver-linux64-121-0-6167-85",
  36. ]
  37. repos = [
  38. "InfiniFlow/text_concat_xgb_v1.0",
  39. "InfiniFlow/deepdoc",
  40. "InfiniFlow/huqie",
  41. "BAAI/bge-large-zh-v1.5",
  42. "maidalun1020/bce-embedding-base_v1",
  43. ]
  44. def download_model(repo_id):
  45. local_dir = os.path.abspath(os.path.join("huggingface.co", repo_id))
  46. os.makedirs(local_dir, exist_ok=True)
  47. snapshot_download(repo_id=repo_id, local_dir=local_dir, local_dir_use_symlinks=False)
  48. if __name__ == "__main__":
  49. parser = argparse.ArgumentParser(description='Download dependencies with optional China mirror support')
  50. parser.add_argument('--china-mirrors', action='store_true', help='Use China-accessible mirrors for downloads')
  51. args = parser.parse_args()
  52. urls = get_urls(args.china_mirrors)
  53. for url in urls:
  54. filename = url.split("/")[-1]
  55. print(f"Downloading {url}...")
  56. if not os.path.exists(filename):
  57. urllib.request.urlretrieve(url, filename)
  58. local_dir = os.path.abspath('nltk_data')
  59. for data in ['wordnet', 'punkt', 'punkt_tab']:
  60. print(f"Downloading nltk {data}...")
  61. nltk.download(data, download_dir=local_dir)
  62. for repo_id in repos:
  63. print(f"Downloading huggingface repo {repo_id}...")
  64. download_model(repo_id)