From abad9aa03dd32ad42483723834b54a7dbd79f7d3 Mon Sep 17 00:00:00 2001 From: elijah Date: Fri, 23 Aug 2024 18:31:44 +0800 Subject: [PATCH] =?UTF-8?q?[doc]=20=E6=9B=B4=E6=96=B0=20gai=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/gai.md | 71 ------------------------------- docs/gai/gai.md | 89 +++++++++++++++++++++++++++++++++++++++ docusaurus.config.ts | 24 +++++------ sidebars.ts | 2 +- static/img/gai/clone.png | Bin 0 -> 27167 bytes 5 files changed, 102 insertions(+), 84 deletions(-) delete mode 100644 docs/gai.md create mode 100644 docs/gai/gai.md create mode 100644 static/img/gai/clone.png diff --git a/docs/gai.md b/docs/gai.md deleted file mode 100644 index 43306cf..0000000 --- a/docs/gai.md +++ /dev/null @@ -1,71 +0,0 @@ -# 使用 Gitee AI 命令行工具上传模型 - -#### 介绍 -Gitee AI 命令行工具是一款专为开发者设计的高效工具,帮助用户轻松地将模型和数据集上传到 Gitee AI 平台。 - - -#### 安装教程 - -安装 Git LFS 和 Gitee AI CLI 以及配置 Gitee AI CLI -```bash -# 前往 https://git-lfs.com 下载 git-lfs,然后安装 Git LFS -git lfs install - -# 安装 Gitee AI CLI -/bin/bash -c "$(curl -fsSL https://gitee.com/gitee-ai/cli/raw/master/install.sh)" - -# 检查 Gitee AI CLI 版本 -gai version - -# 访问 https://gitee.com/profile/personal_access_tokens 获取 Gitee 私人令牌 -# 创建 Gitee AI 访问令牌详见: https://ai.gitee.com/docs/organization/access-token -# 全局配置 Gitee AI 和 Gitee 访问令牌 -gai config --global gitee-token -gai config --global gitee-ai-token - - -# 要为本地 Gitee 仓库配置令牌,请使用以下命令: -cd - -# 配置 Gitee token -gai config gitee-token -# 配置 Gitee AI token -gai config gitee-ai-token -``` - - - -#### 使用说明 - -推送大文件到 Gitee AI 模型、数据集仓库 -```bash - -# 在 Gitee AI 上创建模型、数据集仓库并 Clone 到本地 -git clone https://ai.gitee.com// -cd - -# 为本地仓库初始化 Gitee AI Cli 配置 -gai config init - -# 配置需要上传到 Git LFS 的文件类型, 比如 *.bin 文件 -git lfs track "*.bin" - -# 拷贝大文件到当前目录并提交 -cp ~//model.safetensors . -git add . && git commit -m 'Add model.safetensors file' - -# 将更新推送到 Gitee AI 模型、数据集仓库 -git push origin master -``` - -##### Windows 系统下使用说明 - -**建议在 WSL Ubuntu 22.04 LTS 或更高版本系统下使用**, 如果在执行 `gai config gitee-token ` 命令时遇到卡住问题, 请尝试执行以下命令, 然后继续配置您的 token: - - -```bash -dbus-run-session -- bash --noprofile --norc -# 如有需要,提前备份您的密钥环 -rm -rf ~/.local/share/keyrings -echo -n 'db' | gnome-keyring-daemon --unlock -``` diff --git a/docs/gai/gai.md b/docs/gai/gai.md new file mode 100644 index 0000000..5c6e20e --- /dev/null +++ b/docs/gai/gai.md @@ -0,0 +1,89 @@ +# 使用 Gitee AI 命令行工具上传模型 + +#### 介绍 +Gitee AI 命令行工具(`gai`)是一款专为开发者设计的高效工具,帮助用户轻松地将模型和数据集上传到 Gitee AI 平台。 + + +#### 安装和配置 + +1. 安装 Git LFS 和 + +```bash +# 前往 https://git-lfs.com 下载 git-lfs,然后安装 Git LFS +git lfs install +``` + +2. 安装 `gai` + +```bash +# 下载并安装 gai +/bin/bash -c "$(curl -fsSL https://gitee.com/gitee-ai/cli/raw/master/install.sh)" + +# 检查 Gitee AI CLI 版本 +gai version +``` + +3. 配置 `gai` +- 创建 Gitee 私人令牌:https://gitee.com/profile/personal_access_tokens ,创建令牌时请勾选 `projects` 权限 +- 创建 Gitee AI 访问令牌,请参考帮助文档:https://ai.gitee.com/docs/organization/access-token ,创建时「资源授权」请选择「全部资源」 +- 在 `gai` 中配置令牌 + ```bash + # 全局配置 Gitee AI 和 Gitee 访问令牌 + gai config gitee-token + gai config gitee-ai-token + ``` + +如果希望为**不同仓库**设置不同令牌,可参考如下命令进行配置: + +```bash +cd <仓库地址> + +# 配置 Gitee 私人令牌 +gai config --local gitee-token +# 配置 Gitee AI 访问令牌 +gai config --local gitee-ai-token +``` + +#### 使用 + +将本地的大模型文件推送到 Gitee AI 模型仓库 + +1. 在 Gitee AI [创建模型仓库](https://ai.gitee.com/models/new) + +2. 获取仓库地址并克隆到本地 + + ![输入图片说明](../../static/img/gai/clone.png) + + ```bash + git clone https://ai.gitee.com// + cd + ``` + +3. 初始化仓库配置(使用 `gai` 作为 Git LFS 的[自定义传输代理](https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md)),每个仓库只需设置一次即可,相关配置将存储在仓库的 `.git/config` 文件中 + + ```bash + # 为本地仓库初始化 Gitee AI Cli 配置 + gai config init + ``` + +4. 提交并推送文件到仓库 + + ```bash + # 拷贝大文件到当前目录并提交 + cp ~//model.safetensors . + git add . && git commit -m 'Add model.safetensors file' + + # 将更新推送到 Gitee AI 模型、数据集仓库 + git push origin master + ``` + +##### Windows 系统下使用说明 + +**建议在 WSL Ubuntu 22.04 LTS 或更高版本系统下使用**, 如果在执行 `gai config gitee-token ` 命令时遇到卡住问题, 请尝试执行以下命令, 然后继续配置您的 token: + +```bash +dbus-run-session -- bash --noprofile --norc +# 如有需要,提前备份您的密钥环 +rm -rf ~/.local/share/keyrings +echo -n 'db' | gnome-keyring-daemon --unlock +``` diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 8c2f694..f178c4d 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -257,32 +257,32 @@ const config: Config = { { name: 'gai-readme', sourceBaseUrl: 'https://gitee.com/gitee-ai/cli/raw/master/', - outDir: 'docs', + outDir: 'docs/gai', documents: ['README.md'], modifyContent: (filename, content) => { if (filename === 'README.md') { - const lines = content.split('\n'); + let lines = content.split('\n'); // 修改标题 - const titleIndex = lines.findIndex(line => line.trim() === '# Gitee AI 命令行工具'); + const titleIndex = lines.findIndex(line => line.trim().includes('# Gitee AI 命令行工具')); if (titleIndex !== -1) { lines[titleIndex] = '# 使用 Gitee AI 命令行工具上传模型'; } + // update img link + lines = lines.map(line => + line.includes('png') ? line.replace('assets/', '../../static/img/gai/') : line + ); + // 参与贡献之后的行都不要 const idx = lines.findIndex(line => line.includes('参与贡献')); - - const fn = 'gai.md'; if (idx !== -1) { - const newContent = lines.slice(0, idx).join('\n'); - return { - filename: fn, - content: newContent, - } + lines = lines.slice(0, idx); } + return { - filename: fn, - content: content, + filename: 'gai.md', + content: lines.join('\n'), } } return undefined diff --git a/sidebars.ts b/sidebars.ts index 9ea2be9..59fed3a 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -62,7 +62,7 @@ const sidebars: SidebarsConfig = { }, { type: 'doc', - id: 'gai', + id: 'gai/gai', }, { type: 'doc', diff --git a/static/img/gai/clone.png b/static/img/gai/clone.png new file mode 100644 index 0000000000000000000000000000000000000000..7723e46c009bd29f00f0560ef6af38508967a1ae GIT binary patch literal 27167 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%0Dita4k^`b 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 O(NNP>EmMB<{C@zp=p--z literal 0 HcmV?d00001 -- Gitee