diff --git a/docs/apps.md b/docs/apps.md index 3988b3ad834fd061914e58e52d125bcc94f44896..83aefca5ca56b6c18f4977f51b912496d8d657ce 100644 --- a/docs/apps.md +++ b/docs/apps.md @@ -1,8 +1,11 @@ # 应用 -Gitee AI 应用让您可以简单地在个人或组织资料页上直接展示应用。这让您轻松构建自己的应用项目集,从而在各种会议或其他对外场景向合作方展示您的工作成效,并且能与相关领域的其他成员更好地进行合作。 +- 使用应用,借助 AI 模型能力,您可以构建一个创意十足、功能强大的 Web 程序。 +- Gitee Ai 的应用引擎可以自由编写任何程序,您可以选择预设的 Streamlit 和 Gradio 常用的 SDK。您也可以使用 Dockerfile 来高度自定义运行环境 +- Python、JavaScript、HTML、Go、Java、Ruby、PHP、Rust、C++ 等任何编程语言 或者 Dockerfile 来构建您的应用。 +借助 AI 模型能力,您可以构建一个创意十足、功能强大的 Web 程序。您可以通过 transformers 、diffusion 库加载 Gitee AI 模型,也可以使用 HTML、JS 等任意编程语言构建界面、调用 Gitee AI 模型引擎 或其他渠道提供的 API 服务。 -我们支持 Streamlit 和 Gradio,这样能使您迅速创建您的应用。除此之外,您也可以利用 Docker 的强大功能,托管自定义的 Dockerfile。此外,您还可以使用 JavaScript 和 HTML 创造静态的应用。 +- 在线部署后,可通过浏览器直接访问、分享您的应用,推广您自己的模型、创意,而无需考虑服务器、算力资源、域名、部署等复杂繁琐问题。 想更好演示您的应用,您还可以将您的应用配置升级,使其在 GPU 或其他更好的加速硬件上运行。 diff --git a/docs/apps/qa.md b/docs/apps/qa.md index 57056f3d217cfcef1da406ad146b418b90798980..99ccf8a4e902a7da3683ded382fe313de7dcaac6 100644 --- a/docs/apps/qa.md +++ b/docs/apps/qa.md @@ -28,7 +28,19 @@ ENTRYPOINT ["streamlit", "run", "app.py", \ ### 为什么我的应用一直在 Pending 状态? 可能是正在分配资源,或平台 CPU、内存资源不足,请耐心等待 - +### 应用各类状态是什么意思? + |状态名称|描述| + |---|---| + |No_app_file|应用没有入口文件| + |Building|应用正在拉取代码、构建中| + |Readying|应用正在准备中,可能是正在执行仓库代码、下载模型| + |Running on CPU|应用运行在 CPU 算力上| + |Running on Nvidia A10|应用运行在 Nvidia A10 显卡算力上| + |Pending|应用正在等待中,可能是正在分配资源中、资源不足| + |Paused|用户手动暂停应用| + |Stopped|应用异常停止,可能是系统或代码出现异常| + |Runtime_error|应用运行时出现错误,可能是代码或系统错误| + |Sleeping|应用休眠中,满足休眠倒计时,效果同暂停| ### 应用设置中的“出厂重启”和“重启”有什么区别? |类型|出厂重启|重启| |-|-|-| @@ -41,6 +53,15 @@ ENTRYPOINT ["streamlit", "run", "app.py", \ 如果您更新了仓库代码,应用将会识别并在界面顶部提示重启,此时重启与出厂重启效果一致。 +## 应用的生命周期是? + +应用内部的流程为: + +1. 用户选择 SDK,创建应用 +2. 用户写入代码到仓库 +3. 根据 SDK 和代码构建为 Docker 镜像,安装依赖 +4. 启动镜像,执行仓库中的用户代码,最终启动服务到 7860 端口 +5. 用户可在浏览器在线访问应用 ### 如何在应用中使用环境变量、秘钥? @@ -56,6 +77,16 @@ G_TOKEN = os.getenv('G_TOKEN') print(G_TOKEN) # 输出: b53de003db22348606b ``` +### 如何安装依赖? + - python 依赖 + - SDK 为 Gradio、Streamlit 时,将 python 依赖写入 requirements.txt 即可。 + - 系统依赖 + - 例如安装 NodeJs,根目录写入 packages.txt 文件,重启应用将会自动使用 apt-get 安装。 + ```packages + nodejs + npm + ``` + ### 下载依赖镜像源可以自定义吗? Gitee AI 默认使用了国内镜像源,您可以自行修改镜像源地址加速,例如 Python requirements.txt 文件: ``` diff --git a/docs/apps/sdks-docker.md b/docs/apps/sdks-docker.md index 35e3d8be9b819cbcfac93dbdc23c8e487f69524c..7f9651d7bcaeb93841c31d24177feb7bd175bdf4 100644 --- a/docs/apps/sdks-docker.md +++ b/docs/apps/sdks-docker.md @@ -1,16 +1,42 @@ # Docker 应用 - **应用**提供了对自定义 Docker 容器的支持,这使得开发者能够扩展到 Streamlit 和 Gradio 之外的应用领域。通过 Docker 应用,用户可以超越以往仅使用标准 SDK 所能达到的极限,实现更广泛的应用。无论是 FastAPI 和 Go 的接口,还是 Phoenix 应用以及ML Ops 工具,Docker 应用都能在众多不同的场景中发挥其作用。 + **应用**提供了对自定义 Docker 容器的支持,通过编写 Dockerfile 您可以自定义运行环境,将有更大的发挥空间。 -## 构建 Docker 应用 +## 创建 Docker 应用 在[创建新应用](https://ai.gitee.com/apps/new)时选择 Docker 作为 SDK。 +### 编写 Dockerfile 部署自己的 JupyterLab ! +要点: 将您的 Dockerfile 放置于仓库根目录下,并将您的程序运行在 7860 端口即可。例如: -## 密钥和变量管理 +```bash +FROM ubuntu:latest +RUN apt-get update && \ + apt-get install -y python3.9 \ + python3-pip \ + git \ + git-lfs \ + wget + + + +RUN pip3 install --default-timeout=100 --no-cache-dir JPype1 ipywidgets jupyterlab pandas jupyterlab-language-pack-zh-CN jupyter-server-proxy numpy seaborn scipy matplotlib pyNetLogo SALib -i https://mirrors.cloud.tencent.com/pypi/simple + +RUN useradd -ms /bin/bash jupyter +USER jupyter +WORKDIR home/jupyter +EXPOSE 7860 +ENTRYPOINT ["jupyter", "lab","--allow-root","--ip=0.0.0.0","--port=7860","--no-browser","--NotebookApp.token=" , "--NotebookApp.password=", "--NotebookApp.allow_remote_access=True", "--NotebookApp.allow_origin=*", "--ServerApp.disable_check_xsrf=True"] +USER root +RUN chown -R jupyter:jupyter /home +``` +提交 Dockerfile 到仓库后,重启应用即可: + +![dockerfile](../../static/img/app/dockerfile.png) + +## 环境变量、密钥管理 您可以在应用设置中管理应用的环境变量。[阅读更多](/apps/overview#管理密钥和环境变量) -### 变量 #### 构建 @@ -27,40 +53,6 @@ FROM python:latest RUN predict.py $MODEL_REPO_NAME ``` -#### 运行 - -变量在容器运行时被注入到环境中。 - -### 密钥 - -#### 构建 - - - - - -#### 运行 - -与变量一样,在运行时,将密钥作为环境变量访问。例如,在 Python 中,您可以使用 os.environ.get("SECRET_EXAMPLE")获取内容。 ## 权限 diff --git a/docs/getting-started/app.md b/docs/getting-started/app.md index 343e0d690f237dc2e146869fa4ef0f54d537563a..c823be71beefeaa140b86e5a8bc8759071a49d13 100644 --- a/docs/getting-started/app.md +++ b/docs/getting-started/app.md @@ -16,7 +16,7 @@ > SDK 说明: > - Gradio:您的应用将预设一个 Gradio,它是一个 Python 库,常用于快速构建 AI 应用的用户界面。 **您的程序需要 app.py 作为入口,并运行在 7860 端口**。 > - Streamlit:您的应用将预设一个 **Streamlit**,它是一个 Python 库,常用于快速构建数据应用的用户界面。**您的程序需要 app.py 作为入口,并运行在 7860 端口**。 -> - Dockerfile:您可以自定义 Dockerfile 来构建您的应用。**您的程序需要运行在 7860 端口**。 +> - Docker:您可以使用 Dockerfile 来高度自定义您的应用。**您的程序需要运行在 7860 端口**。 > - Static:纯前端的浏览器程序,您可以上传静态文件,如 HTML、JS、CSS 等,**以 index.html 作为程序入口**,常用于使用 JS 调用 API 服务,构建 AI 应用。 ![新建应用](../apps/getting-started/new-app.png) @@ -68,16 +68,16 @@ git push |状态名称|描述| |---|---| - |NO_APP_FILE|应用没有入口文件| + |No_app_file|应用没有入口文件| |Building|应用正在拉取代码、构建中| - |READYING|应用正在准备中,可能是正在执行仓库代码、下载模型| + |Readying|应用正在准备中,可能是正在执行仓库代码、下载模型| |Running on CPU|应用运行在 CPU 算力上| |Running on Nvidia A10|应用运行在 Nvidia A10 显卡算力上| - |PENDING|应用正在等待中,可能是正在分配资源中、资源不足| - |PAUSED|用户手动暂停应用| - |STOPPED|应用异常停止,可能是系统或代码出现异常| - |RUNTIME_ERROR|应用运行时出现错误,可能是代码或系统错误| - + |Pending|应用正在等待中,可能是正在分配资源中、资源不足| + |Paused|用户手动暂停应用| + |Stopped|应用异常停止,可能是系统或代码出现异常| + |Runtime_error|应用运行时出现错误,可能是代码或系统错误| + |SLEEPING|应用休眠中,满足休眠倒计时| ![应用日志](../apps/getting-started/app-log.png) @@ -172,7 +172,7 @@ git push - [中文古诗生成器](https://ai.gitee.com/apps/stringify/gpt2-chinese-poem-app) - [Animagine-xl: Gradio + GPU](https://ai.gitee.com/apps/stringify/Animagine-xl) - [SDXL-Turbo: Gradio + GPU](https://ai.gitee.com/apps/stringify/SDXL-Turbo) -- [物体检查: 静态页面 Static](https://ai.gitee.com/apps/stringify/static-app_object-detection) +- [物体检测: 静态页面 Static](https://ai.gitee.com/apps/stringify/static-app_object-detection) - [chatglm3-6b: Gradio + GPU](https://ai.gitee.com/apps/stringify/chatglm3-6b) - [图像识别: Gradio](https://ai.gitee.com/apps/stringify/vit-gpt2-image-captioning) - [jupyter-lab: Dockerfile](https://ai.gitee.com/apps/stringifygroup/jupyter-lab/) diff --git a/static/img/app/dockerfile.png b/static/img/app/dockerfile.png new file mode 100644 index 0000000000000000000000000000000000000000..becad3c4ef681ac12b1f9ce9d94a347f38166456 Binary files /dev/null and b/static/img/app/dockerfile.png differ