# OpenI Beta 测试

> PYPI package for 启智AI协作平台。

启智平台提供的Python工具包，使用户能在本地上传数据集。

## 安装

*适配python3.6及以上版本*
```bash
pip install openi-beta
```

## 功能介绍
- 提供在本地或环境中，使用**命令行**或**代码**上传/下载数据集功能
- 在本平台云脑任务环境中使用**代码函数**返回数据集/模型路径参数
- API参考 [帮助文档](http://192.168.207.34/docs/index.html#/api/list)

## 使用说明
- 使用前请在平台个人设置中获取token：[点击跳转token获取界面](https://openi.pcl.ac.cn/user/settings/applications)
- 在命令行或者代码中使用`login()`输入启智账号令牌，首次输入后将保存到本机

```python
import openi
openi.login()
```

```bash
> openi login


             ██████╗   ██████╗  ███████╗  ███╗   ██╗  ██████╗
            ██╔═══██╗  ██╔══██╗ ██╔════╝  ████╗  ██║    ██╔═╝
            ██║   ██║  ██████╔╝ █████╗    ██╔██╗ ██║    ██║
            ██║   ██║  ██╔═══╝  ██╔══╝    ██║╚██╗██║    ██║
            ╚██████╔╝  ██║      ███████╗  ██║ ╚████║  ██████╗
             ╚═════╝   ╚═╝      ╚══════╝  ╚═╝  ╚═══╝  ╚═════╝


点击链接获取令牌并复制粘贴到下列输入栏 https://openi.pcl.ac.cn/user/settings/applications

[WARNING] 若本机已存在登录令牌，本次输入的令牌会将其覆盖
          粘贴前请先按 退格键⇦ 删除多余空格

  🔒 token:

```

## 使用示例

#### 命令行使用

- 在命令行中输入`openi -h`查看使用说明
```bash
> openi -h
usage: openi {login, whoami, dataset, ...} [<args>] [-h]

OpenI command line tool 启智AI协作社区命令行工具

commands:
  {login,logout,whoami,dataset,d}
    login               使用令牌登录启智并保存到本机
    logout              登出当前用户并删除本地令牌文件
    whoami              查询当前登录用户
    dataset (d)         {upload,download} 上传/下载启智AI协作平台的数据集
```

#### 数据集上传/下载

```bash
> openi dataset upload -f local_dir/my_data.zip -r user1/repo1 -c gpu
14:35:07 - `my_data.zip`(GPU) calculating md5...
14:35:07 - Uploading: 100%|███████████████████████████████████| 154M/154M [01:28<00:00, 1.73MB/s]
14:36:37 - 🎉 Successfully uploaded, view on link: https://openi.pcl.ac.cn/user1/repo1/datasets
```

```bash
> openi dataset download -f my_data.zip -r user1/repo -c gpu -p local_dir/
14:51:59 - `my_data.zip`(GPU) preprocessing...
14:52:00 - Downloading: 100%|█████████████████████████████████| 154M/154M [00:02<00:00, 59.5MB/s]
14:52:02 - 🎉 Download complete! file was saved to `local_dir/my_data.zip`
```

#### GPU，GCU云脑任务路径获取

```python
#公共函数
from openi.path import (
    get_code_path,
    get_data_path,
    get_pretrain_model_path,
    get_output_path,
    push_output_to_openi,
)
#使用方法：
code_path = get_code_path()
data_path = get_data_path()
pretrain_model_path = get_pretrain_model_path()
output_path = get_output_path()
push_output_to_openi = push_output_to_openi()


```
#### NPU云脑任务路径获取

```python
#公共函数
from openi.cloudbrain import (
    openi_multidataset_to_env  启智集群任务将数据集拷贝到训练镜像
    c2net_multidataset_to_env  智算集群任务将数据集拷贝到训练镜像
    pretrain_to_env            将预训练模型文件拷贝到训练镜像
    env_to_openi               将训练镜像的输出结果拷贝回启智平台
    obs_copy_file              通过mox拷贝文件
    obs_copy_folder 	       通过mox拷贝文件夹
)
#使用方法：
参考npu训练示例代码；用户不需要拷贝openi.py到自己仓库，只需要安装openi包，就可使用以下公共函数：
openi_multidataset_to_env(args.multi_data_url, data_dir)
c2net_multidataset_to_env(args.multi_data_url, data_dir)
pretrain_to_env(args.pretrain_url, pretrain_dir)
env_to_openi(train_dir,args.train_url)
obs_copy_file(obs_path_file,local_path_file)
obs_copy_folder(obs_path,local_path)
```