feat(M2.1): 设备端部署脚本 + whisper LD_LIBRARY_PATH + dog/cat 角色人设配置

This commit is contained in:
2026-07-04 15:44:48 +08:00
parent 4877d54a1c
commit 6810d1ca13
7 changed files with 138 additions and 3 deletions

87
scripts/deploy_ai.sh Normal file
View File

@@ -0,0 +1,87 @@
#!/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 或启动脚本中设置此环境变量"