ローカル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は、XLS artifact id must be 64 lowercase hexadecimal charactersを接頭辞error:を付けて標準エラー出力に報告し、エンジンを実行する前に終了ステータス1で終了します。標準エラー出力でこのメッセージを確認してください。storeのid、またはlistのidsの値をそのままコピーしてください。
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を使って結果を再度開いてください。