Files
ShowenV2/scripts/deploy_ai.sh

88 lines
2.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# M2.1 设备端部署脚本 — 部署 AI 推理二进制 + 模型文件
# 用法: bash scripts/deploy_ai.sh
# 前置: ~/ai_spike/ 存在 (spike 2026-07-03 保留)
set -e
SPIKE_DIR="$HOME/ai_spike"
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
TOOLS_DIR="$PROJECT_DIR/tools"
MODEL_STORE="$PROJECT_DIR/model_store"
echo "=== M2.1 AI 部署 ==="
echo "项目: $PROJECT_DIR"
echo "spike: $SPIKE_DIR"
# 检查 spike 目录
if [ ! -d "$SPIKE_DIR" ]; then
echo "错误: spike 目录不存在 ($SPIKE_DIR)"
echo "请先完成 spike (参考 TEAM_CHAT.md 2026-07-03 张明远报告)"
exit 1
fi
# 1. 部署二进制到 tools/
echo "--- 部署二进制到 tools/ ---"
mkdir -p "$TOOLS_DIR"
# whisper-cli (依赖 libggml*.so需设 LD_LIBRARY_PATH 或 RPATH)
ln -sf "$SPIKE_DIR/whisper.cpp/build/bin/whisper-cli" "$TOOLS_DIR/whisper-cli"
echo " ✓ whisper-cli"
# llama-cli
ln -sf "$SPIKE_DIR/llama.cpp/build/bin/llama-cli" "$TOOLS_DIR/llama-cli"
echo " ✓ llama-cli"
# piper
ln -sf "$SPIKE_DIR/piper/piper" "$TOOLS_DIR/piper"
echo " ✓ piper"
# 2. 部署模型到 model_store/
echo "--- 部署模型到 model_store/ ---"
mkdir -p "$MODEL_STORE/llm" "$MODEL_STORE/asr" "$MODEL_STORE/tts"
# LLM: Qwen2.5-0.5B (默认推荐)
ln -sf "$SPIKE_DIR/models/qwen2.5-0.5b-instruct-q4_k_m.gguf" "$MODEL_STORE/llm/qwen2.5-0.5b-q4_k_m.gguf"
echo " ✓ llm/qwen2.5-0.5b-q4_k_m.gguf (469M, 推荐默认)"
# LLM: Gemma3-1B (可选档)
ln -sf "$SPIKE_DIR/models/gemma-3-1b-it-Q4_K_M.gguf" "$MODEL_STORE/llm/gemma3-1b-q4_k_m.gguf"
echo " ✓ llm/gemma3-1b-q4_k_m.gguf (769M, 可选档)"
# ASR: whisper tiny
ln -sf "$SPIKE_DIR/models/ggml-tiny.bin" "$MODEL_STORE/asr/ggml-tiny.bin"
echo " ✓ asr/ggml-tiny.bin (75M)"
# ASR: whisper base (备选)
ln -sf "$SPIKE_DIR/models/ggml-base.bin" "$MODEL_STORE/asr/ggml-base.bin"
echo " ✓ asr/ggml-base.bin (142M, 备选)"
# TTS: piper zh_CN-huayan-medium
ln -sf "$SPIKE_DIR/piper/zh_CN-huayan-medium.onnx" "$MODEL_STORE/tts/zh_CN-huayan-medium.onnx"
ln -sf "$SPIKE_DIR/piper/zh_CN-huayan-medium.onnx.json" "$MODEL_STORE/tts/zh_CN-huayan-medium.onnx.json"
echo " ✓ tts/zh_CN-huayan-medium.onnx (63M)"
# 3. 设置 whisper LD_LIBRARY_PATH (whisper-cli 依赖 libggml*.so)
WHISPER_LIB="$SPIKE_DIR/whisper.cpp/build/bin"
echo "--- whisper 依赖库路径: $WHISPER_LIB ---"
# 4. 验证
echo "=== 验证 ==="
echo "tools/:"
ls -la "$TOOLS_DIR"
echo "model_store/:"
ls -laR "$MODEL_STORE"
# 测试 llama-cli 能跑
echo "--- 测试 llama-cli ---"
"$TOOLS_DIR/llama-cli" --version 2>&1 | head -1 || echo " (llama-cli 版本检查失败, 可能仍可用)"
# 测试 piper 能跑
echo "--- 测试 piper ---"
"$TOOLS_DIR/piper" --help 2>&1 | head -1 || echo " (piper 帮助检查失败, 可能仍可用)"
echo "=== 部署完成 ==="
echo ""
echo "注意: whisper-cli 运行时需要 LD_LIBRARY_PATH 包含:"
echo " $WHISPER_LIB"
echo "建议在 systemd service 或启动脚本中设置此环境变量"