存储、列出并重新打开本地XLS结果
将原生XLS请求运行到项目的结果存储中,列出已存储的结果,并按内容ID重新打开其中一个。
在Linux上使用Altifigence CLI 0.1.9,将原生XLS结果保存在本地项目中。每个已存储的结果在存储、列出和重新打开时,都会通过在CPU上重放其内嵌请求来检查。
存储结果
请使用本地项目的绝对路径。本例使用$HOME/alti-projects/demo-project。请保存一个原生操作请求:
set -euo pipefail
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
WORK="$(mktemp -d)"
cat > "$WORK/eval.json" <<'JSON'
{
"schema": "altifigence.xls.operation-request.v1",
"operation": "eval",
"input_kind": "dslx",
"source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
"top": "compute",
"backend": "cpu",
"vectors": [["1", "2"]]
}
JSON
alti xls artifact store --project "$PROJECT" --request "$WORK/eval.json" > "$WORK/ref.json"
jq '{schema, result_schema, replay_verified}' "$WORK/ref.json"
ID="$(jq -r .id "$WORK/ref.json")"store运行请求中指定的操作,重放结果并保存。请确认退出状态为0。选定的引用字段如下:
{
"schema": "altifigence.xls.artifact-ref.v1",
"result_schema": "altifigence.xls.operation-result.v1",
"replay_verified": true
}id和sha256的值相同:即已存储结果的SHA-256,由64个小写十六进制字符组成。结果保存为--project所指定文件夹内的.altifigence/xls/artifacts/<id>.json。如果不使用--project,则使用当前文件夹。Optimize和codegen请求会存储包含compilation的altifigence.xls.operation-result.v2结果。再次存储同一请求会返回相同的id。
列出已存储的结果
alti xls artifact list --project "$PROJECT" > "$WORK/list.json"
jq '{schema, limit, replay_verified, ids}' "$WORK/list.json"ids按排序顺序保存已存储的ID。列出之前,会对照ID检查每个已存储的结果并重放。列表最多涵盖256个条目。没有已存储结果的项目会返回空的ids数组。alti xls run发布的结果保存在同一个存储中,并出现在同一个列表中。
重新打开结果
alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/result.json"
jq '{schema, status, outputs}' "$WORK/result.json"退出状态为0后,选定的字段如下:
{
"schema": "altifigence.xls.operation-result.v1",
"status": "succeeded",
"outputs": [
"bits[8]:0x3"
]
}show返回完整的已存储结果,包括request、source_sha256、request_sha256和parameters。它首先检查文件的SHA-256是否等于ID,以及文件是否在65536字节以内,然后重放内嵌请求并比较每个字段。
处理错误
当XLS引擎拒绝存储操作时,命令会以状态2退出,并向标准输出写入一个altifigence.xls.error.v1对象。请读取其代码和消息:
alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/show.json" || true
jq -r '.error.code + ": " + .error.message' "$WORK/show.json"CLI会在标准错误中以error:前缀报告XLS artifact id must be 64 lowercase hexadecimal characters,并在运行引擎前以状态1退出。请在标准错误中读取此消息。请原样复制store返回的id,或list中ids里的ID。
对于artifact-not-found: XLS store does not exist,请传入与store相同的--project。
对于show返回的artifact-io: cannot access local XLS artifact store,请使用相同的--project运行list,并使用ids中的ID。
对于resource-limit: store listing exceeds 256 entries; use artifact-show with a known id,请使用show和从store保存的ID重新打开结果。