diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/[WeeklyReport]2026.05.04~2026.05.18.md b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/[WeeklyReport]2026.05.04~2026.05.18.md
new file mode 100644
index 00000000..81d0deb3
--- /dev/null
+++ b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/[WeeklyReport]2026.05.04~2026.05.18.md
@@ -0,0 +1,102 @@
+### 认领者 GitHub ID
+megemini
+
+### 赛题信息
+
+- **进阶任务序号**:#17
+- **赛题名称**:基于燧原卡为 FastDeploy 新增应用
+- **关联厂商**:燧原
+
+### 本周工作
+
+1. **RFC 文档**
+
+ - 已经完成 RFC 文档
+ - AI Studio 地址:https://aistudio.baidu.com/projectdetail/10237267
+
+2. **代码实现**
+
+ - 已经完成 AI Studio 项目的 notebook
+
+ 已经在 燧原 的服务器上跑通了 notebook,可以正常调用 ERNIE-4.5-0.3B-Paddle 模型。
+
+ notebook 见 app.ipynb
+
+ 在 燧原 的服务器上初始化:
+
+ 
+
+ 通过执行 cell 完成完形填空:
+
+ 
+
+3. **README**
+
+ - 可以参考 AI Studio 项目的 notebook
+
+4. **演示视频/截图**
+
+ - 待完成
+
+5. **问题与解决**
+
+ - 问题:ERNIE-4.5-0.3B-Paddle 生成效果问题
+
+ 之前在 RFC 中希望通过 `1` 个 prompt 就让模型生成问题和答案,使用的 prompt 如下:
+
+ ```python
+ prompt = f"""你是一位英语教育专家。请生成一道英文完形填空题。
+
+ 难度等级:{difficulty}(1最简单,5最难)
+
+ 严格遵循以下格式输出:
+ 包含一个空白的英文句子,空白处用 [选项1, 选项2, 选项3] 表示
+ 正确答案
+
+ 要求:
+ 1. 三个选项包含一个正确答案和两个有迷惑性的干扰项
+ 2. 答案应基于上下文语义判断
+ 3. 不要输出任何额外内容
+
+ 示例:
+ When I was 7 [years, days, months] old, I went to the US with my mom.
+ years
+
+ I need to [buy, sell, rent] some groceries before dinner.
+ buy
+
+ The teacher asked the students to [discuss, dismiss, display] the topic in groups.
+ discuss
+
+ Despite the heavy rain, she [insisted, resisted, assisted] on going out for a walk.
+ insisted"""
+
+ ```
+
+ 但是,模型生成效果并不理想,可以参考 AI Studio 的模型体验场的生成效果:
+
+ 
+
+ 在多次尝试摸索 ERNIE-4.5-0.3B-Paddle 模型的能力边界之后,确定为现在的两阶段方式:
+
+ 1. 让模型根据难度生成一条英文句子
+ 2. 从句子中抽取一个单词,然后让模型给我几个同义词
+
+ 如此可以组合成一道完形填空题。
+
+### 下周计划
+
+1. 在 AI Studio 上创建 gradio 应用
+
+### 当前阻塞(无则填"无")
+
+- 无
+
+### 交付物进展
+
+| 交付物 | 状态 | 备注 |
+|--------|:----:|------|
+| RFC 文档 | ✅ 已完成 | - |
+| 代码实现 | 🔄 | |
+| README | 🔄 | - |
+| 演示视频/截图 |🔄 | - |
\ No newline at end of file
diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/app.ipynb b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/app.ipynb
new file mode 100644
index 00000000..6ff2b3b5
--- /dev/null
+++ b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/app.ipynb
@@ -0,0 +1,1803 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 【燧原】趣味英文完形填空闯关应用\n",
+ "\n",
+ "基于 ERNIE-4.5-0.3B 轻量模型的趣味英文完形填空闯关应用,将 AI 动态出题、限时机制与积分系统相结合。\n",
+ "\n",
+ "---"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 0. 配置环境"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Looking in indexes: https://www.paddlepaddle.org.cn/packages/stable/cpu/\n",
+ "Collecting paddlepaddle==3.1.0a0\n",
+ " Downloading https://paddle-whl.bj.bcebos.com/stable/cpu/paddlepaddle/paddlepaddle-3.1.0a0-cp310-cp310-linux_x86_64.whl (195.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m195.1/195.1 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m \u001b[33m0:00:17\u001b[0m:00:01\u001b[0m00:01\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: httpx in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (0.28.1)\n",
+ "Requirement already satisfied: numpy>=1.21 in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (1.26.4)\n",
+ "Requirement already satisfied: protobuf>=3.20.2 in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (6.32.1)\n",
+ "Requirement already satisfied: Pillow in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (11.3.0)\n",
+ "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (5.1.1)\n",
+ "Collecting opt_einsum==3.3.0 (from paddlepaddle==3.1.0a0)\n",
+ " Downloading https://paddle-whl.bj.bcebos.com/stable/cpu/opt-einsum/opt_einsum-3.3.0-py3-none-any.whl (65 kB)\n",
+ "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (3.3)\n",
+ "Requirement already satisfied: typing_extensions in /usr/local/lib/python3.10/dist-packages (from paddlepaddle==3.1.0a0) (4.14.1)\n",
+ "Requirement already satisfied: anyio in /usr/local/lib/python3.10/dist-packages (from httpx->paddlepaddle==3.1.0a0) (4.11.0)\n",
+ "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx->paddlepaddle==3.1.0a0) (2025.7.14)\n",
+ "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx->paddlepaddle==3.1.0a0) (1.0.9)\n",
+ "Requirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx->paddlepaddle==3.1.0a0) (2.8)\n",
+ "Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx->paddlepaddle==3.1.0a0) (0.16.0)\n",
+ "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio->httpx->paddlepaddle==3.1.0a0) (1.3.0)\n",
+ "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio->httpx->paddlepaddle==3.1.0a0) (1.3.1)\n",
+ "\u001b[33mWARNING: Error parsing dependencies of mlnx-tools: Invalid version: '-5.2.0-'\u001b[0m\u001b[33m\n",
+ "\u001b[0mInstalling collected packages: opt_einsum, paddlepaddle\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2/2\u001b[0m [paddlepaddle][0m [paddlepaddle]\n",
+ "\u001b[1A\u001b[2KSuccessfully installed opt_einsum-3.3.0 paddlepaddle-3.1.0a0\n",
+ "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n",
+ "\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m26.1.1\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n",
+ "Looking in indexes: https://www.paddlepaddle.org.cn/packages/nightly/gcu/\n",
+ "Collecting paddle-custom-gcu==3.0.0.dev20250716\n",
+ " Downloading https://paddle-whl.bj.bcebos.com/nightly/gcu/paddle-custom-gcu/paddle_custom_gcu-3.0.0.dev20250716-cp310-cp310-linux_x86_64.whl (7.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.0/7.0 MB\u001b[0m \u001b[31m49.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h\u001b[33mWARNING: Error parsing dependencies of mlnx-tools: Invalid version: '-5.2.0-'\u001b[0m\u001b[33m\n",
+ "\u001b[0mInstalling collected packages: paddle-custom-gcu\n",
+ "Successfully installed paddle-custom-gcu-3.0.0.dev20250716\n",
+ "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n",
+ "\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m26.1.1\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n",
+ "version: 3.0.0.dev20250716\n",
+ "commit: 2bd3a8283dc9a91f537aa1377b7ed927aa08326d\n",
+ "TopsPlatform: 1.5.0.601\n",
+ "/usr/local/lib/python3.10/dist-packages/paddle/utils/cpp_extension/extension_utils.py:715: UserWarning: No ccache found. Please be aware that recompiling all source files may be required. You can download and install ccache from: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md\n",
+ " warnings.warn(warning_message)\n",
+ "I0508 05:49:31.103722 1483 init.cc:238] ENV [CUSTOM_DEVICE_ROOT]=/usr/local/lib/python3.10/dist-packages/paddle_custom_device\n",
+ "I0508 05:49:31.103742 1483 init.cc:146] Try loading custom device libs from: [/usr/local/lib/python3.10/dist-packages/paddle_custom_device]\n",
+ "WARNING: Logging before InitGoogleLogging() is written to STDERR\n",
+ "I0508 05:49:31.268548 1483 runtime.cc:804] InitPlugin for backend GCU successfully.\n",
+ "I0508 05:49:31.279711 1483 runtime.cc:95] Backend GCU Init, get GCU count:1, current device id:0\n",
+ "I0508 05:49:31.279740 1483 custom_device_load.cc:51] Succeed in loading custom runtime in lib: /usr/local/lib/python3.10/dist-packages/paddle_custom_device/libpaddle-custom-gcu.so\n",
+ "I0508 05:49:31.284403 1483 custom_device_load.cc:78] Succeed in loading custom engine in lib: /usr/local/lib/python3.10/dist-packages/paddle_custom_device/libpaddle-custom-gcu.so\n",
+ "I0508 05:49:31.286999 1483 custom_kernel.cc:68] Succeed in loading 275 custom kernel(s) from loaded lib(s), will be used like native ones.\n",
+ "I0508 05:49:31.287094 1483 init.cc:158] Finished in LoadCustomDevice with libs_path: [/usr/local/lib/python3.10/dist-packages/paddle_custom_device]\n",
+ "I0508 05:49:31.287114 1483 init.cc:244] CustomDevice: gcu, visible devices count: 1\n",
+ "Running verify PaddlePaddle program ... \n",
+ "I0508 05:49:31.593480 1483 pir_interpreter.cc:1524] New Executor is Running ...\n",
+ "I0508 05:49:31.594089 1483 runtime.cc:133] Backend GCU init device:0\n",
+ "I0508 05:49:31.612985 1483 pir_interpreter.cc:1547] pir interpreter is running by multi-thread mode ...\n",
+ "I0508 05:49:31.613847 1606 utils.cc:136] Kernels launch in JIT ONLY mode:false\n",
+ "I0508 05:49:31.625713 1606 op_utils.cc:191] AOT kernel stream mode:async\n",
+ "I0508 05:49:31.655267 1618 gcu_layout_funcs.cc:54] Enable transpose optimize:false\n",
+ "PaddlePaddle works well on 1 gcu.\n",
+ "PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.\n",
+ "I0508 05:49:31.724458 1483 runtime.cc:149] Backend GCU finalize device:0\n",
+ "I0508 05:49:31.724476 1483 runtime.cc:101] Backend GCU Finalize\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 在【燧原】环境中需要安装特定版本的 paddlepaddle\n",
+ "# 参考:https://github.com/PaddlePaddle/community/blob/master/pfcc/paddle-hardware/%E7%87%A7%E5%8E%9F%E7%A7%91%E6%8A%80-%E5%9F%BA%E4%BA%8EFastDeploy%E8%B7%91%E9%80%9AERNIE-4.5-0.3B-Paddle%20%E6%89%93%E5%8D%A1%E4%BB%BB%E5%8A%A1.md\n",
+ "# # PaddlePaddle『飞桨』深度学习框架,提供运算基础能力\n",
+ "!python -m pip install paddlepaddle==3.1.0a0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/\n",
+ "\n",
+ "# # PaddleCustomDevice是PaddlePaddle『飞桨』深度学习框架的自定义硬件接入实现,提供GCU的算子实现\n",
+ "!python -m pip install paddle-custom-gcu==3.0.0.dev20250716 -i https://www.paddlepaddle.org.cn/packages/nightly/gcu/\n",
+ "\n",
+ "!python -c \"import paddle_custom_device; paddle_custom_device.gcu.version()\"\n",
+ "\n",
+ "!python -c \"import paddle; paddle.utils.run_check()\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple\n",
+ "Requirement already satisfied: pip in /usr/local/lib/python3.10/dist-packages (25.2)\n",
+ "Collecting pip\n",
+ " Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3a/eb/fea4d1d51c49832120f7f285d07306db3960f423a2612c6057caf3e8196f/pip-26.1.1-py3-none-any.whl (1.8 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.8/1.8 MB\u001b[0m \u001b[31m10.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m6m-:--:--\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (80.9.0)\n",
+ "Collecting setuptools\n",
+ " Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl (1.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.0/1.0 MB\u001b[0m \u001b[31m30.6 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: wheel in /usr/local/lib/python3.10/dist-packages (0.45.1)\n",
+ "Collecting wheel\n",
+ " Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/87/1b/9e33c09813d65e248f7f773119148a612516a4bea93e9c6f545f78455b7c/wheel-0.47.0-py3-none-any.whl (32 kB)\n",
+ "Requirement already satisfied: packaging>=24.0 in /usr/local/lib/python3.10/dist-packages (from wheel) (25.0)\n",
+ "\u001b[33mWARNING: Error parsing dependencies of mlnx-tools: Invalid version: '-5.2.0-'\u001b[0m\u001b[33m\n",
+ "\u001b[0mInstalling collected packages: wheel, setuptools, pip\n",
+ "\u001b[2K Attempting uninstall: wheel\n",
+ "\u001b[2K Found existing installation: wheel 0.45.1\n",
+ "\u001b[2K Uninstalling wheel-0.45.1:\n",
+ "\u001b[2K Successfully uninstalled wheel-0.45.1\n",
+ "\u001b[2K Attempting uninstall: setuptools\n",
+ "\u001b[2K Found existing installation: setuptools 80.9.0\n",
+ "\u001b[2K Uninstalling setuptools-80.9.0:\n",
+ "\u001b[2K Successfully uninstalled setuptools-80.9.0━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1/3\u001b[0m [setuptools]\n",
+ "\u001b[2K Attempting uninstall: pip90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1/3\u001b[0m [setuptools]\n",
+ "\u001b[2K Found existing installation: pip 25.21m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━\u001b[0m \u001b[32m2/3\u001b[0m [pip]ls]\n",
+ "\u001b[2K Uninstalling pip-25.2:━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━\u001b[0m \u001b[32m2/3\u001b[0m [pip]\n",
+ "\u001b[2K Successfully uninstalled pip-25.2╸\u001b[0m\u001b[90m━━━━━━━━━━━━━\u001b[0m \u001b[32m2/3\u001b[0m [pip]\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3/3\u001b[0m [pip]\u001b[32m2/3\u001b[0m [pip]\n",
+ "\u001b[1A\u001b[2K\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+ "tensorboard 2.3.0 requires google-auth<2,>=1.6.3, but you have google-auth 2.41.1 which is incompatible.\n",
+ "thinc 8.3.6 requires numpy<3.0.0,>=2.0.0, but you have numpy 1.26.4 which is incompatible.\n",
+ "xinference 1.7.0.post1+gcu20250807.0.g70546266.dirty requires click<8.2.0, but you have click 8.3.0 which is incompatible.\u001b[0m\u001b[31m\n",
+ "\u001b[0mSuccessfully installed pip-26.1.1 setuptools-82.0.1 wheel-0.47.0\n",
+ "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n",
+ "\u001b[0mLooking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple, https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplels\n",
+ "Collecting paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl (from -r requirements-gcu.txt (line 13))\n",
+ " Using cached paddleformers-0.4.0.post20251222-py3-none-any.whl (1.7 MB)\n",
+ "Collecting flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl (from -r requirements-gcu.txt (line 50))\n",
+ " Using cached flash_mask-4.0.post20260128-py3-none-any.whl (216 kB)\n",
+ "Collecting arctic_inference @ https://paddle-qa.bj.bcebos.com/ernie/arctic_inference-0.1.3-cp310-cp310-linux_x86_64.whl (from -r requirements-gcu.txt (line 51))\n",
+ " Using cached arctic_inference-0.1.3-cp310-cp310-linux_x86_64.whl (254 kB)\n",
+ "Collecting setuptools==62.3.0 (from -r requirements-gcu.txt (line 1))\n",
+ " Using cached setuptools-62.3.0-py3-none-any.whl (1.2 MB)\n",
+ "Collecting pre-commit (from -r requirements-gcu.txt (line 2))\n",
+ " Using cached pre_commit-4.6.0-py2.py3-none-any.whl (226 kB)\n",
+ "Collecting yapf (from -r requirements-gcu.txt (line 3))\n",
+ " Using cached yapf-0.43.0-py3-none-any.whl (256 kB)\n",
+ "Collecting flake8 (from -r requirements-gcu.txt (line 4))\n",
+ " Using cached flake8-7.3.0-py2.py3-none-any.whl (57 kB)\n",
+ "Requirement already satisfied: ruamel.yaml in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 5)) (0.18.15)\n",
+ "Collecting zmq (from -r requirements-gcu.txt (line 6))\n",
+ " Using cached zmq-0.0.0.zip (2.2 kB)\n",
+ " Installing build dependencies ... \u001b[?25ldone\n",
+ "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
+ "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25hCollecting aiozmq (from -r requirements-gcu.txt (line 7))\n",
+ " Using cached aiozmq-1.0.0-py3-none-any.whl (35 kB)\n",
+ "Requirement already satisfied: openai>=1.93.0 in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 8)) (2.2.0)\n",
+ "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 9)) (4.67.1)\n",
+ "Collecting pynvml (from -r requirements-gcu.txt (line 10))\n",
+ " Using cached pynvml-13.0.1-py3-none-any.whl (28 kB)\n",
+ "Collecting uvicorn>=0.38.0 (from -r requirements-gcu.txt (line 11))\n",
+ " Using cached uvicorn-0.46.0-py3-none-any.whl (70 kB)\n",
+ "Requirement already satisfied: fastapi in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 12)) (0.118.2)\n",
+ "Requirement already satisfied: redis in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 14)) (6.4.0)\n",
+ "Collecting etcd3 (from -r requirements-gcu.txt (line 15))\n",
+ " Using cached etcd3-0.12.0.tar.gz (63 kB)\n",
+ " Installing build dependencies ... \u001b[?25ldone\n",
+ "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
+ "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25hRequirement already satisfied: httpx in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 16)) (0.28.1)\n",
+ "Collecting tool_helpers (from -r requirements-gcu.txt (line 17))\n",
+ " Using cached tool_helpers-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (111 kB)\n",
+ "Requirement already satisfied: cupy-cuda12x in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 18)) (13.6.0)\n",
+ "Requirement already satisfied: tabulate in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 20)) (0.9.0)\n",
+ "Requirement already satisfied: gradio in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 21)) (5.22.0)\n",
+ "Collecting xlwt (from -r requirements-gcu.txt (line 22))\n",
+ " Using cached xlwt-1.3.0-py2.py3-none-any.whl (99 kB)\n",
+ "Collecting visualdl (from -r requirements-gcu.txt (line 23))\n",
+ " Using cached visualdl-2.5.3-py3-none-any.whl (6.3 MB)\n",
+ "Collecting setuptools-scm>=8 (from -r requirements-gcu.txt (line 24))\n",
+ " Using cached setuptools_scm-10.0.5-py3-none-any.whl (21 kB)\n",
+ "Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 25)) (0.23.1)\n",
+ "Collecting decord (from -r requirements-gcu.txt (line 26))\n",
+ " Using cached decord-0.6.0-py3-none-manylinux2010_x86_64.whl (13.6 MB)\n",
+ "Collecting moviepy (from -r requirements-gcu.txt (line 27))\n",
+ " Using cached moviepy-2.2.1-py3-none-any.whl (129 kB)\n",
+ "Collecting triton==3.3 (from -r requirements-gcu.txt (line 28))\n",
+ " Using cached triton-3.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (156.4 MB)\n",
+ "Requirement already satisfied: crcmod in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 29)) (1.7)\n",
+ "Requirement already satisfied: msgpack in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 30)) (1.1.2)\n",
+ "Collecting gunicorn==25.0.3 (from -r requirements-gcu.txt (line 31))\n",
+ " Using cached gunicorn-25.0.3-py3-none-any.whl (171 kB)\n",
+ "Requirement already satisfied: modelscope in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 32)) (1.30.0)\n",
+ "Collecting safetensors>=0.7.0 (from -r requirements-gcu.txt (line 33))\n",
+ " Using cached safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (507 kB)\n",
+ "Collecting opentelemetry-api>=1.24.0 (from -r requirements-gcu.txt (line 34))\n",
+ " Using cached opentelemetry_api-1.41.1-py3-none-any.whl (69 kB)\n",
+ "Collecting opentelemetry-sdk>=1.24.0 (from -r requirements-gcu.txt (line 35))\n",
+ " Using cached opentelemetry_sdk-1.41.1-py3-none-any.whl (180 kB)\n",
+ "Collecting opentelemetry-instrumentation-redis (from -r requirements-gcu.txt (line 36))\n",
+ " Using cached opentelemetry_instrumentation_redis-0.62b1-py3-none-any.whl (15 kB)\n",
+ "Collecting opentelemetry-instrumentation-mysql (from -r requirements-gcu.txt (line 37))\n",
+ " Using cached opentelemetry_instrumentation_mysql-0.62b1-py3-none-any.whl (10 kB)\n",
+ "Collecting opentelemetry-distro (from -r requirements-gcu.txt (line 38))\n",
+ " Using cached opentelemetry_distro-0.62b1-py3-none-any.whl (3.3 kB)\n",
+ "Collecting opentelemetry-exporter-otlp (from -r requirements-gcu.txt (line 39))\n",
+ " Using cached opentelemetry_exporter_otlp-1.41.1-py3-none-any.whl (7.0 kB)\n",
+ "Collecting opentelemetry-instrumentation-fastapi (from -r requirements-gcu.txt (line 40))\n",
+ " Using cached opentelemetry_instrumentation_fastapi-0.62b1-py3-none-any.whl (13 kB)\n",
+ "Collecting opentelemetry-instrumentation-logging>=0.57b0 (from -r requirements-gcu.txt (line 41))\n",
+ " Using cached opentelemetry_instrumentation_logging-0.62b1-py3-none-any.whl (17 kB)\n",
+ "Requirement already satisfied: partial_json_parser in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 42)) (0.2.1.1.post6)\n",
+ "Requirement already satisfied: msgspec in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 43)) (0.19.0)\n",
+ "Requirement already satisfied: einops in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 44)) (0.8.1)\n",
+ "Requirement already satisfied: setproctitle in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 45)) (1.3.7)\n",
+ "Collecting aistudio_sdk (from -r requirements-gcu.txt (line 46))\n",
+ " Using cached aistudio_sdk-0.3.8-py3-none-any.whl (62 kB)\n",
+ "Collecting p2pstore (from -r requirements-gcu.txt (line 47))\n",
+ " Using cached p2pstore-0.1.15-py3-none-any.whl (84 kB)\n",
+ "Requirement already satisfied: py-cpuinfo in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 48)) (9.0.0)\n",
+ "Collecting flashinfer-python-paddle (from -r requirements-gcu.txt (line 49))\n",
+ " Using cached flashinfer_python_paddle-0.4.1.1-py3-none-any.whl (6.9 MB)\n",
+ "Collecting paddlefsl (from -r requirements-gcu.txt (line 52))\n",
+ " Using cached paddlefsl-1.1.0-py3-none-any.whl (101 kB)\n",
+ "Collecting colorama (from -r requirements-gcu.txt (line 53))\n",
+ " Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n",
+ "Collecting seqeval (from -r requirements-gcu.txt (line 54))\n",
+ " Using cached seqeval-1.2.2.tar.gz (43 kB)\n",
+ " Installing build dependencies ... \u001b[?25ldone\n",
+ "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
+ "\u001b[?25h Installing backend dependencies ... \u001b[?25ldone\n",
+ "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25hCollecting paddle2onnx (from -r requirements-gcu.txt (line 55))\n",
+ " Downloading paddle2onnx-2.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.7 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.7/3.7 MB\u001b[0m \u001b[31m18.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0mm0:00:01\u001b[0m\n",
+ "\u001b[?25hCollecting dill<0.3.5 (from -r requirements-gcu.txt (line 56))\n",
+ " Downloading dill-0.3.4-py2.py3-none-any.whl (86 kB)\n",
+ "Requirement already satisfied: jieba in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 57)) (0.42.1)\n",
+ "Requirement already satisfied: onnx in /usr/local/lib/python3.10/dist-packages (from -r requirements-gcu.txt (line 58)) (1.10.1)\n",
+ "Collecting pybind11[global] (from -r requirements-gcu.txt (line 19))\n",
+ " Downloading pybind11-3.0.4-py3-none-any.whl (314 kB)\n",
+ "Collecting blobfile (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading blobfile-3.2.0-py3-none-any.whl (76 kB)\n",
+ "Collecting colorlog (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading colorlog-6.10.1-py3-none-any.whl (11 kB)\n",
+ "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (1.7.2)\n",
+ "Collecting multiprocess<=0.70.12.2 (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading multiprocess-0.70.12.2-py39-none-any.whl (128 kB)\n",
+ "Requirement already satisfied: datasets>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (4.1.1)\n",
+ "Requirement already satisfied: sentencepiece in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (0.2.1)\n",
+ "Requirement already satisfied: huggingface_hub>=0.19.2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (0.35.3)\n",
+ "Requirement already satisfied: protobuf>=3.20.2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (6.32.1)\n",
+ "Collecting fast_dataindex>=0.1.1 (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading fast_dataindex-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (220 kB)\n",
+ "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (3.1.6)\n",
+ "Requirement already satisfied: regex in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (2025.9.18)\n",
+ "Requirement already satisfied: numpy<=1.26.4 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (1.26.4)\n",
+ "Requirement already satisfied: tiktoken in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (0.12.0)\n",
+ "Requirement already satisfied: ml_dtypes in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (0.5.1)\n",
+ "Requirement already satisfied: tokenizers<0.22,>=0.21 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (0.21.4)\n",
+ "Requirement already satisfied: omegaconf in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (2.3.0)\n",
+ "Collecting transformers>=4.55.1 (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading transformers-5.8.0-py3-none-any.whl (10.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.6/10.6 MB\u001b[0m \u001b[31m33.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hCollecting use_triton_in_paddle (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading use_triton_in_paddle-0.1.0-py3-none-any.whl (4.0 kB)\n",
+ "Collecting GPUtil (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading GPUtil-1.4.0.tar.gz (5.5 kB)\n",
+ " Installing build dependencies ... \u001b[?25ldone\n",
+ "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
+ "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25hCollecting nvidia-cutlass==4.2.0.0 (from flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading nvidia_cutlass-4.2.0.0-py3-none-any.whl (6.4 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.4/6.4 MB\u001b[0m \u001b[31m40.1 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting nvidia-cutlass-dsl==4.3.0 (from flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading nvidia_cutlass_dsl-4.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (75.8 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.8/75.8 MB\u001b[0m \u001b[31m42.4 MB/s\u001b[0m \u001b[33m0:00:01\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: typing_extensions in /usr/local/lib/python3.10/dist-packages (from flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50)) (4.14.1)\n",
+ "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from gunicorn==25.0.3->-r requirements-gcu.txt (line 31)) (25.0)\n",
+ "Collecting cuda-python>=11.8.0 (from nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading cuda_python-13.2.0-py3-none-any.whl (8.1 kB)\n",
+ "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50)) (3.3)\n",
+ "Collecting pydot (from nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading pydot-4.0.1-py3-none-any.whl (37 kB)\n",
+ "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50)) (1.15.3)\n",
+ "Collecting treelib (from nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading treelib-1.8.0-py3-none-any.whl (30 kB)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (3.20.0)\n",
+ "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (2024.6.1)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (6.0.1)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (2.32.5)\n",
+ "Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (1.1.10)\n",
+ "Collecting cfgv>=2.0.0 (from pre-commit->-r requirements-gcu.txt (line 2))\n",
+ " Downloading cfgv-3.5.0-py2.py3-none-any.whl (7.4 kB)\n",
+ "Collecting identify>=1.0.0 (from pre-commit->-r requirements-gcu.txt (line 2))\n",
+ " Downloading identify-2.6.19-py2.py3-none-any.whl (99 kB)\n",
+ "Collecting nodeenv>=0.11.1 (from pre-commit->-r requirements-gcu.txt (line 2))\n",
+ " Downloading nodeenv-1.10.0-py2.py3-none-any.whl (23 kB)\n",
+ "Collecting virtualenv>=20.10.0 (from pre-commit->-r requirements-gcu.txt (line 2))\n",
+ " Downloading virtualenv-21.3.1-py3-none-any.whl (7.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m17.1 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: platformdirs>=3.5.1 in /usr/local/lib/python3.10/dist-packages (from yapf->-r requirements-gcu.txt (line 3)) (4.5.0)\n",
+ "Requirement already satisfied: tomli>=2.0.1 in /usr/local/lib/python3.10/dist-packages (from yapf->-r requirements-gcu.txt (line 3)) (2.3.0)\n",
+ "Collecting mccabe<0.8.0,>=0.7.0 (from flake8->-r requirements-gcu.txt (line 4))\n",
+ " Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)\n",
+ "Requirement already satisfied: pycodestyle<2.15.0,>=2.14.0 in /usr/local/lib/python3.10/dist-packages (from flake8->-r requirements-gcu.txt (line 4)) (2.14.0)\n",
+ "Collecting pyflakes<3.5.0,>=3.4.0 (from flake8->-r requirements-gcu.txt (line 4))\n",
+ " Downloading pyflakes-3.4.0-py2.py3-none-any.whl (63 kB)\n",
+ "Requirement already satisfied: ruamel.yaml.clib>=0.2.7 in /usr/local/lib/python3.10/dist-packages (from ruamel.yaml->-r requirements-gcu.txt (line 5)) (0.2.14)\n",
+ "Requirement already satisfied: pyzmq in /usr/local/lib/python3.10/dist-packages (from zmq->-r requirements-gcu.txt (line 6)) (27.1.0)\n",
+ "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.93.0->-r requirements-gcu.txt (line 8)) (4.11.0)\n",
+ "Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai>=1.93.0->-r requirements-gcu.txt (line 8)) (1.7.0)\n",
+ "Requirement already satisfied: jiter<1,>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.93.0->-r requirements-gcu.txt (line 8)) (0.11.0)\n",
+ "Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.93.0->-r requirements-gcu.txt (line 8)) (2.12.0)\n",
+ "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.93.0->-r requirements-gcu.txt (line 8)) (1.3.1)\n",
+ "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx->-r requirements-gcu.txt (line 16)) (2025.7.14)\n",
+ "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx->-r requirements-gcu.txt (line 16)) (1.0.9)\n",
+ "Requirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx->-r requirements-gcu.txt (line 16)) (2.8)\n",
+ "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai>=1.93.0->-r requirements-gcu.txt (line 8)) (1.3.0)\n",
+ "Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx->-r requirements-gcu.txt (line 16)) (0.16.0)\n",
+ "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.93.0->-r requirements-gcu.txt (line 8)) (0.7.0)\n",
+ "Requirement already satisfied: pydantic-core==2.41.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.93.0->-r requirements-gcu.txt (line 8)) (2.41.1)\n",
+ "Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.93.0->-r requirements-gcu.txt (line 8)) (0.4.2)\n",
+ "Requirement already satisfied: nvidia-ml-py>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from pynvml->-r requirements-gcu.txt (line 10)) (13.580.82)\n",
+ "Requirement already satisfied: click>=7.0 in /usr/local/lib/python3.10/dist-packages (from uvicorn>=0.38.0->-r requirements-gcu.txt (line 11)) (8.3.0)\n",
+ "Requirement already satisfied: starlette<0.49.0,>=0.40.0 in /usr/local/lib/python3.10/dist-packages (from fastapi->-r requirements-gcu.txt (line 12)) (0.48.0)\n",
+ "Requirement already satisfied: async-timeout>=4.0.3 in /usr/local/lib/python3.10/dist-packages (from redis->-r requirements-gcu.txt (line 14)) (5.0.1)\n",
+ "Requirement already satisfied: grpcio>=1.27.1 in /usr/local/lib/python3.10/dist-packages (from etcd3->-r requirements-gcu.txt (line 15)) (1.64.1)\n",
+ "Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from etcd3->-r requirements-gcu.txt (line 15)) (1.16.0)\n",
+ "Collecting tenacity>=6.1.0 (from etcd3->-r requirements-gcu.txt (line 15))\n",
+ " Downloading tenacity-9.1.4-py3-none-any.whl (28 kB)\n",
+ "Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x->-r requirements-gcu.txt (line 18)) (0.8.3)\n",
+ "Collecting pybind11-global==3.0.4 (from pybind11[global]->-r requirements-gcu.txt (line 19))\n",
+ " Downloading pybind11_global-3.0.4-py3-none-any.whl (580 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m580.3/580.3 kB\u001b[0m \u001b[31m54.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: aiofiles<24.0,>=22.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (23.2.1)\n",
+ "Requirement already satisfied: ffmpy in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.6.2)\n",
+ "Requirement already satisfied: gradio-client==1.8.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (1.8.0)\n",
+ "Requirement already satisfied: groovy~=0.1 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.1.2)\n",
+ "Requirement already satisfied: markupsafe<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (3.0.2)\n",
+ "Requirement already satisfied: orjson~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (3.11.3)\n",
+ "Requirement already satisfied: pandas<3.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (2.2.2)\n",
+ "Requirement already satisfied: pillow<12.0,>=8.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (11.3.0)\n",
+ "Requirement already satisfied: pydub in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.25.1)\n",
+ "Requirement already satisfied: python-multipart>=0.0.18 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.0.20)\n",
+ "Requirement already satisfied: ruff>=0.9.3 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.14.0)\n",
+ "Requirement already satisfied: safehttpx<0.2.0,>=0.1.6 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.1.6)\n",
+ "Requirement already satisfied: semantic-version~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (2.10.0)\n",
+ "Requirement already satisfied: tomlkit<0.14.0,>=0.12.0 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.13.3)\n",
+ "Requirement already satisfied: typer<1.0,>=0.12 in /usr/local/lib/python3.10/dist-packages (from gradio->-r requirements-gcu.txt (line 21)) (0.19.2)\n",
+ "Requirement already satisfied: websockets<16.0,>=10.0 in /usr/local/lib/python3.10/dist-packages (from gradio-client==1.8.0->gradio->-r requirements-gcu.txt (line 21)) (15.0.1)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio->-r requirements-gcu.txt (line 21)) (2.9.0.post0)\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio->-r requirements-gcu.txt (line 21)) (2025.2)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio->-r requirements-gcu.txt (line 21)) (2025.2)\n",
+ "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio->-r requirements-gcu.txt (line 21)) (1.5.4)\n",
+ "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio->-r requirements-gcu.txt (line 21)) (13.9.4)\n",
+ "Collecting bce-python-sdk (from visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading bce_python_sdk-0.9.71-py3-none-any.whl (417 kB)\n",
+ "Collecting flask>=1.1.1 (from visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading flask-3.1.3-py3-none-any.whl (103 kB)\n",
+ "Collecting Flask-Babel>=3.0.0 (from visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading flask_babel-4.0.0-py3-none-any.whl (9.6 kB)\n",
+ "Collecting matplotlib (from visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading matplotlib-3.10.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.8 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.8/8.8 MB\u001b[0m \u001b[31m36.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hCollecting rarfile (from visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading rarfile-4.2-py3-none-any.whl (29 kB)\n",
+ "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from visualdl->-r requirements-gcu.txt (line 23)) (7.1.0)\n",
+ "Collecting vcs-versioning>=1.0.0.dev0 (from setuptools-scm>=8->-r requirements-gcu.txt (line 24))\n",
+ " Using cached vcs_versioning-1.1.1-py3-none-any.whl (79 kB)\n",
+ "Requirement already satisfied: decorator<6.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy->-r requirements-gcu.txt (line 27)) (5.1.1)\n",
+ "Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy->-r requirements-gcu.txt (line 27)) (2.37.0)\n",
+ "Requirement already satisfied: imageio_ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy->-r requirements-gcu.txt (line 27)) (0.6.0)\n",
+ "Collecting proglog<=1.0.0 (from moviepy->-r requirements-gcu.txt (line 27))\n",
+ " Downloading proglog-0.1.12-py3-none-any.whl (6.3 kB)\n",
+ "Requirement already satisfied: python-dotenv>=0.10 in /usr/local/lib/python3.10/dist-packages (from moviepy->-r requirements-gcu.txt (line 27)) (1.1.1)\n",
+ "Requirement already satisfied: urllib3>=1.26 in /usr/local/lib/python3.10/dist-packages (from modelscope->-r requirements-gcu.txt (line 32)) (2.0.7)\n",
+ "Collecting importlib-metadata<8.8.0,>=6.0 (from opentelemetry-api>=1.24.0->-r requirements-gcu.txt (line 34))\n",
+ " Downloading importlib_metadata-8.7.1-py3-none-any.whl (27 kB)\n",
+ "Collecting zipp>=3.20 (from importlib-metadata<8.8.0,>=6.0->opentelemetry-api>=1.24.0->-r requirements-gcu.txt (line 34))\n",
+ " Downloading zipp-3.23.1-py3-none-any.whl (10 kB)\n",
+ "Collecting opentelemetry-semantic-conventions==0.62b1 (from opentelemetry-sdk>=1.24.0->-r requirements-gcu.txt (line 35))\n",
+ " Downloading opentelemetry_semantic_conventions-0.62b1-py3-none-any.whl (231 kB)\n",
+ "Collecting opentelemetry-instrumentation==0.62b1 (from opentelemetry-instrumentation-redis->-r requirements-gcu.txt (line 36))\n",
+ " Downloading opentelemetry_instrumentation-0.62b1-py3-none-any.whl (34 kB)\n",
+ "Requirement already satisfied: wrapt>=1.12.1 in /usr/local/lib/python3.10/dist-packages (from opentelemetry-instrumentation-redis->-r requirements-gcu.txt (line 36)) (1.16.0)\n",
+ "Collecting opentelemetry-instrumentation-dbapi==0.62b1 (from opentelemetry-instrumentation-mysql->-r requirements-gcu.txt (line 37))\n",
+ " Downloading opentelemetry_instrumentation_dbapi-0.62b1-py3-none-any.whl (14 kB)\n",
+ "Collecting opentelemetry-exporter-otlp-proto-grpc==1.41.1 (from opentelemetry-exporter-otlp->-r requirements-gcu.txt (line 39))\n",
+ " Downloading opentelemetry_exporter_otlp_proto_grpc-1.41.1-py3-none-any.whl (20 kB)\n",
+ "Collecting opentelemetry-exporter-otlp-proto-http==1.41.1 (from opentelemetry-exporter-otlp->-r requirements-gcu.txt (line 39))\n",
+ " Downloading opentelemetry_exporter_otlp_proto_http-1.41.1-py3-none-any.whl (22 kB)\n",
+ "Requirement already satisfied: googleapis-common-protos~=1.57 in /usr/local/lib/python3.10/dist-packages (from opentelemetry-exporter-otlp-proto-grpc==1.41.1->opentelemetry-exporter-otlp->-r requirements-gcu.txt (line 39)) (1.70.0)\n",
+ "Collecting opentelemetry-exporter-otlp-proto-common==1.41.1 (from opentelemetry-exporter-otlp-proto-grpc==1.41.1->opentelemetry-exporter-otlp->-r requirements-gcu.txt (line 39))\n",
+ " Downloading opentelemetry_exporter_otlp_proto_common-1.41.1-py3-none-any.whl (18 kB)\n",
+ "Collecting opentelemetry-proto==1.41.1 (from opentelemetry-exporter-otlp-proto-grpc==1.41.1->opentelemetry-exporter-otlp->-r requirements-gcu.txt (line 39))\n",
+ " Downloading opentelemetry_proto-1.41.1-py3-none-any.whl (72 kB)\n",
+ "Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (3.4.3)\n",
+ "Collecting opentelemetry-instrumentation-asgi==0.62b1 (from opentelemetry-instrumentation-fastapi->-r requirements-gcu.txt (line 40))\n",
+ " Downloading opentelemetry_instrumentation_asgi-0.62b1-py3-none-any.whl (17 kB)\n",
+ "Collecting opentelemetry-util-http==0.62b1 (from opentelemetry-instrumentation-fastapi->-r requirements-gcu.txt (line 40))\n",
+ " Downloading opentelemetry_util_http-0.62b1-py3-none-any.whl (9.3 kB)\n",
+ "Collecting asgiref~=3.0 (from opentelemetry-instrumentation-asgi==0.62b1->opentelemetry-instrumentation-fastapi->-r requirements-gcu.txt (line 40))\n",
+ " Downloading asgiref-3.11.1-py3-none-any.whl (24 kB)\n",
+ "Collecting prettytable (from aistudio_sdk->-r requirements-gcu.txt (line 46))\n",
+ " Downloading prettytable-3.17.0-py3-none-any.whl (34 kB)\n",
+ "Collecting mooncake-transfer-engine<0.4.0,>=0.3.7 (from p2pstore->-r requirements-gcu.txt (line 47))\n",
+ " Downloading mooncake_transfer_engine-0.3.10.post2-cp310-cp310-manylinux_2_35_x86_64.whl (41.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.1/41.1 MB\u001b[0m \u001b[31m36.1 MB/s\u001b[0m \u001b[33m0:00:01\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (3.13.0)\n",
+ "Collecting apache-tvm-ffi<0.2,>=0.1.3 (from flashinfer-python-paddle->-r requirements-gcu.txt (line 49))\n",
+ " Downloading apache_tvm_ffi-0.1.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.8 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m102.1 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: ninja in /usr/local/lib/python3.10/dist-packages (from flashinfer-python-paddle->-r requirements-gcu.txt (line 49)) (1.13.0)\n",
+ "Collecting nvidia-cudnn-frontend>=1.13.0 (from flashinfer-python-paddle->-r requirements-gcu.txt (line 49))\n",
+ " Downloading nvidia_cudnn_frontend-1.23.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m105.2 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting onnx (from -r requirements-gcu.txt (line 58))\n",
+ " Downloading onnx-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m16.0/16.0 MB\u001b[0m \u001b[31m45.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hCollecting onnxoptimizer==0.3.13 (from paddle2onnx->-r requirements-gcu.txt (line 55))\n",
+ " Downloading onnxoptimizer-0.3.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (678 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m678.1/678.1 kB\u001b[0m \u001b[31m73.1 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting polygraphy>=0.49.20 (from paddle2onnx->-r requirements-gcu.txt (line 55))\n",
+ " Downloading polygraphy-0.49.26-py2.py3-none-any.whl (372 kB)\n",
+ "Collecting cuda-bindings~=13.2.0 (from cuda-python>=11.8.0->nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading cuda_bindings-13.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m33.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting cuda-pathfinder~=1.1 (from cuda-python>=11.8.0->nvidia-cutlass==4.2.0.0->flash_mask @ https://paddle-qa.bj.bcebos.com/ernie/flash_mask-4.0.post20260128-py3-none-any.whl->-r requirements-gcu.txt (line 50))\n",
+ " Downloading cuda_pathfinder-1.5.4-py3-none-any.whl (51 kB)\n",
+ "Requirement already satisfied: pyarrow>=21.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets>=3.0.0->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (21.0.0)\n",
+ "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from datasets>=3.0.0->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (3.6.0)\n",
+ "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (2.6.1)\n",
+ "Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (1.4.0)\n",
+ "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (25.4.0)\n",
+ "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (1.8.0)\n",
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (6.7.0)\n",
+ "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (0.4.1)\n",
+ "Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->mooncake-transfer-engine<0.4.0,>=0.3.7->p2pstore->-r requirements-gcu.txt (line 47)) (1.22.0)\n",
+ "Requirement already satisfied: blinker>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from flask>=1.1.1->visualdl->-r requirements-gcu.txt (line 23)) (1.9.0)\n",
+ "Collecting itsdangerous>=2.2.0 (from flask>=1.1.1->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)\n",
+ "Collecting werkzeug>=3.1.0 (from flask>=1.1.1->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading werkzeug-3.1.8-py3-none-any.whl (226 kB)\n",
+ "Requirement already satisfied: Babel>=2.12 in /usr/local/lib/python3.10/dist-packages (from Flask-Babel>=3.0.0->visualdl->-r requirements-gcu.txt (line 23)) (2.17.0)\n",
+ "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements-gcu.txt (line 21)) (3.0.0)\n",
+ "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements-gcu.txt (line 21)) (2.19.2)\n",
+ "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements-gcu.txt (line 21)) (0.1.2)\n",
+ "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (1.5.2)\n",
+ "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (3.6.0)\n",
+ "INFO: pip is looking at multiple versions of transformers to determine which version is compatible with other requirements. This could take a while.\n",
+ "Collecting transformers>=4.55.1 (from paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading transformers-5.7.0-py3-none-any.whl (10.5 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.5/10.5 MB\u001b[0m \u001b[31m38.5 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.6.2-py3-none-any.whl (10.4 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.4/10.4 MB\u001b[0m \u001b[31m35.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.6.1-py3-none-any.whl (10.4 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.4/10.4 MB\u001b[0m \u001b[31m37.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.6.0-py3-none-any.whl (10.4 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.4/10.4 MB\u001b[0m \u001b[31m45.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0mm0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.5.4-py3-none-any.whl (10.2 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.2/10.2 MB\u001b[0m \u001b[31m36.2 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.5.3-py3-none-any.whl (10.2 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.2/10.2 MB\u001b[0m \u001b[31m35.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.5.2-py3-none-any.whl (10.2 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.2/10.2 MB\u001b[0m \u001b[31m30.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hINFO: pip is still looking at multiple versions of transformers to determine which version is compatible with other requirements. This could take a while.\n",
+ " Downloading transformers-5.5.1-py3-none-any.whl (10.2 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.2/10.2 MB\u001b[0m \u001b[31m34.4 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.5.0-py3-none-any.whl (10.2 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.2/10.2 MB\u001b[0m \u001b[31m32.4 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.4.0-py3-none-any.whl (10.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.1/10.1 MB\u001b[0m \u001b[31m39.8 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.3.0-py3-none-any.whl (10.7 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.7/10.7 MB\u001b[0m \u001b[31m36.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.2.0-py3-none-any.whl (10.4 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.4/10.4 MB\u001b[0m \u001b[31m19.4 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hINFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.\n",
+ " Downloading transformers-5.1.0-py3-none-any.whl (10.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.3/10.3 MB\u001b[0m \u001b[31m37.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-5.0.0-py3-none-any.whl (10.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.1/10.1 MB\u001b[0m \u001b[31m31.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.57.6-py3-none-any.whl (12.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m49.8 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.57.5-py3-none-any.whl (12.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m41.6 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.57.4-py3-none-any.whl (12.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m39.9 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.57.3-py3-none-any.whl (12.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m40.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.57.2-py3-none-any.whl (12.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m38.3 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.57.1-py3-none-any.whl (12.0 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m44.6 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.56.2-py3-none-any.whl (11.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.6/11.6 MB\u001b[0m \u001b[31m40.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.56.1-py3-none-any.whl (11.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.6/11.6 MB\u001b[0m \u001b[31m43.9 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.56.0-py3-none-any.whl (11.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.6/11.6 MB\u001b[0m \u001b[31m47.9 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25h Downloading transformers-4.55.4-py3-none-any.whl (11.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.3/11.3 MB\u001b[0m \u001b[31m40.2 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hCollecting distlib<1,>=0.3.7 (from virtualenv>=20.10.0->pre-commit->-r requirements-gcu.txt (line 2))\n",
+ " Downloading distlib-0.4.0-py2.py3-none-any.whl (469 kB)\n",
+ "Collecting filelock (from huggingface_hub>=0.19.2->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading filelock-3.29.0-py3-none-any.whl (39 kB)\n",
+ "Collecting python-discovery>=1.2.2 (from virtualenv>=20.10.0->pre-commit->-r requirements-gcu.txt (line 2))\n",
+ " Downloading python_discovery-1.3.0-py3-none-any.whl (33 kB)\n",
+ "Requirement already satisfied: pycryptodome>=3.8.0 in /usr/local/lib/python3.10/dist-packages (from bce-python-sdk->visualdl->-r requirements-gcu.txt (line 23)) (3.23.0)\n",
+ "Requirement already satisfied: future>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from bce-python-sdk->visualdl->-r requirements-gcu.txt (line 23)) (1.0.0)\n",
+ "Collecting crc32c>=2.2.post0 (from bce-python-sdk->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading crc32c-2.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (79 kB)\n",
+ "Collecting pycryptodomex>=3.8 (from blobfile->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13))\n",
+ " Downloading pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.3/2.3 MB\u001b[0m \u001b[31m89.4 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: lxml>=4.9 in /usr/local/lib/python3.10/dist-packages (from blobfile->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (6.0.2)\n",
+ "Collecting contourpy>=1.0.1 (from matplotlib->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading contourpy-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (325 kB)\n",
+ "Collecting cycler>=0.10 (from matplotlib->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)\n",
+ "Collecting fonttools>=4.22.0 (from matplotlib->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading fonttools-4.62.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.9 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.9/4.9 MB\u001b[0m \u001b[31m45.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading kiwisolver-1.5.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m99.5 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting pyparsing>=3 (from matplotlib->visualdl->-r requirements-gcu.txt (line 23))\n",
+ " Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB)\n",
+ "Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.10/dist-packages (from omegaconf->paddleformers @ https://paddle-qa.bj.bcebos.com/ernie/paddleformers-0.4.0.post20251222-py3-none-any.whl->-r requirements-gcu.txt (line 13)) (4.9.3)\n",
+ "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prettytable->aistudio_sdk->-r requirements-gcu.txt (line 46)) (0.2.14)\n",
+ "Building wheels for collected packages: zmq, etcd3, seqeval, GPUtil\n",
+ " Building wheel for zmq (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25h Created wheel for zmq: filename=zmq-0.0.0-py3-none-any.whl size=1087 sha256=b647f77aa4df6614f98e2913530e785140befd09e3a797a751187dd7e9fb3788\n",
+ " Stored in directory: /root/.cache/pip/wheels/a0/9b/71/f213dbdd687f02a09ce56ff361d70bf53a52c40ea1dec83a7e\n",
+ " Building wheel for etcd3 (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25h Created wheel for etcd3: filename=etcd3-0.12.0-py2.py3-none-any.whl size=42976 sha256=6582e16705c965bbe426078f17b35cf0700d5b6aeb8d69eb6528e767bddc89cf\n",
+ " Stored in directory: /root/.cache/pip/wheels/af/6a/31/b3873f849acccce0fa4237ad9bbb7bf3162c97a6b2c0c2522e\n",
+ " Building wheel for seqeval (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25h Created wheel for seqeval: filename=seqeval-1.2.2-py3-none-any.whl size=16252 sha256=14b84e66a0c67943f61611a94823e1e86f5cda695bd9f4655c51e8f84997f32d\n",
+ " Stored in directory: /root/.cache/pip/wheels/ad/55/48/11993919789e3db76fca2c12510d879a640dd8dc6d43b94d4e\n",
+ " Building wheel for GPUtil (pyproject.toml) ... \u001b[?25ldone\n",
+ "\u001b[?25h Created wheel for GPUtil: filename=gputil-1.4.0-py3-none-any.whl size=7437 sha256=87d6eb99f57bb20e50c27a99175ba76765071ad1fb28148307cb7384a456fc77\n",
+ " Stored in directory: /root/.cache/pip/wheels/05/b0/4c/05b15fd60dd684e9919b665fa244c5c740f92e0893dcba5685\n",
+ "Successfully built zmq etcd3 seqeval GPUtil\n",
+ "\u001b[33mWARNING: Error parsing dependencies of mlnx-tools: Invalid version: '-5.2.0-'\u001b[0m\u001b[33m\n",
+ "\u001b[0mInstalling collected packages: xlwt, use_triton_in_paddle, GPUtil, distlib, arctic_inference, zmq, zipp, yapf, werkzeug, vcs-versioning, uvicorn, treelib, tenacity, setuptools, safetensors, rarfile, pyparsing, pynvml, pyflakes, pycryptodomex, pybind11-global, pybind11, proglog, prettytable, polygraphy, opentelemetry-util-http, opentelemetry-proto, onnx, nvidia-cudnn-frontend, nodeenv, mccabe, kiwisolver, itsdangerous, identify, gunicorn, fonttools, filelock, dill, decord, cycler, cuda-pathfinder, crc32c, contourpy, colorlog, colorama, cfgv, asgiref, apache-tvm-ffi, aiozmq, triton, tool_helpers, setuptools-scm, python-discovery, pydot, paddlefsl, opentelemetry-exporter-otlp-proto-common, onnxoptimizer, multiprocess, moviepy, matplotlib, importlib-metadata, flask, flake8, fast_dataindex, etcd3, cuda-bindings, blobfile, bce-python-sdk, virtualenv, seqeval, paddle2onnx, opentelemetry-api, Flask-Babel, cuda-python, aistudio_sdk, visualdl, transformers, pre-commit, opentelemetry-semantic-conventions, nvidia-cutlass-dsl, nvidia-cutlass, mooncake-transfer-engine, p2pstore, opentelemetry-sdk, opentelemetry-instrumentation, flashinfer-python-paddle, flash_mask, paddleformers, opentelemetry-instrumentation-redis, opentelemetry-instrumentation-logging, opentelemetry-instrumentation-dbapi, opentelemetry-instrumentation-asgi, opentelemetry-exporter-otlp-proto-http, opentelemetry-exporter-otlp-proto-grpc, opentelemetry-distro, opentelemetry-instrumentation-mysql, opentelemetry-instrumentation-fastapi, opentelemetry-exporter-otlp\n",
+ "\u001b[2K Attempting uninstall: zipp━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 3/98\u001b[0m [distlib]\n",
+ "\u001b[2K Found existing installation: zipp 1.0.0━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 3/98\u001b[0m [distlib]\n",
+ "\u001b[2K Uninstalling zipp-1.0.0:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 3/98\u001b[0m [distlib]\n",
+ "\u001b[2K Successfully uninstalled zipp-1.0.0━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 3/98\u001b[0m [distlib]\n",
+ "\u001b[2K Attempting uninstall: werkzeug━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 7/98\u001b[0m [yapf]\n",
+ "\u001b[2K Found existing installation: Werkzeug 3.0.3━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 7/98\u001b[0m [yapf]\n",
+ "\u001b[2K Uninstalling Werkzeug-3.0.3:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 7/98\u001b[0m [yapf]\n",
+ "\u001b[2K Successfully uninstalled Werkzeug-3.0.3━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 7/98\u001b[0m [yapf]\n",
+ "\u001b[2K Attempting uninstall: uvicorn━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 9/98\u001b[0m [vcs-versioning]\n",
+ "\u001b[2K Found existing installation: uvicorn 0.37.0━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 9/98\u001b[0m [vcs-versioning]\n",
+ "\u001b[2K Uninstalling uvicorn-0.37.0:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 9/98\u001b[0m [vcs-versioning]\n",
+ "\u001b[2K Successfully uninstalled uvicorn-0.37.0━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 9/98\u001b[0m [vcs-versioning]\n",
+ "\u001b[2K Attempting uninstall: setuptools━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m 9/98\u001b[0m [vcs-versioning]\n",
+ "\u001b[2K Found existing installation: setuptools 82.0.1━━━━━━━━━━━━\u001b[0m \u001b[32m 9/98\u001b[0m [vcs-versioning]\n",
+ "\u001b[2K Uninstalling setuptools-82.0.1:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Successfully uninstalled setuptools-82.0.1━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Attempting uninstall: safetensors━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Found existing installation: safetensors 0.6.2━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Uninstalling safetensors-0.6.2:━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Successfully uninstalled safetensors-0.6.2━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Attempting uninstall: pyparsing━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Found existing installation: pyparsing 2.4.7━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Uninstalling pyparsing-2.4.7:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Successfully uninstalled pyparsing-2.4.7━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13/98\u001b[0m [setuptools]\n",
+ "\u001b[2K Attempting uninstall: onnx[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m24/98\u001b[0m [polygraphy]ex]\n",
+ "\u001b[2K Found existing installation: onnx 1.10.1━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m24/98\u001b[0m [polygraphy]\n",
+ "\u001b[2K Uninstalling onnx-1.10.1:\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m27/98\u001b[0m [onnx]y]\n",
+ "\u001b[2K Successfully uninstalled onnx-1.10.1━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m27/98\u001b[0m [onnx]\n",
+ "\u001b[2K Attempting uninstall: filelock\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m35/98\u001b[0m [fonttools]]n-frontend]\n",
+ "\u001b[2K Found existing installation: filelock 3.20.0━━━━━━━━━━━━━━\u001b[0m \u001b[32m35/98\u001b[0m [fonttools]\n",
+ "\u001b[2K Uninstalling filelock-3.20.0:[90m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m35/98\u001b[0m [fonttools]\n",
+ "\u001b[2K Successfully uninstalled filelock-3.20.0━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m35/98\u001b[0m [fonttools]\n",
+ "\u001b[2K Attempting uninstall: dill91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m36/98\u001b[0m [filelock]\n",
+ "\u001b[2K Found existing installation: dill 0.4.0━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m36/98\u001b[0m [filelock]\n",
+ "\u001b[2K Uninstalling dill-0.4.0:\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m36/98\u001b[0m [filelock]\n",
+ "\u001b[2K Successfully uninstalled dill-0.4.0━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m36/98\u001b[0m [filelock]\n",
+ "\u001b[2K Attempting uninstall: tritonm\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m47/98\u001b[0m [apache-tvm-ffi]\n",
+ "\u001b[2K Found existing installation: triton 3.2.0━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m47/98\u001b[0m [apache-tvm-ffi]\n",
+ "\u001b[2K Uninstalling triton-3.2.0:0m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m47/98\u001b[0m [apache-tvm-ffi]\n",
+ "\u001b[2K Successfully uninstalled triton-3.2.0[90m━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49/98\u001b[0m [triton]ffi]\n",
+ "\u001b[2K Attempting uninstall: multiprocess90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54/98\u001b[0m [paddlefsl]\n",
+ "\u001b[2K Found existing installation: multiprocess 0.70.16━━━━━━━━━\u001b[0m \u001b[32m54/98\u001b[0m [paddlefsl]\n",
+ "\u001b[2K Uninstalling multiprocess-0.70.16:0m\u001b[90m━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54/98\u001b[0m [paddlefsl]\n",
+ "\u001b[2K Successfully uninstalled multiprocess-0.70.16━━━━━━━━━━━\u001b[0m \u001b[32m54/98\u001b[0m [paddlefsl]\n",
+ "\u001b[2K Attempting uninstall: importlib-metadata\u001b[0m\u001b[90m━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59/98\u001b[0m [matplotlib]\n",
+ "\u001b[2K Found existing installation: importlib-metadata 4.6.4━━━━━\u001b[0m \u001b[32m59/98\u001b[0m [matplotlib]\n",
+ "\u001b[2K Uninstalling importlib-metadata-4.6.4:\u001b[90m━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59/98\u001b[0m [matplotlib]\n",
+ "\u001b[2K Successfully uninstalled importlib-metadata-4.6.4━━━━━━━━━━━\u001b[0m \u001b[32m60/98\u001b[0m [importlib-metadata]\n",
+ "\u001b[2K Attempting uninstall: transformers━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m75/98\u001b[0m [visualdl]nx]dk]\n",
+ "\u001b[2K Found existing installation: transformers 4.53.3m━━━━━━━━━\u001b[0m \u001b[32m75/98\u001b[0m [visualdl]\n",
+ "\u001b[2K Uninstalling transformers-4.53.3:━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━\u001b[0m \u001b[32m76/98\u001b[0m [transformers]\n",
+ "\u001b[2K Successfully uninstalled transformers-4.53.3[0m\u001b[90m━━━━━━━━\u001b[0m \u001b[32m76/98\u001b[0m [transformers]\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98/98\u001b[0m [opentelemetry-exporter-otlp]ers]hon-paddle]\n",
+ "\u001b[1A\u001b[2K\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+ "nemo-text-processing 1.0.2 requires setuptools>=65.5.1, but you have setuptools 62.3.0 which is incompatible.\n",
+ "tensorboard 2.3.0 requires google-auth<2,>=1.6.3, but you have google-auth 2.41.1 which is incompatible.\n",
+ "thinc 8.3.6 requires numpy<3.0.0,>=2.0.0, but you have numpy 1.26.4 which is incompatible.\n",
+ "triton-gcu 0.9.20250624.1 requires triton==3.2.0; platform_machine != \"aarch64\", but you have triton 3.3.0 which is incompatible.\n",
+ "vllm-gcu 0.8.0+3.4.20250704 requires transformers==4.48.2, but you have transformers 4.55.4 which is incompatible.\n",
+ "xinference 1.7.0.post1+gcu20250807.0.g70546266.dirty requires click<8.2.0, but you have click 8.3.0 which is incompatible.\u001b[0m\u001b[31m\n",
+ "\u001b[0mSuccessfully installed Flask-Babel-4.0.0 GPUtil-1.4.0 aiozmq-1.0.0 aistudio_sdk-0.3.8 apache-tvm-ffi-0.1.11 arctic_inference-0.1.3 asgiref-3.11.1 bce-python-sdk-0.9.71 blobfile-3.2.0 cfgv-3.5.0 colorama-0.4.6 colorlog-6.10.1 contourpy-1.3.2 crc32c-2.8 cuda-bindings-13.2.0 cuda-pathfinder-1.5.4 cuda-python-13.2.0 cycler-0.12.1 decord-0.6.0 dill-0.3.4 distlib-0.4.0 etcd3-0.12.0 fast_dataindex-0.1.2 filelock-3.29.0 flake8-7.3.0 flash_mask-4.0 flashinfer-python-paddle-0.4.1.1 flask-3.1.3 fonttools-4.62.1 gunicorn-25.0.3 identify-2.6.19 importlib-metadata-8.7.1 itsdangerous-2.2.0 kiwisolver-1.5.0 matplotlib-3.10.9 mccabe-0.7.0 mooncake-transfer-engine-0.3.10.post2 moviepy-2.2.1 multiprocess-0.70.12.2 nodeenv-1.10.0 nvidia-cudnn-frontend-1.23.0 nvidia-cutlass-4.2.0.0 nvidia-cutlass-dsl-4.3.0 onnx-1.17.0 onnxoptimizer-0.3.13 opentelemetry-api-1.41.1 opentelemetry-distro-0.62b1 opentelemetry-exporter-otlp-1.41.1 opentelemetry-exporter-otlp-proto-common-1.41.1 opentelemetry-exporter-otlp-proto-grpc-1.41.1 opentelemetry-exporter-otlp-proto-http-1.41.1 opentelemetry-instrumentation-0.62b1 opentelemetry-instrumentation-asgi-0.62b1 opentelemetry-instrumentation-dbapi-0.62b1 opentelemetry-instrumentation-fastapi-0.62b1 opentelemetry-instrumentation-logging-0.62b1 opentelemetry-instrumentation-mysql-0.62b1 opentelemetry-instrumentation-redis-0.62b1 opentelemetry-proto-1.41.1 opentelemetry-sdk-1.41.1 opentelemetry-semantic-conventions-0.62b1 opentelemetry-util-http-0.62b1 p2pstore-0.1.15 paddle2onnx-2.1.0 paddleformers-0.4.0.post20251222 paddlefsl-1.1.0 polygraphy-0.49.26 pre-commit-4.6.0 prettytable-3.17.0 proglog-0.1.12 pybind11-3.0.4 pybind11-global-3.0.4 pycryptodomex-3.23.0 pydot-4.0.1 pyflakes-3.4.0 pynvml-13.0.1 pyparsing-3.3.2 python-discovery-1.3.0 rarfile-4.2 safetensors-0.7.0 seqeval-1.2.2 setuptools-62.3.0 setuptools-scm-10.0.5 tenacity-9.1.4 tool_helpers-0.1.2 transformers-4.55.4 treelib-1.8.0 triton-3.3.0 use_triton_in_paddle-0.1.0 uvicorn-0.46.0 vcs-versioning-1.1.1 virtualenv-21.3.1 visualdl-2.5.3 werkzeug-3.1.8 xlwt-1.3.0 yapf-0.43.0 zipp-3.23.1 zmq-0.0.0\n",
+ "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n",
+ "\u001b[0mLooking in indexes: https://www.paddlepaddle.org.cn/packages/stable/gcu/, https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplels\n",
+ "Collecting fastdeploy\n",
+ " Using cached fastdeploy-2.0.0a0-py3-none-any.whl (3.4 MB)\n",
+ "Requirement already satisfied: setuptools<80.0,>=62.3.0 in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (62.3.0)\n",
+ "Requirement already satisfied: pre-commit in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (4.6.0)\n",
+ "Requirement already satisfied: yapf in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.43.0)\n",
+ "Requirement already satisfied: flake8 in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (7.3.0)\n",
+ "Requirement already satisfied: ruamel.yaml in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.18.15)\n",
+ "Requirement already satisfied: zmq in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.0.0)\n",
+ "Requirement already satisfied: aiozmq in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (1.0.0)\n",
+ "Requirement already satisfied: openai in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (2.2.0)\n",
+ "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (4.67.1)\n",
+ "Requirement already satisfied: pynvml in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (13.0.1)\n",
+ "Requirement already satisfied: uvicorn in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.46.0)\n",
+ "Requirement already satisfied: fastapi in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.118.2)\n",
+ "Collecting paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl (from fastdeploy)\n",
+ " Downloading paddleformers-0.0.0.post20250620-py3-none-any.whl (1.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.1/1.1 MB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: redis in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (6.4.0)\n",
+ "Requirement already satisfied: etcd3 in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.12.0)\n",
+ "Requirement already satisfied: httpx in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.28.1)\n",
+ "Requirement already satisfied: tool-helpers in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.1.2)\n",
+ "Requirement already satisfied: cupy-cuda12x in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (13.6.0)\n",
+ "Requirement already satisfied: pybind11[global] in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (3.0.4)\n",
+ "Requirement already satisfied: tabulate in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.9.0)\n",
+ "Requirement already satisfied: gradio in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (5.22.0)\n",
+ "Requirement already satisfied: xlwt in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (1.3.0)\n",
+ "Requirement already satisfied: visualdl in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (2.5.3)\n",
+ "Requirement already satisfied: setuptools-scm>=8 in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (10.0.5)\n",
+ "Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.23.1)\n",
+ "Requirement already satisfied: decord in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (0.6.0)\n",
+ "Requirement already satisfied: moviepy in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (2.2.1)\n",
+ "Requirement already satisfied: triton==3.3 in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (3.3.0)\n",
+ "Requirement already satisfied: crcmod in /usr/local/lib/python3.10/dist-packages (from fastdeploy) (1.7)\n",
+ "Requirement already satisfied: jieba in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.42.1)\n",
+ "Requirement already satisfied: blobfile in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.2.0)\n",
+ "Requirement already satisfied: colorlog in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (6.10.1)\n",
+ "Requirement already satisfied: colorama in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.4.6)\n",
+ "Requirement already satisfied: seqeval in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.2.2)\n",
+ "Requirement already satisfied: dill<0.3.5 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.3.4)\n",
+ "Requirement already satisfied: multiprocess<=0.70.12.2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.70.12.2)\n",
+ "Requirement already satisfied: datasets>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (4.1.1)\n",
+ "Requirement already satisfied: paddlefsl in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.1.0)\n",
+ "Requirement already satisfied: sentencepiece in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.2.1)\n",
+ "Requirement already satisfied: huggingface_hub>=0.19.2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.35.3)\n",
+ "Requirement already satisfied: onnx>=1.10.0 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.17.0)\n",
+ "Requirement already satisfied: protobuf>=3.20.2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (6.32.1)\n",
+ "Requirement already satisfied: paddle2onnx in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.1.0)\n",
+ "Requirement already satisfied: Flask-Babel in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (4.0.0)\n",
+ "Requirement already satisfied: typer in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.19.2)\n",
+ "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (13.9.4)\n",
+ "Requirement already satisfied: safetensors in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.7.0)\n",
+ "Requirement already satisfied: fast_dataindex>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.1.2)\n",
+ "Requirement already satisfied: aistudio-sdk>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.3.8)\n",
+ "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.1.6)\n",
+ "Requirement already satisfied: regex in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2025.9.18)\n",
+ "Requirement already satisfied: numpy<=1.26.4 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.26.4)\n",
+ "Requirement already satisfied: tiktoken in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.12.0)\n",
+ "Requirement already satisfied: ml_dtypes in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.5.1)\n",
+ "Requirement already satisfied: tokenizers<0.22,>=0.21 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.21.4)\n",
+ "Requirement already satisfied: omegaconf in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.3.0)\n",
+ "Requirement already satisfied: einops>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.8.1)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.29.0)\n",
+ "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2024.6.1)\n",
+ "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (25.0)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (6.0.1)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.32.5)\n",
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (4.14.1)\n",
+ "Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.1.10)\n",
+ "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (7.1.0)\n",
+ "Requirement already satisfied: bce-python-sdk in /usr/local/lib/python3.10/dist-packages (from aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.9.71)\n",
+ "Requirement already satisfied: prettytable in /usr/local/lib/python3.10/dist-packages (from aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.17.0)\n",
+ "Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (8.3.0)\n",
+ "Requirement already satisfied: pyarrow>=21.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (21.0.0)\n",
+ "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.2.2)\n",
+ "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.6.0)\n",
+ "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.10/dist-packages (from fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.13.0)\n",
+ "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.6.1)\n",
+ "Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.4.0)\n",
+ "Requirement already satisfied: async-timeout<6.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (5.0.1)\n",
+ "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (25.4.0)\n",
+ "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.8.0)\n",
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (6.7.0)\n",
+ "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.4.1)\n",
+ "Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.22.0)\n",
+ "Requirement already satisfied: idna>=2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.17.0->aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.8)\n",
+ "Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.4.3)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.0.7)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface_hub>=0.19.2->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2025.7.14)\n",
+ "Requirement already satisfied: vcs-versioning>=1.0.0.dev0 in /usr/local/lib/python3.10/dist-packages (from setuptools-scm>=8->fastdeploy) (1.1.1)\n",
+ "Requirement already satisfied: tomli>=1 in /usr/local/lib/python3.10/dist-packages (from setuptools-scm>=8->fastdeploy) (2.3.0)\n",
+ "Requirement already satisfied: pyzmq!=17.1.2,>=13.1 in /usr/local/lib/python3.10/dist-packages (from aiozmq->fastdeploy) (27.1.0)\n",
+ "Requirement already satisfied: pycryptodome>=3.8.0 in /usr/local/lib/python3.10/dist-packages (from bce-python-sdk->aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.23.0)\n",
+ "Requirement already satisfied: future>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from bce-python-sdk->aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.0.0)\n",
+ "Requirement already satisfied: six>=1.4.0 in /usr/lib/python3/dist-packages (from bce-python-sdk->aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.16.0)\n",
+ "Requirement already satisfied: crc32c>=2.2.post0 in /usr/local/lib/python3.10/dist-packages (from bce-python-sdk->aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.8)\n",
+ "Requirement already satisfied: pycryptodomex>=3.8 in /usr/local/lib/python3.10/dist-packages (from blobfile->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.23.0)\n",
+ "Requirement already satisfied: lxml>=4.9 in /usr/local/lib/python3.10/dist-packages (from blobfile->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (6.0.2)\n",
+ "Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x->fastdeploy) (0.8.3)\n",
+ "Requirement already satisfied: grpcio>=1.27.1 in /usr/local/lib/python3.10/dist-packages (from etcd3->fastdeploy) (1.64.1)\n",
+ "Requirement already satisfied: tenacity>=6.1.0 in /usr/local/lib/python3.10/dist-packages (from etcd3->fastdeploy) (9.1.4)\n",
+ "Requirement already satisfied: starlette<0.49.0,>=0.40.0 in /usr/local/lib/python3.10/dist-packages (from fastapi->fastdeploy) (0.48.0)\n",
+ "Requirement already satisfied: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from fastapi->fastdeploy) (2.12.0)\n",
+ "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi->fastdeploy) (0.7.0)\n",
+ "Requirement already satisfied: pydantic-core==2.41.1 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi->fastdeploy) (2.41.1)\n",
+ "Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi->fastdeploy) (0.4.2)\n",
+ "Requirement already satisfied: anyio<5,>=3.6.2 in /usr/local/lib/python3.10/dist-packages (from starlette<0.49.0,>=0.40.0->fastapi->fastdeploy) (4.11.0)\n",
+ "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.6.2->starlette<0.49.0,>=0.40.0->fastapi->fastdeploy) (1.3.0)\n",
+ "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.6.2->starlette<0.49.0,>=0.40.0->fastapi->fastdeploy) (1.3.1)\n",
+ "Requirement already satisfied: mccabe<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from flake8->fastdeploy) (0.7.0)\n",
+ "Requirement already satisfied: pycodestyle<2.15.0,>=2.14.0 in /usr/local/lib/python3.10/dist-packages (from flake8->fastdeploy) (2.14.0)\n",
+ "Requirement already satisfied: pyflakes<3.5.0,>=3.4.0 in /usr/local/lib/python3.10/dist-packages (from flake8->fastdeploy) (3.4.0)\n",
+ "Requirement already satisfied: Babel>=2.12 in /usr/local/lib/python3.10/dist-packages (from Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.17.0)\n",
+ "Requirement already satisfied: Flask>=2.0 in /usr/local/lib/python3.10/dist-packages (from Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.1.3)\n",
+ "Requirement already satisfied: pytz>=2022.7 in /usr/local/lib/python3.10/dist-packages (from Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2025.2)\n",
+ "Requirement already satisfied: blinker>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from Flask>=2.0->Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.9.0)\n",
+ "Requirement already satisfied: itsdangerous>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from Flask>=2.0->Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.2.0)\n",
+ "Requirement already satisfied: markupsafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from Flask>=2.0->Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.0.2)\n",
+ "Requirement already satisfied: werkzeug>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from Flask>=2.0->Flask-Babel->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.1.8)\n",
+ "Requirement already satisfied: aiofiles<24.0,>=22.0 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (23.2.1)\n",
+ "Requirement already satisfied: ffmpy in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.6.2)\n",
+ "Requirement already satisfied: gradio-client==1.8.0 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (1.8.0)\n",
+ "Requirement already satisfied: groovy~=0.1 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.1.2)\n",
+ "Requirement already satisfied: orjson~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (3.11.3)\n",
+ "Requirement already satisfied: pillow<12.0,>=8.0 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (11.3.0)\n",
+ "Requirement already satisfied: pydub in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.25.1)\n",
+ "Requirement already satisfied: python-multipart>=0.0.18 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.0.20)\n",
+ "Requirement already satisfied: ruff>=0.9.3 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.14.0)\n",
+ "Requirement already satisfied: safehttpx<0.2.0,>=0.1.6 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.1.6)\n",
+ "Requirement already satisfied: semantic-version~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (2.10.0)\n",
+ "Requirement already satisfied: tomlkit<0.14.0,>=0.12.0 in /usr/local/lib/python3.10/dist-packages (from gradio->fastdeploy) (0.13.3)\n",
+ "Requirement already satisfied: websockets<16.0,>=10.0 in /usr/local/lib/python3.10/dist-packages (from gradio-client==1.8.0->gradio->fastdeploy) (15.0.1)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.9.0.post0)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets>=2.0.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2025.2)\n",
+ "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.5.4)\n",
+ "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx->fastdeploy) (1.0.9)\n",
+ "Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx->fastdeploy) (0.16.0)\n",
+ "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.0.0)\n",
+ "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (2.19.2)\n",
+ "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.1.2)\n",
+ "Requirement already satisfied: decorator<6.0,>=4.0.2 in /usr/local/lib/python3.10/dist-packages (from moviepy->fastdeploy) (5.1.1)\n",
+ "Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.10/dist-packages (from moviepy->fastdeploy) (2.37.0)\n",
+ "Requirement already satisfied: imageio_ffmpeg>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from moviepy->fastdeploy) (0.6.0)\n",
+ "Requirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python3.10/dist-packages (from moviepy->fastdeploy) (0.1.12)\n",
+ "Requirement already satisfied: python-dotenv>=0.10 in /usr/local/lib/python3.10/dist-packages (from moviepy->fastdeploy) (1.1.1)\n",
+ "Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.10/dist-packages (from omegaconf->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (4.9.3)\n",
+ "Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai->fastdeploy) (1.7.0)\n",
+ "Requirement already satisfied: jiter<1,>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from openai->fastdeploy) (0.11.0)\n",
+ "Requirement already satisfied: onnxoptimizer==0.3.13 in /usr/local/lib/python3.10/dist-packages (from paddle2onnx->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.3.13)\n",
+ "Requirement already satisfied: polygraphy>=0.49.20 in /usr/local/lib/python3.10/dist-packages (from paddle2onnx->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.49.26)\n",
+ "Requirement already satisfied: cfgv>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from pre-commit->fastdeploy) (3.5.0)\n",
+ "Requirement already satisfied: identify>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from pre-commit->fastdeploy) (2.6.19)\n",
+ "Requirement already satisfied: nodeenv>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from pre-commit->fastdeploy) (1.10.0)\n",
+ "Requirement already satisfied: virtualenv>=20.10.0 in /usr/local/lib/python3.10/dist-packages (from pre-commit->fastdeploy) (21.3.1)\n",
+ "Requirement already satisfied: distlib<1,>=0.3.7 in /usr/local/lib/python3.10/dist-packages (from virtualenv>=20.10.0->pre-commit->fastdeploy) (0.4.0)\n",
+ "Requirement already satisfied: platformdirs<5,>=3.9.1 in /usr/local/lib/python3.10/dist-packages (from virtualenv>=20.10.0->pre-commit->fastdeploy) (4.5.0)\n",
+ "Requirement already satisfied: python-discovery>=1.2.2 in /usr/local/lib/python3.10/dist-packages (from virtualenv>=20.10.0->pre-commit->fastdeploy) (1.3.0)\n",
+ "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prettytable->aistudio-sdk>=0.3.0->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (0.2.14)\n",
+ "Requirement already satisfied: pybind11-global==3.0.4 in /usr/local/lib/python3.10/dist-packages (from pybind11[global]->fastdeploy) (3.0.4)\n",
+ "Requirement already satisfied: nvidia-ml-py>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from pynvml->fastdeploy) (13.580.82)\n",
+ "Requirement already satisfied: ruamel.yaml.clib>=0.2.7 in /usr/local/lib/python3.10/dist-packages (from ruamel.yaml->fastdeploy) (0.2.14)\n",
+ "Requirement already satisfied: scikit-learn>=0.21.3 in /usr/local/lib/python3.10/dist-packages (from seqeval->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.7.2)\n",
+ "Requirement already satisfied: scipy>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->seqeval->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.15.3)\n",
+ "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->seqeval->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (1.5.2)\n",
+ "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->seqeval->paddleformers @ https://paddlenlp.bj.bcebos.com/wheel/b9cc3ca0a391f908d5c3b28dd1886d278c432a31/paddleformers-0.0.0.post20250620-py3-none-any.whl->fastdeploy) (3.6.0)\n",
+ "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from visualdl->fastdeploy) (3.10.9)\n",
+ "Requirement already satisfied: rarfile in /usr/local/lib/python3.10/dist-packages (from visualdl->fastdeploy) (4.2)\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->visualdl->fastdeploy) (1.3.2)\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->visualdl->fastdeploy) (0.12.1)\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->visualdl->fastdeploy) (4.62.1)\n",
+ "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->visualdl->fastdeploy) (1.5.0)\n",
+ "Requirement already satisfied: pyparsing>=3 in /usr/local/lib/python3.10/dist-packages (from matplotlib->visualdl->fastdeploy) (3.3.2)\n",
+ "\u001b[33mWARNING: Error parsing dependencies of mlnx-tools: Invalid version: '-5.2.0-'\u001b[0m\u001b[33m\n",
+ "\u001b[0mInstalling collected packages: paddleformers, fastdeploy\n",
+ "\u001b[2K Attempting uninstall: paddleformers\n",
+ "\u001b[2K Found existing installation: paddleformers 0.4.0.post20251222\n",
+ "\u001b[2K Uninstalling paddleformers-0.4.0.post20251222:\n",
+ "\u001b[2K Successfully uninstalled paddleformers-0.4.0.post20251222\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2/2\u001b[0m [fastdeploy]2\u001b[0m [fastdeploy]\n",
+ "\u001b[1A\u001b[2KSuccessfully installed fastdeploy-2.0.0a0 paddleformers-0.0.0.post20250620\n",
+ "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n",
+ "\u001b[0m\u001b[33m⚠️ Warning: 'huggingface-cli download' is deprecated. Use 'hf download' instead.\u001b[0m\n",
+ "Fetching 10 files: 100%|██████████████████████| 10/10 [00:00<00:00, 2146.52it/s]\n",
+ "/data/baidu/ERNIE-4.5-0.3B-Paddle\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 安装 FastDeploy\n",
+ "\n",
+ "!python -m pip install --upgrade pip setuptools wheel\n",
+ "\n",
+ "!python -m pip install -r requirements-gcu.txt --extra-index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplels\n",
+ "!python -m pip install fastdeploy -i https://www.paddlepaddle.org.cn/packages/stable/gcu/ --extra-index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplels\n",
+ "\n",
+ "# 下载 ERNIE-4.5-0.3B-Paddle 模型\n",
+ "\n",
+ "!huggingface-cli download baidu/ERNIE-4.5-0.3B-Paddle --local-dir baidu/ERNIE-4.5-0.3B-Paddle\n",
+ "\n",
+ "!export ENABLE_V1_KVCACHE_SCHEDULER=1\n",
+ "\n",
+ "# 下面这个环境变量主要是为了绕过单卡的一个小bug。\n",
+ "!export CUDA_VISIBLE_DEVICES=0\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 1. 导入依赖"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import re\n",
+ "import time\n",
+ "import openai\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 2. 加载模型"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 2.1 启动 FastDeploy OpenAI API Server\n",
+ "\n",
+ "需要先启动 FastDeploy 的 OpenAI 兼容 API Server。该服务通过子进程启动,提供与 OpenAI 兼容的 HTTP 接口。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "端口 8180 未被占用,可以直接启动。\n",
+ "FastDeploy OpenAI API Server 启动中... (PID: 31668)\n",
+ "服务地址: http://0.0.0.0:8180/v1\n",
+ "请等待服务就绪后再继续执行后续 Cell。\n"
+ ]
+ }
+ ],
+ "source": [
+ "# ========== 启动 FastDeploy OpenAI API Server ==========\n",
+ "# 通过子进程启动 fastdeploy 的 openai api_server。\n",
+ "# 运行本 Cell 会:\n",
+ "# 1. 检查端口是否已被占用,若占用则杀死占用进程\n",
+ "# 2. 启动 fastdeploy 服务\n",
+ "\n",
+ "import subprocess\n",
+ "import os\n",
+ "import time\n",
+ "import socket\n",
+ "import signal\n",
+ "\n",
+ "# FastDeploy OpenAI API Server 配置\n",
+ "FD_MODEL = \"baidu/ERNIE-4.5-0.3B-Paddle\"\n",
+ "FD_HOST = \"0.0.0.0\"\n",
+ "FD_PORT = 8180\n",
+ "FD_METRICS_PORT = 8181\n",
+ "FD_WORKER_QUEUE_PORT = 8182\n",
+ "FD_MAX_MODEL_LEN = 32768\n",
+ "FD_MAX_NUM_SEQS = 32\n",
+ "FD_NUM_GPU_BLOCKS_OVERRIDE = 4896\n",
+ "\n",
+ "# ---------- Step 1: 检查并释放被占用的端口 ----------\n",
+ "def is_port_in_use(port):\n",
+ " \"\"\"检查指定端口是否被占用\"\"\"\n",
+ " with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:\n",
+ " return s.connect_ex((\"127.0.0.1\", port)) == 0\n",
+ "\n",
+ "def kill_process_on_port(port):\n",
+ " \"\"\"查找并杀死占用指定端口的进程\"\"\"\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [\"lsof\", \"-t\", \"-i\", f\":{port}\"],\n",
+ " capture_output=True, text=True\n",
+ " )\n",
+ " pids = result.stdout.strip().split('\\n')\n",
+ " for pid_str in pids:\n",
+ " pid_str = pid_str.strip()\n",
+ " if pid_str:\n",
+ " pid = int(pid_str)\n",
+ " print(f\"端口 {port} 被进程 PID={pid} 占用,正在终止...\")\n",
+ " os.kill(pid, signal.SIGKILL)\n",
+ " time.sleep(1)\n",
+ " print(f\"进程 PID={pid} 已终止。\")\n",
+ " except (subprocess.CalledProcessError, FileNotFoundError, ValueError, ProcessLookupError):\n",
+ " try:\n",
+ " subprocess.run([\"fuser\", \"-k\", f\"{port}/tcp\"], capture_output=True)\n",
+ " print(f\"已通过 fuser 终止占用端口 {port} 的进程。\")\n",
+ " except FileNotFoundError:\n",
+ " print(f\"警告:无法终止占用端口 {port} 的进程(lsof/fuser 均不可用)。\")\n",
+ "\n",
+ "if is_port_in_use(FD_PORT):\n",
+ " print(f\"端口 {FD_PORT} 已被占用,需要先释放。\")\n",
+ " kill_process_on_port(FD_PORT)\n",
+ " time.sleep(2)\n",
+ " if is_port_in_use(FD_PORT):\n",
+ " print(f\"警告:端口 {FD_PORT} 仍被占用,启动可能失败!\")\n",
+ " else:\n",
+ " print(f\"端口 {FD_PORT} 已释放。\")\n",
+ "else:\n",
+ " print(f\"端口 {FD_PORT} 未被占用,可以直接启动。\")\n",
+ "\n",
+ "# ---------- Step 2: 设置环境变量并启动服务 ----------\n",
+ "os.environ[\"ENABLE_V1_KVCACHE_SCHEDULER\"] = \"1\"\n",
+ "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\"\n",
+ "\n",
+ "fd_server_cmd = [\n",
+ " \"python\", \"-m\", \"fastdeploy.entrypoints.openai.api_server\",\n",
+ " \"--model\", FD_MODEL,\n",
+ " \"--host\", FD_HOST,\n",
+ " \"--port\", str(FD_PORT),\n",
+ " \"--metrics-port\", str(FD_METRICS_PORT),\n",
+ " \"--engine-worker-queue-port\", str(FD_WORKER_QUEUE_PORT),\n",
+ " \"--max-model-len\", str(FD_MAX_MODEL_LEN),\n",
+ " \"--max-num-seqs\", str(FD_MAX_NUM_SEQS),\n",
+ " \"--num-gpu-blocks-override\", str(FD_NUM_GPU_BLOCKS_OVERRIDE),\n",
+ "]\n",
+ "\n",
+ "fd_server_process = subprocess.Popen(\n",
+ " fd_server_cmd,\n",
+ " stdout=subprocess.PIPE,\n",
+ " stderr=subprocess.PIPE,\n",
+ ")\n",
+ "print(f\"FastDeploy OpenAI API Server 启动中... (PID: {fd_server_process.pid})\")\n",
+ "print(f\"服务地址: http://{FD_HOST}:{FD_PORT}/v1\")\n",
+ "print(\"请等待服务就绪后再继续执行后续 Cell。\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "OpenAI client created, connecting to http://0.0.0.0:8180/v1\n"
+ ]
+ }
+ ],
+ "source": [
+ "MODEL_PATH = \"baidu/ERNIE-4.5-0.3B-Paddle\"\n",
+ "\n",
+ "FD_HOST = \"0.0.0.0\"\n",
+ "FD_PORT = 8180\n",
+ "client = openai.Client(\n",
+ " base_url=f\"http://{FD_HOST}:{FD_PORT}/v1\",\n",
+ " api_key=\"null\"\n",
+ ")\n",
+ "print(f\"OpenAI client created, connecting to http://{FD_HOST}:{FD_PORT}/v1\")\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 3. 游戏常量与配置"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 难度系数映射\n",
+ "DIFFICULTY_MULTIPLIERS = {1: 1.0, 2: 1.2, 3: 1.5, 4: 2.0, 5: 2.5}\n",
+ "\n",
+ "# 难度对应的时间限制(秒)\n",
+ "DIFFICULTY_TIME_LIMITS = {1: 30, 2: 25, 3: 20, 4: 18, 5: 15}\n",
+ "\n",
+ "# 难度对应的英文句子目标词数\n",
+ "DIFFICULTY_SENTENCE_LENGTH = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}\n",
+ "\n",
+ "# 基础分\n",
+ "BASE_SCORE = 10\n",
+ "\n",
+ "# 剩余时间奖励系数\n",
+ "TIME_BONUS_FACTOR = 0.5\n",
+ "\n",
+ "# 连击奖励\n",
+ "STREAK_BONUS = 2\n",
+ "\n",
+ "# 限时模式默认题数\n",
+ "TIMED_MODE_QUESTIONS = 10\n",
+ "\n",
+ "# 题目生成最大重试次数\n",
+ "MAX_RETRIES = 2\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 4. 题目生成与解析"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import random\n",
+ "\n",
+ "\n",
+ "def build_sentence_prompt(difficulty: int) -> str:\n",
+ " \"\"\"构建让大模型生成英文句子的 Prompt\"\"\"\n",
+ " target_len = DIFFICULTY_SENTENCE_LENGTH.get(difficulty, 12)\n",
+ " prompt = f\"\"\"请生成一句约 {target_len} 个词的英文句子。\"\"\"\n",
+ " return prompt\n",
+ "\n",
+ "\n",
+ "def generate_sentence(difficulty: int) -> str:\n",
+ " \"\"\"调用大模型生成一句英文,带重试机制\"\"\"\n",
+ " prompt = build_sentence_prompt(difficulty)\n",
+ " for attempt in range(MAX_RETRIES + 1):\n",
+ " try:\n",
+ " response = client.chat.completions.create(\n",
+ " model=\"null\",\n",
+ " messages=[{\"role\": \"user\", \"content\": prompt}],\n",
+ " temperature=0.8,\n",
+ " top_p=0.95,\n",
+ " max_tokens=128,\n",
+ " stream=False,\n",
+ " )\n",
+ " text = response.choices[0].message.content.strip()\n",
+ "\n",
+ " # 基本校验:非空且至少有4个词\n",
+ " if text and len(text.split()) >= 4:\n",
+ " return text\n",
+ " print(f\"generate_sentence: invalid output (attempt {attempt + 1}): {text[:80]}\")\n",
+ " except Exception as e:\n",
+ " print(f\"generate_sentence: error (attempt {attempt + 1}): {e}\")\n",
+ " return \"\"\n",
+ "\n",
+ "\n",
+ "def get_synonyms(word: str) -> list:\n",
+ " \"\"\"调用大模型获取一个单词的两个同义词/近义词,带重试机制\"\"\"\n",
+ " import json\n",
+ " prompt = f\"\"\"请为英文单词 \"{word}\" 提供 5 个同义词或近义词。以 json 格式返回\n",
+ "{{\n",
+ " \"synonyms\": [\n",
+ " ]\n",
+ "}}\"\"\"\n",
+ " for attempt in range(MAX_RETRIES + 1):\n",
+ " try:\n",
+ " response = client.chat.completions.create(\n",
+ " model=\"null\",\n",
+ " messages=[{\"role\": \"user\", \"content\": prompt}],\n",
+ " temperature=0.6,\n",
+ " top_p=0.9,\n",
+ " max_tokens=128,\n",
+ " stream=False,\n",
+ " )\n",
+ " text = response.choices[0].message.content.strip()\n",
+ " \n",
+ " # 解析:从 JSON 中提取 synonyms 列表\n",
+ " try:\n",
+ " data = json.loads(text)\n",
+ " syns = data.get(\"synonyms\", [])\n",
+ " except json.JSONDecodeError:\n",
+ " # 如果 JSON 解析失败,尝试从文本中提取 JSON 部分\n",
+ " match = re.search(r'\\{[\\s\\S]*?\\}', text)\n",
+ " if match:\n",
+ " try:\n",
+ " data = json.loads(match.group())\n",
+ " syns = data.get(\"synonyms\", [])\n",
+ " except json.JSONDecodeError:\n",
+ " syns = []\n",
+ " else:\n",
+ " syns = []\n",
+ " # 过滤掉和原词相同的,并确保是字符串\n",
+ " syns = [w for w in syns if isinstance(w, str) and w.lower() != word.lower()]\n",
+ " # 成功获取至少2个同义词则返回\n",
+ " if len(syns) >= 2:\n",
+ " return random.sample(syns, 2)\n",
+ " print(f\"get_synonyms('{word}'): not enough synonyms (got {len(syns)}, attempt {attempt + 1})\")\n",
+ " except Exception as e:\n",
+ " print(f\"get_synonyms('{word}'): error (attempt {attempt + 1}): {e}\")\n",
+ " return []\n",
+ "\n",
+ "\n",
+ "def pick_cloze_word(sentence: str) -> tuple:\n",
+ " \"\"\"\n",
+ " 从句子中选取一个适合作为完形填空空白的单词。\n",
+ " 返回 (word, index) 或 None。\n",
+ " 优先选择实词(名词、动词、形容词、副词),跳过冠词、介词、连词等。\n",
+ " \"\"\"\n",
+ " # 常见虚词列表,这些词不适合作为完形填空的空白\n",
+ " skip_words = {\n",
+ " 'a', 'an', 'the', 'is', 'are', 'was', 'were', 'be', 'been', 'being',\n",
+ " 'am', 'do', 'does', 'did', 'have', 'has', 'had', 'having',\n",
+ " 'will', 'would', 'shall', 'should', 'can', 'could', 'may', 'might', 'must',\n",
+ " 'i', 'you', 'he', 'she', 'it', 'we', 'they', 'me', 'him', 'her', 'us', 'them',\n",
+ " 'my', 'your', 'his', 'its', 'our', 'their', 'mine', 'yours', 'hers', 'ours',\n",
+ " 'this', 'that', 'these', 'those',\n",
+ " 'in', 'on', 'at', 'to', 'for', 'of', 'with', 'by', 'from', 'up', 'down',\n",
+ " 'out', 'off', 'over', 'under', 'about', 'into', 'through', 'after', 'before',\n",
+ " 'between', 'among', 'during', 'until', 'since',\n",
+ " 'and', 'or', 'but', 'not', 'nor', 'so', 'yet', 'if', 'then',\n",
+ " 'as', 'than', 'when', 'while', 'where', 'how', 'what', 'which', 'who',\n",
+ " 'very', 'too', 'also', 'just', 'only', 'even', 'still', 'already',\n",
+ " 'no', 'yes', 'all', 'each', 'every', 'both', 'any', 'some',\n",
+ " 'here', 'there', 'now', 'never', 'always', 'often',\n",
+ " }\n",
+ "\n",
+ " # 分词并保留原始位置信息\n",
+ " words = []\n",
+ " for match in re.finditer(r\"[a-zA-Z']+\", sentence):\n",
+ " words.append((match.group(), match.start(), match.end()))\n",
+ "\n",
+ " # 筛选适合的词(长度>=3的实词,不在虚词列表中)\n",
+ " candidates = [(w, s, e) for w, s, e in words\n",
+ " if w.lower() not in skip_words and len(w) >= 3]\n",
+ "\n",
+ " if not candidates:\n",
+ " # 退而求其次:选长度>=2的词\n",
+ " candidates = [(w, s, e) for w, s, e in words\n",
+ " if w.lower() not in skip_words and len(w) >= 2]\n",
+ "\n",
+ " if not candidates:\n",
+ " return None\n",
+ "\n",
+ " # 随机选一个\n",
+ " chosen = random.choice(candidates)\n",
+ " return chosen[0], chosen[1], chosen[2]\n",
+ "\n",
+ "\n",
+ "def build_cloze_question(sentence: str, word: str, start: int, end: int, synonyms: list) -> tuple:\n",
+ " \"\"\"\n",
+ " 构建完形填空题目。\n",
+ " 使用 start/end 精确替换被选中的单词,避免句子中有重复词时替换错位置。\n",
+ " 返回 (question_text, options_list, answer)\n",
+ " \"\"\"\n",
+ " answer = word\n",
+ " # 确保有3个选项\n",
+ " options = [answer]\n",
+ " for syn in synonyms:\n",
+ " if syn.lower() != answer.lower() and syn not in options:\n",
+ " options.append(syn)\n",
+ " # 如果同义词不够,补充占位\n",
+ " while len(options) < 3:\n",
+ " options.append(f\"option{len(options)}\")\n",
+ " options = options[:3]\n",
+ " # 随机打乱选项顺序\n",
+ " random.shuffle(options)\n",
+ "\n",
+ " # 使用位置信息精确替换被选中的单词\n",
+ " options_str = ', '.join(options)\n",
+ " question_text = sentence[:start] + f'[{options_str}]' + sentence[end:]\n",
+ "\n",
+ " return question_text, options, answer\n",
+ "\n",
+ "\n",
+ "def get_question(difficulty: int):\n",
+ " \"\"\"生成完形填空题目,带重试机制\"\"\"\n",
+ " for attempt in range(MAX_RETRIES + 1):\n",
+ " try:\n",
+ " # Step 1: 生成英文句子\n",
+ " sentence = generate_sentence(difficulty)\n",
+ " \n",
+ " # 去掉可能的引号包裹\n",
+ " sentence = sentence.strip('\"\\'')\n",
+ " if not sentence or len(sentence.split()) < 4:\n",
+ " print(f\"Generated sentence too short (attempt {attempt + 1}): {sentence[:80]}\")\n",
+ " continue\n",
+ "\n",
+ " # Step 2: 选取一个词作为空白\n",
+ " pick_result = pick_cloze_word(sentence)\n",
+ " \n",
+ " if pick_result is None:\n",
+ " print(f\"No suitable cloze word found (attempt {attempt + 1})\")\n",
+ " continue\n",
+ " word, start, end = pick_result\n",
+ "\n",
+ " # Step 3: 用大模型获取同义词\n",
+ " synonyms = get_synonyms(word)\n",
+ " \n",
+ " if len(synonyms) < 2:\n",
+ " print(f\"Not enough synonyms for '{word}' (got {len(synonyms)}, attempt {attempt + 1})\")\n",
+ " continue\n",
+ "\n",
+ " # Step 4: 构建完形填空题\n",
+ " question_text, options, answer = build_cloze_question(sentence, word, start, end, synonyms)\n",
+ " return question_text, options, answer\n",
+ "\n",
+ " except Exception as e:\n",
+ " print(f\"Error generating question (attempt {attempt + 1}): {e}\")\n",
+ " return None\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 5. 游戏状态管理"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class GameState:\n",
+ " \"\"\"管理游戏的全局状态\"\"\"\n",
+ "\n",
+ " def __init__(self):\n",
+ " self.reset()\n",
+ "\n",
+ " def reset(self):\n",
+ " self.score = 0\n",
+ " self.difficulty = 1\n",
+ " self.streak = 0\n",
+ " self.mode = \"arcade\" # arcade / timed\n",
+ " self.remaining_questions = TIMED_MODE_QUESTIONS\n",
+ " self.total_correct = 0\n",
+ " self.current_question = None # (question_text, options, answer)\n",
+ " self.game_active = False\n",
+ " self.start_time = 0\n",
+ "\n",
+ " def get_time_limit(self) -> int:\n",
+ " \"\"\"获取当前难度对应的时间限制\"\"\"\n",
+ " return DIFFICULTY_TIME_LIMITS.get(min(self.difficulty, 5), 15)\n",
+ "\n",
+ " def calculate_score(self, time_remaining: float) -> int:\n",
+ " \"\"\"计算单题得分\"\"\"\n",
+ " diff_key = min(self.difficulty, 5)\n",
+ " multiplier = DIFFICULTY_MULTIPLIERS[diff_key]\n",
+ " time_bonus = time_remaining * TIME_BONUS_FACTOR\n",
+ " streak_bonus = self.streak * STREAK_BONUS\n",
+ " total = int(BASE_SCORE * multiplier + time_bonus + streak_bonus)\n",
+ " return max(total, 1)\n",
+ "\n",
+ "\n",
+ "game = GameState()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 6. 简单交互测试(Cell 逐行执行)\n",
+ "\n",
+ "以下部分不使用 Gradio,通过逐个 Cell 执行来体验游戏流程。"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 6.1 选择游戏模式并初始化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Game started! Mode: Arcade (闯关模式)\n",
+ "Difficulty: 1 | Time Limit: 30s\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 选择模式:\"arcade\" 或 \"timed\"\n",
+ "GAME_MODE = \"arcade\"\n",
+ "\n",
+ "game.reset()\n",
+ "game.mode = GAME_MODE\n",
+ "game.game_active = True\n",
+ "\n",
+ "mode_label = \"Arcade (闯关模式)\" if game.mode == \"arcade\" else \"Timed (限时模式)\"\n",
+ "print(f\"Game started! Mode: {mode_label}\")\n",
+ "print(f\"Difficulty: {game.difficulty} | Time Limit: {game.get_time_limit()}s\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 6.2 生成第一道题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**注意** 如果 Fastdeploy 还没有启动起来,会出现 `Connection error`,需要等待一段时间后重试"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Difficulty: 1 | Time Limit: 30s\n",
+ "\n",
+ "Question: Snowflakes dance in the frost with efficiency and ___, as we wander the realm of winter's embrace.\n",
+ "\n",
+ "Options:\n",
+ " 1. merit\n",
+ " 2. grace\n",
+ " 3. favor\n"
+ ]
+ }
+ ],
+ "source": [
+ "question_data = get_question(game.difficulty)\n",
+ "\n",
+ "if question_data is None:\n",
+ " print(\"Failed to generate question. Please re-run this cell.\")\n",
+ "else:\n",
+ " game.current_question = question_data\n",
+ " game.start_time = time.time()\n",
+ "\n",
+ " q_text, options, answer = question_data\n",
+ " display_text = re.sub(r'\\[[^\\]]+\\]', '___', q_text)\n",
+ "\n",
+ " print(f\"Difficulty: {game.difficulty} | Time Limit: {game.get_time_limit()}s\")\n",
+ " print(f\"\\nQuestion: {display_text}\")\n",
+ " print(f\"\\nOptions:\")\n",
+ " for i, opt in enumerate(options, 1):\n",
+ " print(f\" {i}. {opt}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 6.3 答题\n",
+ "\n",
+ "将 `YOUR_ANSWER` 修改为你选择的答案(必须是选项之一),然后运行此 Cell。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Correct! +17 points (Time bonus: 2.9s remaining)\n",
+ "\n",
+ "Score: 35 | Streak: 2 | Difficulty: 3\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 将下面的值改为你选择的答案\n",
+ "YOUR_ANSWER = \"something\" # 例如: \"years\"\n",
+ "\n",
+ "if not game.game_active or game.current_question is None:\n",
+ " print(\"Game is not active. Please initialize first (run 6.1 and 6.2).\")\n",
+ "elif YOUR_ANSWER == \"\":\n",
+ " print(\"Please set YOUR_ANSWER to one of the options, then re-run this cell.\")\n",
+ "else:\n",
+ " q_text, options, correct_answer = game.current_question\n",
+ " elapsed = time.time() - game.start_time\n",
+ " time_remaining = max(game.get_time_limit() - elapsed, 0)\n",
+ "\n",
+ " is_correct = (YOUR_ANSWER == correct_answer)\n",
+ "\n",
+ " if is_correct:\n",
+ " game.streak += 1\n",
+ " earned = game.calculate_score(time_remaining)\n",
+ " game.score += earned\n",
+ " game.total_correct += 1\n",
+ " print(f\"Correct! +{earned} points (Time bonus: {time_remaining:.1f}s remaining)\")\n",
+ " if game.difficulty < 5:\n",
+ " game.difficulty += 1\n",
+ " else:\n",
+ " print(f\"Wrong! The correct answer is: {correct_answer}\")\n",
+ " if game.mode == \"arcade\":\n",
+ " game.game_active = False\n",
+ " print(f\"\\n--- GAME OVER ---\")\n",
+ " print(f\"Final Score: {game.score} | Max Streak: {game.streak} | Difficulty Reached: {game.difficulty}\")\n",
+ " else:\n",
+ " game.streak = 0\n",
+ "\n",
+ " # 限时模式检查剩余题数\n",
+ " if game.mode == \"timed\" and game.game_active:\n",
+ " game.remaining_questions -= 1\n",
+ " if game.remaining_questions <= 0:\n",
+ " game.game_active = False\n",
+ " print(f\"\\n--- GAME OVER ---\")\n",
+ " print(f\"Final Score: {game.score} | Correct: {game.total_correct}/{TIMED_MODE_QUESTIONS}\")\n",
+ "\n",
+ " print(f\"\\nScore: {game.score} | Streak: {game.streak} | Difficulty: {game.difficulty}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 6.4 生成下一道题\n",
+ "\n",
+ "答对后运行此 Cell 生成下一题,然后回到 6.3 继续答题。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Difficulty: 3 | Time Limit: 20s\n",
+ "\n",
+ "Question: The city's vibrant energy blossoms in the late afternoon, buzzing with life, a symphony of laughter and color. Time flies like a gentle breeze, ___ with it a blend of hope and anticipation.\n",
+ "\n",
+ "Options:\n",
+ " 1. carrying up\n",
+ " 2. carrying\n",
+ " 3. carried\n"
+ ]
+ }
+ ],
+ "source": [
+ "if not game.game_active:\n",
+ " print(\"Game is over. Run 6.1 to start a new game.\")\n",
+ "else:\n",
+ " question_data = get_question(game.difficulty)\n",
+ "\n",
+ " if question_data is None:\n",
+ " print(\"Failed to generate question. Please re-run this cell.\")\n",
+ " else:\n",
+ " game.current_question = question_data\n",
+ " game.start_time = time.time()\n",
+ "\n",
+ " q_text, options, answer = question_data\n",
+ " display_text = re.sub(r'\\[[^\\]]+\\]', '___', q_text)\n",
+ "\n",
+ " remaining_info = f\" | Remaining: {game.remaining_questions}\" if game.mode == \"timed\" else \"\"\n",
+ " print(f\"Difficulty: {game.difficulty} | Time Limit: {game.get_time_limit()}s{remaining_info}\")\n",
+ " print(f\"\\nQuestion: {display_text}\")\n",
+ " print(f\"\\nOptions:\")\n",
+ " for i, opt in enumerate(options, 1):\n",
+ " print(f\" {i}. {opt}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 6.5 查看当前游戏状态"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Mode: Arcade | Status: Active\n",
+ "Score: 35 | Streak: 2 | Difficulty: 3\n"
+ ]
+ }
+ ],
+ "source": [
+ "mode_label = \"Arcade\" if game.mode == \"arcade\" else \"Timed\"\n",
+ "status = \"Active\" if game.game_active else \"Game Over\"\n",
+ "\n",
+ "print(f\"Mode: {mode_label} | Status: {status}\")\n",
+ "print(f\"Score: {game.score} | Streak: {game.streak} | Difficulty: {game.difficulty}\")\n",
+ "if game.mode == \"timed\":\n",
+ " print(f\"Remaining Questions: {game.remaining_questions} | Correct: {game.total_correct}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 7. Gradio 应用\n",
+ "\n",
+ "以下部分构建完整的 Gradio Web 界面。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import gradio as gr"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 7.1 Gradio 回调函数"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def start_game(mode_choice):\n",
+ " \"\"\"初始化游戏\"\"\"\n",
+ " game.reset()\n",
+ " game.mode = mode_choice\n",
+ " game.game_active = True\n",
+ "\n",
+ " question_data = get_question(game.difficulty)\n",
+ " if question_data is None:\n",
+ " return (\n",
+ " \"Failed to generate question. Please try again.\",\n",
+ " gr.update(visible=False), gr.update(visible=False), gr.update(visible=False),\n",
+ " \"\", \"\", \"\", \"\", \"\"\n",
+ " )\n",
+ "\n",
+ " game.current_question = question_data\n",
+ " game.start_time = time.time()\n",
+ "\n",
+ " q_text, options, answer = question_data\n",
+ " display_text = re.sub(r'\\[[^\\]]+\\]', '___', q_text)\n",
+ "\n",
+ " mode_label = \"Arcade Mode\" if game.mode == \"arcade\" else \"Timed Mode\"\n",
+ " info = f\"Mode: {mode_label} | Difficulty: {game.difficulty} | Time Limit: {game.get_time_limit()}s\"\n",
+ "\n",
+ " return (\n",
+ " display_text,\n",
+ " gr.update(value=options[0], visible=True),\n",
+ " gr.update(value=options[1], visible=True),\n",
+ " gr.update(value=options[2], visible=True),\n",
+ " str(game.score), str(game.streak), str(game.difficulty),\n",
+ " info, \"\"\n",
+ " )\n",
+ "\n",
+ "\n",
+ "def handle_answer(selected_option):\n",
+ " \"\"\"处理用户答题\"\"\"\n",
+ " if not game.game_active or game.current_question is None:\n",
+ " return (\n",
+ " \"Game is not active. Please start a new game.\",\n",
+ " gr.update(visible=False), gr.update(visible=False), gr.update(visible=False),\n",
+ " \"\", \"\", \"\", \"\", \"\"\n",
+ " )\n",
+ "\n",
+ " q_text, options, correct_answer = game.current_question\n",
+ " elapsed = time.time() - game.start_time\n",
+ " time_remaining = max(game.get_time_limit() - elapsed, 0)\n",
+ "\n",
+ " is_correct = (selected_option == correct_answer)\n",
+ "\n",
+ " if is_correct:\n",
+ " game.streak += 1\n",
+ " earned = game.calculate_score(time_remaining)\n",
+ " game.score += earned\n",
+ " game.total_correct += 1\n",
+ " feedback = f\"Correct! +{earned} points (Time bonus: {time_remaining:.1f}s)\"\n",
+ " if game.difficulty < 5:\n",
+ " game.difficulty += 1\n",
+ " else:\n",
+ " feedback = f\"Wrong! The correct answer is: {correct_answer}\"\n",
+ " if game.mode == \"arcade\":\n",
+ " game.game_active = False\n",
+ " summary = (\n",
+ " f\"\\n--- GAME OVER ---\\n\"\n",
+ " f\"Final Score: {game.score} | Max Streak: {game.streak} | \"\n",
+ " f\"Difficulty Reached: {game.difficulty}\"\n",
+ " )\n",
+ " return (\n",
+ " feedback + summary,\n",
+ " gr.update(visible=False), gr.update(visible=False), gr.update(visible=False),\n",
+ " str(game.score), str(game.streak), str(game.difficulty),\n",
+ " \"Game Over\", \"\"\n",
+ " )\n",
+ " else:\n",
+ " game.streak = 0\n",
+ "\n",
+ " if game.mode == \"timed\":\n",
+ " game.remaining_questions -= 1\n",
+ " if game.remaining_questions <= 0:\n",
+ " game.game_active = False\n",
+ " summary = (\n",
+ " f\"\\n--- ALL QUESTIONS DONE ---\\n\"\n",
+ " f\"Final Score: {game.score} | Correct: {game.total_correct}/{TIMED_MODE_QUESTIONS}\"\n",
+ " )\n",
+ " return (\n",
+ " feedback + summary,\n",
+ " gr.update(visible=False), gr.update(visible=False), gr.update(visible=False),\n",
+ " str(game.score), str(game.streak), str(game.difficulty),\n",
+ " \"Game Over\", \"\"\n",
+ " )\n",
+ "\n",
+ " question_data = get_question(game.difficulty)\n",
+ " if question_data is None:\n",
+ " game.game_active = False\n",
+ " return (\n",
+ " feedback + \"\\nFailed to generate next question. Game ended.\",\n",
+ " gr.update(visible=False), gr.update(visible=False), gr.update(visible=False),\n",
+ " str(game.score), str(game.streak), str(game.difficulty),\n",
+ " \"Error\", \"\"\n",
+ " )\n",
+ "\n",
+ " game.current_question = question_data\n",
+ " game.start_time = time.time()\n",
+ "\n",
+ " new_q_text, new_options, _ = question_data\n",
+ " display_text = re.sub(r'\\[[^\\]]+\\]', '___', new_q_text)\n",
+ "\n",
+ " mode_label = \"Arcade\" if game.mode == \"arcade\" else \"Timed\"\n",
+ " remaining_info = f\" | Remaining: {game.remaining_questions}\" if game.mode == \"timed\" else \"\"\n",
+ " info = f\"{mode_label} | Diff: {game.difficulty} | Time: {game.get_time_limit()}s{remaining_info}\"\n",
+ "\n",
+ " return (\n",
+ " display_text,\n",
+ " gr.update(value=new_options[0], visible=True),\n",
+ " gr.update(value=new_options[1], visible=True),\n",
+ " gr.update(value=new_options[2], visible=True),\n",
+ " str(game.score), str(game.streak), str(game.difficulty),\n",
+ " info, feedback\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 7.2 构建 Gradio 界面"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with gr.Blocks(title=\"English Cloze Challenge\", theme=gr.themes.Soft()) as demo:\n",
+ " gr.Markdown(\"# English Cloze Challenge\")\n",
+ " gr.Markdown(\"Select a game mode and answer cloze questions to earn points!\")\n",
+ "\n",
+ " with gr.Row():\n",
+ " with gr.Column(scale=1):\n",
+ " mode_radio = gr.Radio(\n",
+ " choices=[\"arcade\", \"timed\"],\n",
+ " value=\"arcade\",\n",
+ " label=\"Game Mode\",\n",
+ " info=\"Arcade: game over on wrong answer | Timed: answer 10 questions\"\n",
+ " )\n",
+ " start_btn = gr.Button(\"Start Game\", variant=\"primary\")\n",
+ "\n",
+ " with gr.Column(scale=2):\n",
+ " info_text = gr.Textbox(label=\"Game Info\", interactive=False)\n",
+ " feedback_text = gr.Textbox(label=\"Feedback\", interactive=False)\n",
+ "\n",
+ " gr.Markdown(\"---\")\n",
+ "\n",
+ " question_display = gr.Textbox(label=\"Question\", lines=3, interactive=False)\n",
+ "\n",
+ " with gr.Row():\n",
+ " opt1_btn = gr.Button(\"Option 1\", visible=False)\n",
+ " opt2_btn = gr.Button(\"Option 2\", visible=False)\n",
+ " opt3_btn = gr.Button(\"Option 3\", visible=False)\n",
+ "\n",
+ " gr.Markdown(\"---\")\n",
+ "\n",
+ " with gr.Row():\n",
+ " score_display = gr.Textbox(label=\"Score\", value=\"0\", interactive=False)\n",
+ " streak_display = gr.Textbox(label=\"Streak\", value=\"0\", interactive=False)\n",
+ " diff_display = gr.Textbox(label=\"Difficulty\", value=\"1\", interactive=False)\n",
+ "\n",
+ " # --- Event bindings ---\n",
+ "\n",
+ " start_btn.click(\n",
+ " fn=start_game,\n",
+ " inputs=[mode_radio],\n",
+ " outputs=[\n",
+ " question_display,\n",
+ " opt1_btn, opt2_btn, opt3_btn,\n",
+ " score_display, streak_display, diff_display,\n",
+ " info_text, feedback_text\n",
+ " ]\n",
+ " )\n",
+ "\n",
+ " for btn in [opt1_btn, opt2_btn, opt3_btn]:\n",
+ " btn.click(\n",
+ " fn=handle_answer,\n",
+ " inputs=[btn],\n",
+ " outputs=[\n",
+ " question_display,\n",
+ " opt1_btn, opt2_btn, opt3_btn,\n",
+ " score_display, streak_display, diff_display,\n",
+ " info_text, feedback_text\n",
+ " ]\n",
+ " )\n",
+ "\n",
+ "print(\"Gradio app built successfully!\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 7.3 启动 Gradio 应用"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "demo.launch(server_name=\"0.0.0.0\", server_port=7860, share=True)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/bad_case.png b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/bad_case.png
new file mode 100644
index 00000000..8c937663
Binary files /dev/null and b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/bad_case.png differ
diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/cloze.png b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/cloze.png
new file mode 100644
index 00000000..45cfb747
Binary files /dev/null and b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/cloze.png differ
diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/gcu.png b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/gcu.png
new file mode 100644
index 00000000..480efb75
Binary files /dev/null and b/WeeklyReports/Hackathon_10th/ERNIEPartner/17_megemini/images/gcu.png differ