Skip to content

准备环境

  • Windows

    Node 20.x, Deno, Rust, Visual Studio 2022, Cuda & Cudnn toolkit

  • Linux

    Node 20.x, Deno, Rust

  • Macos

    Node 20.x, Deno, Rust

拉取代码

准备输出路径。这里使用output

  • 在根路径%SYNVEK_DIR%下创建.
  • 复制%SYNVEK_DIR/synvek_service下的agent_plugins. config, service_plugins and storage到output目录
  • 在output下创建目录: models. 它是默认的模型下载路径.
  • 在调试和运行中synvek_agent, synvek_service and synvek_explorer都需要将Output目录作为工作目录.

构建和运行前端模块: synvek_web

  • 准备: npm install
  • 本地调试: npm run start
  • 构建: npm run desktop:build

构建和运行agent模块: synvek_agent

  • 准备: deno install --allow-scripts=npm:ssh2@1.16.0
  • 本地运行: deno run --unstable-sloppy-imports --unstable-worker-options --allow-run --allow-env --allow-sys --allow-net --allow-read --allow-write ./src/index.ts
  • 构建: deno run --unstable-sloppy-imports --unstable-worker-options --allow-run --allow-env --allow-sys --allow-net --allow-read --allow-write ./src/Build.ts
  • 调试和运行必须指定output路径作为工作目录.

构建和运行service模块: synvek_service

  • 本地运行: cargo run --package synvek_service --bin synvek_service -- serve
  • 调试和运行必须指定output路径作为工作目录.

构建和运行tauri模块: synvek_explorer

synvek_explorer会静态连接synvek_service成单一应用,因此构建synvek_service并不是必须项。但构建synvek_service可以方便本地开发和调试

  • 本地运行: cargo run --package synvek_explorer --bin synvek_explorer
  • 调试和运行必须指定output路径作为工作目录. cargo run --manifest-path ./../synvek_explorer/Cargo.toml --package synvek_explorer --bin synvek_explorer
  • 打包准备:cargo install tauri-cli --version "^2.0.0" --locked
  • 打包:cargo tauri build

构建依赖

构建推理引擎: llama.cpp

需要根据构建机器实际CPU数量调整如下的并发编译参数-j 14, 14为并发数,该数值应该和匹配实际CPU数量

  • 使用cuda支持构建llama.cpp:

cmake -B build_cuda -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="50;52;61;75;86;89;90-virtual" -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_cuda --config Release --target synvek_backend_llama -j 14

注意: 需要将synvek_backend_llama.dll 改成synvek_backend_llama_cuda.dll并复制到output目录

  • 使用Vulkan支持构建llama.cpp:

cmake -B build_vulkan -DGGML_VULKAN=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_vulkan --config Release --target synvek_backend_llama -j 14

注意: 需要将synvek_backend_llama.dll 改成synvek_backend_llama_vulkan.dll并复制到output目录

  • 使用HIP支持构建llama.cpp: set PATH=%HIP_PATH%\bin;%PATH% cmake -B build_hip -G Ninja -DGGML_HIP=ON -DAMDGPU_TARGETS="gfx1030;gfx1100;gfx1150" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_hip --config Release --target synvek_backend_llama -j 14

注意: 需要将synvek_backend_llama.dll 改成synvek_backend_llama_hip.dll并复制到output目录

  • 使用CPU支持构建llama.cpp:

cmake -B build_cpu -DGGML_METAL=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_cpu --config Release --target synvek_backend_llama -j 14

注意: 需要将synvek_backend_llama.dll 改成synvek_backend_llama_cpu.dll并复制到output目录

  • 使用Metal支持构建llama.cpp:

cmake -B build_metal -DBUILD_SHARED_LIBS=OFF cmake --build build_metal --config Release --target synvek_backend_llama -j 14

注意: 需要将synvek_backend_llama.dll 改成synvek_backend_llama_metal.dll并复制到output目录

构建推理引擎: stable-diffusion.cpp

  • 使用cuda支持构建stable-diffusion.cpp:

cmake -B build_cuda -DSD_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="50;52;61;75;86;89;90-virtual" -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_cuda --config Release --target synvek_backend_sd -j 14

注意: 需要将synvek_backend_sd.dll 改成synvek_backend_sd_cuda.dll并复制到output目录

  • 使用CPU支持构建stable-diffusion.cpp:

cmake -B build_cpu -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_cpu --config Release --target synvek_backend_sd -j 14

注意: 需要将synvek_backend_sd.dll 改成synvek_backend_sd_cpu.dll并复制到output目录

  • 使用vulkan支持构建stable-diffusion.cpp:

cmake -B build_vulkan -DSD_VULKAN=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_vulkan --config Release --target synvek_backend_sd -j 14

注意: 需要将synvek_backend_sd.dll 改成synvek_backend_sd_vulkan.dll并复制到output目录

  • 使用Metal支持构建stable-diffusion.cpp:

cmake -B build_metal -DSD_METAL=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_metal --config Release --target synvek_backend_sd -j 14

注意: 需要将synvek_backend_sd.dll 改成synvek_backend_sd_metal.dll并复制到output目录

构建推理引擎 default: mistral.rs

  • 使用cuda支持构建mistral.rs:

针对计算能力8.x及以上(RTX 3090 Ti RTX 3090 RTX 3080 Ti RTX 3080 RTX 3070 Ti RTX 3070 RTX 3060 Ti RTX 3060 RTX 3050 Ti RTX 3050) set CUDA_COMPUTE_CAP=86 cargo build --profile release --package mistralrs-server --features "cuda" --lib

注意: 需要基于显卡计算能力选择相应的synvek_backend_default.dll并改成synvek_backend_default_cuda.dll并复制到output目录,

针对计算能力7.x及以下(GTX 1650 Ti TITAN RTX RTX 2080 Ti RTX 2080 RTX 2070 RTX 2060) set CUDA_COMPUTE_CAP=75 cargo build --profile release --package mistralrs-server --features "cuda" --lib

注意: 需要基于显卡计算能力选择相应的synvek_backend_default.dll并改成synvek_backend_default_cuda_legacy.dll并复制到output目录,

  • 使用CPU支持构建mistral.rs:

cargo build --profile release --package mistralrs-server --lib

注意: 需要将synvek_backend_default.dll 改成synvek_backend_default_cpu.dll并复制到output目录

  • 使用Metal支持构建mistral.rs:

cargo build --profile release --package mistralrs-server --features "metal" --lib

注意: 需要将synvek_backend_default.dll 改成synvek_backend_default_metal.dll并复制到output目录