跳到主要内容

应用常见问题

如何安装依赖?

以应用 SDK 为 Gradio 为例,将 python 依赖写入 requirements.txt 文件至仓库根目录即可。 以安装 NodeJs 为例,根目录写入 packages.txt 文件,重启应用将会自动使用 apt-get 安装。

当应用 SDK 为 Docker 时,将完全由您自定义环境, 需要您自己执行相关操作,本次竞赛环境中,为正常使用算力,需要使用 registry.gitee-ai.local/base/iluvatar-corex:3.2.0-bi100 作为基础镜像

应用中如何高速下载模型?

使用 transformers、diffusers 、huggingface_hub 等库载入模型将会从 Gitee AI 高速下载。您也可以使 Git 克隆模型。

提示

应用 中默认即为内网高速下载。请勿修改环境变量 HF_ENDPOINT

下载格式一般为 hf-models/模型名,举例如下:

  from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"hf-models/glm-4-9b-chat",
torch_dtype=torch.float16,
low_cpu_mem_usage=True,
trust_remote_code=True,
).to(0).eval()

如何使用环境变量、秘钥?

在应用设置-功能中,您可以添加环境变量,使用方法参考: 在应用中使用环境变量、秘钥

如何让团队成员有权限推送代码到仓库?

应用设置 “成员管理” 可前往 Gitee 添加仓库成员。

如果使用 SSH 方式推送代码,需要 Gitee 账号添加 SHH 公钥 https://gitee.com/profile/sshkeys

应用显示 Running 为什么页面没有响应?

  • 如果您查看日志,应用运行正常,您可以检查您的应用是否运行在 7860 端口。
  • 或者检查应用是否运行在 0.0.0.0 ip 上,如果是其他特定的 ip, 则可能无法访问。

为什么我的应用会出现 CORS、CRSF 等报错,导致页面无法访问?

  • 您需要取消应用的访问限制,例如 jupyter-lab, 存在配置 --NotebookApp.allow_remote_access=True 允许远程访问,--NotebookApp.allow_origin=* 允许跨域请求。 Streamlit 也有类似的配置,例如
ENTRYPOINT ["streamlit", "run", "app.py", \
"--server.port=7860",\
"--server.enableCORS=false", \
"--server.headless=true", \
"--server.enableXsrfProtection=false", \
"--server.fileWatcherType=none", \
"--global.developmentMode=false", \
"--server.enableWebsocketCompression=false", \
"--browser.gatherUsageStats=false"]

通常这些配置都可添加到启动参数上。

如何排查错误

您可以点击界面的日志按钮,查询日志信息,以及提供的运行时信息。将会提供当前状态的原因、消息,上次启动失败的报错信息、重启次数、退出码等。

Alt text

为什么我的应用一直在 Pending 状态?

可能是正在分配资源,或平台 CPU、内存资源不足,请耐心等待

应用各类状态是什么意思?

状态名称描述
No_app_file应用没有入口文件
Building应用正在拉取代码、构建中
Readying应用正在准备中,可能是正在执行仓库代码、下载模型
Running on CPU应用运行在 CPU 算力上
Running on Nvidia A10应用运行在 Nvidia A10 显卡算力上
Pending应用正在等待中,可能是正在分配资源中、资源不足
Paused用户手动暂停应用
Stopped应用异常停止,可能是系统或代码出现异常
Runtime_error应用运行时出现错误,可能是代码或系统错误
Sleeping应用休眠中,满足休眠倒计时,效果同暂停

应用设置中的“出厂重启”和“重启”有什么区别?

类型出厂重启重启
是否拉取仓库最新代码
是否重新构建
是否重新下载依赖
是否重新执行仓库代码
是否更新硬件配置
是否更新环境变量

如果您更新了仓库代码,应用将会识别并在界面顶部提示重启,此时重启与出厂重启效果一致。

应用的生命周期是?

应用内部的流程为:

  1. 用户选择 SDK,创建应用
  2. 用户写入代码到仓库
  3. 根据 SDK 和代码构建为 Docker 镜像,安装依赖
  4. 启动镜像,执行仓库中的用户代码,最终启动服务到 7860 端口
  5. 用户可在浏览器在线访问应用

如何在应用中使用环境变量、秘钥?

您可以正常使用代码获取系统环境变量。

注意,秘钥也会作为环境变量注入,但秘钥被设置后不可见,也无法被 Fork。

以 Python 为例,获取环境变量: 如果您在应用设置中添加了 键: G_TOKEN 值:b53de003db22348606b

import os
G_TOKEN = os.getenv('G_TOKEN')
print(G_TOKEN) # 输出: b53de003db22348606b

如何安装依赖?

  • python 依赖
    • SDK 为 Gradio、Streamlit 时,将 python 依赖写入 requirements.txt 即可。
  • 系统依赖
    • 例如安装 NodeJs,根目录写入 packages.txt 文件,重启应用将会自动使用 apt-get 安装。
    nodejs
    npm

下载依赖镜像源可以自定义吗?

Gitee AI 默认使用了国内镜像源,您可以自行修改镜像源地址加速,例如 Python requirements.txt 文件:

--extra-index-url https://mirrors.cloud.tencent.com/pypi/simple
gradio==4.31.5

推荐使用的国内源源:

免费存储空间是多少?存储的数据会消失吗?

目前应用免费临时存储为 60GB,如果您未购买持久存储,则临时存储在应用重启、超额时会被清空。

参考:应用存储

为什么我的应用在页面中高度不对?

如果您自定义了程序,请在 html 中引用即可:

<script src="https://e-assets.gitee.com/gitee-ai/js/iframeResizer.contentWindow.min.js" async></script>

创建的应用,Web 界面太小,如何全屏?

应用设置 - 功能 - 应用 Header 布局中可选择布局。

如何让我的应用被推荐?

如果您开发了优秀、好玩、有趣的应用,您可以前往 反馈 提供应用信息申请