Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ jobs:
test "$(uname -m)" = arm64
python -m pip install cmake==3.28.4 ninja==1.11.1.1 clang-format==18.1.8 jsonschema==4.23.0
xcrun --show-sdk-path
- name: Cache verified macOS dependencies
- name: Cache macOS dependencies
uses: actions/cache@v4
with:
path: |
Expand Down Expand Up @@ -454,7 +454,7 @@ jobs:
- name: Fetch and Verify Pinned Text and Vision Models
run: ./scripts/fetch_real_test_models.sh --kite

- name: Download Verified Private Release and Configure kiteLLM
- name: Download Private Release and Configure kiteLLM
env:
GH_TOKEN: ${{ secrets.KITELLM_GITHUB_TOKEN }}
run: |
Expand Down
11 changes: 6 additions & 5 deletions 3rdparty/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# 3rdparty 依赖库目录规范

本项目使用 `3rdparty/` 持久缓存固定版本、经过 SHA-256 校验的依赖。原始发布归档可以共享,
本项目使用 `3rdparty/` 持久缓存固定版本的依赖,CMake 不校验下载文件的内容 hash。原始发布归档可以共享,
本地编译产物按目标平台和构建身份分目录,避免 Linux/macOS、CPU 架构及 Debug/Release 相互覆盖。

用户指定的私有 GitHub kiteLLM 依赖使用 `kite_llm/<release>/<platform>/` 缓存已校验
用户指定的私有 GitHub kiteLLM 依赖使用 `kite_llm/<release>/<platform>/` 缓存
的 Release 归档;启用方式、读取授权和平台限制见 [kiteLLM 接入说明](../doc/kitellm.md)。

> **注意**:除本 `README.md` 外,`3rdparty/` 下的所有自动生成与下载内容均已被 `.gitignore` 忽略,不会提交至 Git 仓库。
Expand All @@ -19,13 +19,13 @@
├── pcre2/<target>/<fingerprint>/
├── googletest/<target>/<fingerprint>/
├── onnxruntime/<target>/<fingerprint>/ # 固定平台发行包
├── inferlet/<release>/<platform>/ # 已校验下载归档,在各 build/_deps 解压
├── inferlet/<release>/<platform>/ # 下载归档,在各 build/_deps 解压
├── kite_llm/<release>/<platform>/
├── nlohmann_json/include/ # 与平台无关的头文件
└── stb_image/ # 与平台无关的头文件
```

库缓存目录包含 `.edgeflow-cache-fingerprint`,记录版本、来源散列和目标 OS/架构。
库缓存目录包含 `.edgeflow-cache-fingerprint`,记录版本和目标 OS/架构。
源码编译的静态库另记录编译器、工具链、SDK/sysroot、当前构建类型的编译参数和 sanitizer 设置;
官方预编译包不因本机 SDK 更新而改变身份。`target` 例如 `linux-arm64`、`macos-arm64`。
项目使用 Ninja 等单配置生成器;`cmake_ext/third_party/ThirdPartyCacheMetadata.cmake`
Expand All @@ -39,10 +39,11 @@
- 首次执行 CMake 构建(如 `cmake -B build`)且本地 `3rdparty/` 为空时,构建系统会自动拉取依赖并完成编译/规整,将产物保存到 `3rdparty/` 对应子目录中。
2. **零编译 / 零下载秒级复用**:
- 单配置构建在所选身份目录存在完整库、头文件和匹配指纹时,使用 `IMPORTED` 目标复用。
- 指纹缺失或与当前固定源码、平台、编译器、ABI 选项不匹配时,CMake 会 fail-closed 地忽略旧缓存,并从已校验的固定来源重新生成和归档。
- 指纹缺失或与当前源码版本、平台、编译器、ABI 选项不匹配时,CMake 会忽略旧缓存,并从固定版本来源重新生成和归档。
- llama.cpp 只缓存项目提前确定的 GGML 选项组合。出现未纳入身份的 GGML/LLAMA 构建变量时,llama/Whisper 均使用源码增量构建且不读写共享归档;同一源码构建目录中上游新增的默认选项也按此处理,身份目录保持稳定。配置日志会列出禁用共享归档的变量名称,或需要保留源码目标依赖的 Metal/BLAS 组合。
3. **强制重新编译 / 刷新**:
- 如需重新编译 llama.cpp,可指定 `-DLLAMA_CPP_FORCE_REBUILD=ON`。不同身份目录可以并存,无需删除其他平台的缓存。
- 下载归档与单文件缓存存在时直接复用,不比较内容 hash;需要刷新时删除对应下载文件再重新配置。版本号和 URL 不变时,上游替换文件不会使已有缓存自动失效。

---

Expand Down
3 changes: 2 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ Do not copy entire design discussions or logs into handoffs unless necessary to
## Repository guardrails

Preserve unrelated user changes; no destructive Git operations or direct pushes to `main`.
Do not bundle third-party sources/binaries; dependencies stay pinned and verified in `cmake_ext/`.
Do not bundle third-party sources/binaries; dependencies stay version-pinned in `cmake_ext/`.
CMake dependency downloads and cached dependency files do not undergo content-hash verification.
The external workspace cannot access the company-internal SDK: do not request, infer, copy,
or commit its headers, libraries, models, configuration, or credentials. Prepare only neutral
integration seams; real SDK integration and target-hardware acceptance start only after the
Expand Down
Loading
Loading