From 4102dac9ca073ed8f428d055595b40db4a832eb1 Mon Sep 17 00:00:00 2001 From: Wenl4ng <15861868579@163.com> Date: Thu, 27 Feb 2025 19:32:10 +0800 Subject: [PATCH] update README.md --- README.md | 179 +++++++++++++++++++++++++++++++++++----- docs/zh/install.md | 2 +- sources/images/logo.png | Bin 0 -> 52492 bytes 3 files changed, 158 insertions(+), 23 deletions(-) create mode 100644 sources/images/logo.png diff --git a/README.md b/README.md index dcd6d66..7db47eb 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,183 @@ -# openMind Hub Client +

-## 简介 +

+ + Badge + + + Visit our community + + + + +

-openMind Hub Client可以帮助您在不离开开发环境的情况下与社区进行交互。您可以轻松创建和管理仓库,下载和上传文件以及从模型库获取有用的模型和数据集元数据。 +--- -## 安装 +## 📝 简介 -关于openMind Hub Client的安装步骤,推荐用户参考[《安装》](./docs/zh/install.md)文档,以确保顺利并正确地完成安装过程。 +openMind Hub Client 可以帮助您在不离开开发环境的情况下与社区进行交互。您可以轻松创建和管理仓库,下载和上传文件以及从模型库获取有用的模型和数据集元数据。 -## 下载文件 +**为什么使用 openMind Hub Client?** -例如,下载[t5_small](https://modelers.cn/models/PyTorch-NPU/t5_small/)模型配置文件: +openMind Hub Client 提供了统一的SDK,为用户提供了与多个社区交互的良好体验。 + +使您可以在不离开开发环境,下载与上传文件时,拥有良好的性能与操作体验。 + +**openMind Hub Client目前支持的关键特性**: + +- [下载文件](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/download.md) +- [上传文件](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/upload.md) +- [文件管理](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/api_reference/om_file_system.md) +- [与多社区交互](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/third-party_platform.md) +- [仓库卡片](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/api_reference/repocard.md) + +--- + +## 🚀 更新日志 + +2024/11: openMind Hub Client v0.9.0版本发布,新增支持Gitee AI、HuggingFace社区。 + +--- + +## 🛠️ 安装 + +### 版本配套 + +| openmind-hub版本 | Python版本 | openmind版本 | +|:--------------:|:--------:|:----------:| +| 0.9 | 3.8-3.10 | 0.9 | + +使用pip方式安装openMind Hub Client,可根据实际需求选择对应命令进行安装。 + +- 默认安装方式,可与魔乐社区进行交互。 + + ```shell + pip install openmind_hub + ``` + +- 安装所有对接的第三方社区模块,可与所有已对接的第三方社区进行交互,详见[第三方社区对接](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/third-party_platform.md)。 + + ```shell + pip install openmind_hub[all] + ``` + +- 安装指定社区模块,可与魔乐或指定社区进行交互。 + + ```shell + pip install openmind_hub[openi] + pip install openmind_hub[huggingface] + ... + ``` + +源代码安装: + +```shell +git clone https://gitee.com/Ascend/openmind-hub.git + +cd openmind-hub + +pip install -e . +``` + +openMind Hub Client的安装步骤,推荐用户参考[安装openmind Hub Client](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/install.md)文档,以确保顺利并正确地完成安装过程。 + +--- + +## 🧰 快速上手 + +### 获取token + +在进行需要鉴权的操作,如上传文件、创建仓库前等,请先于交互的社区中获取token,如[魔乐社区获取token](https://modelers.cn/my/tokens)。 + +### 下载文件 + +- 下载单个文件 ```py from openmind_hub import om_hub_download -om_hub_download(repo_id="PyTorch-NPU/t5_small", filename="config.json") +om_hub_download(repo_id="PyTorch-NPU/t5_small", filename="README.md") ``` -详见[《下载指南》](./docs/zh/basic_tutorial/download.md)。 +- 下载整个仓库 + +```py +from openmind_hub import snapshot_download + +snapshot_download("PyTorch-NPU/t5_small") +``` + +下载细节请见[下载文件](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/download.md)。 + +默认缓存路径为 ~/.cache/openmind/hub, 缓存机制详解请见[缓存系统](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/cache.md)。 -## 访问令牌 +### 创建仓库 -访问私有仓库资源、创建仓库和上传文件等场景都需要使用访问令牌(即token)才能与社区进行交互。请[创建访问令牌](https://modelers.cn/my/tokens)并妥善保存,令牌内容仅会在创建时显示。 +```py +from openmind_hub import create_repo + +create_repo(repo_id="Me/repo_name", token="My_token") +``` -## 上传文件 +### 上传文件 -使用`upload_folder`为您的仓库上传文件,示例如下: +- 上传单个文件 + +```py +from openmind_hub import upload_file + +upload_file( + path_or_fileobj="/home/lysandre/dummy-test/README.md", + path_in_repo="README.md", + repo_id="PyTorch-NPU/t5_small", + token="My_token", +) +``` + +- 上传整个文件夹 ```py from openmind_hub import upload_folder + upload_folder( - repo_id="owner/repo", - folder_path="./folder_to_upload", - token="xxx", + folder_path="/path/to/local", + repo_id="PyTorch-NPU/t5_small", + token="My_token", ) ``` -+ `token`:对目标仓库具有可写权限的访问令牌,必选。 -+ `repo_id`:文件要上传到的仓库,必选。 -+ `folder_path`:要上传目录的绝对路径或相对路径,上传的内容不包含该目录本身,必选。支持字符串或Path类型,如:`"./folder"`或`Path("./folder")`。 +更多细节请见[上传文件](https://gitee.com/ascend/openmind-hub/tree/v0.9/docs/zh/basic_tutorial/upload.md)。 + +--- + +## 📚 贡献 + +1. 在上传PR之前,请确保所有测试都通过。首先在本地运行如下命令。 + +```shell +# The scripts below run on system default python version by default. If you want to use other python version, set the env +# PY_VERSION. For example, `PY_VERSION=3.8 ./ci/lint.sh` +# Lint check +./ci/lint.sh +# Unit test +./ci/unit_test.sh +# Functional test, Please generate the HUB_TOKEN from openmind by yourself and use it privatelly. +HUB_TOKEN=your_hub_token ./ci/functional_test.sh +``` + +2. 当您推送或更新PR(Pull Request)后,系统将自动触发CI(持续集成)构建和测试流程。若所有CI构建和测试均顺利通过,`ci-success`标记将自动添加到您的PR中。然而,若出现CI故障,您可以点击CI日志链接查看失败原因,并在本地进行必要的修复。一旦您完成了修复并希望重新运行CI作业,只需在PR中留下评论`/recheck`即可。 + +--- + +## 🔒 安全声明 + +为保障使用过程安全,推荐用户参考[安全声明](https://gitee.com/ascend/openmind-hub/tree/v0.9/security_statement.md)了解相关安全信息,进行必要的安全加固。 + +--- -详见[《上传文件》](./docs/zh/basic_tutorial/upload.md)。 +## 📖 许可证 +MulanPSL v2 +openMind Library使用木兰宽松许可证第2版(MulanPSL v2),详见[License](http://license.coscl.org.cn/MulanPSL2)文件。 -## 安全声明 -为保障使用过程安全,推荐用户参考[《安全声明》](./security_statement.md)了解相关安全信息,进行必要的安全加固。 \ No newline at end of file diff --git a/docs/zh/install.md b/docs/zh/install.md index fde53d8..3a00d98 100644 --- a/docs/zh/install.md +++ b/docs/zh/install.md @@ -44,7 +44,7 @@ ```shell pip install openmind_hub[openi] - pip install openmind_hub[huggingface_hub] + pip install openmind_hub[huggingface] ``` ## 验证安装 diff --git a/sources/images/logo.png b/sources/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..17af241c429f6bf81e49869ab1c9f46f3c6cce23 GIT binary patch literal 52492 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 literal 0 HcmV?d00001 -- Gitee