%%bash set -Eeuo pipefail trap 'echo "运行失败:请查看上方错误,以及 /kaggle/working/ollama.log 和 cf.log。" >&2' ERR cd /kaggle/working # 先确认当前会话已分配 GPU,并开启 Internet。 nvidia-smi apt-get update -qq apt-get install -y -qq zstd pciutils lshw curl -fsSL https://ollama.com/install.sh -o /tmp/install-ollama.sh sh /tmp/install-ollama.sh export CUDA_VISIBLE_DEVICES=0,1 export OLLAMA_HOST=127.0.0.1:11434 export OLLAMA_ORIGINS="*" export LD_LIBRARY_PATH="/usr/lib64-nvidia:/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-}" if ! curl -fsS http://127.0.0.1:11434/api/version >/dev/null; then nohup ollama serve > /kaggle/working/ollama.log 2>&1 & fi READY=0 for i in {1..60}; do if curl -fsS http://127.0.0.1:11434/api/version >/dev/null 2>&1; then READY=1; break fi sleep 2 done if [ "$READY" -ne 1 ]; then tail -n 30 /kaggle/working/ollama.log exit 1 fi # 与视频一致,先生成临时隧道地址,再下载模型。 # 此演示接口没有访问认证,不要公开或分享地址;用完停止会话。 curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared chmod +x /usr/local/bin/cloudflared nohup cloudflared tunnel --url http://localhost:11434 --http-host-header="localhost:11434" > /kaggle/working/cf.log 2>&1 & URL="" for i in {1..30}; do URL=$(grep -o 'https://[-a-z0-9]*\.trycloudflare\.com' /kaggle/working/cf.log | head -n 1 || true) [ -n "$URL" ] && break sleep 2 done if [ -z "$URL" ]; then echo "未取得隧道地址,请查看日志:" tail -n 30 /kaggle/working/cf.log exit 1 fi echo "临时 API 地址:$URL" echo "先等下面的模型下载完成,再到 Chatbox 获取模型列表。" # 保留一条下载命令:不用的行以 # 开头。 ollama pull deepseek-r1:32b # ollama pull qwen2.5:7b ollama list echo "模型下载完成。可以在 Chatbox 中选择模型并提问。"