AKMS Node Generation
Tooling for turning NotebookLM-curated paper batches into validated AKMS knowledge nodes.
The package has two complementary flows:
- Batch Picker: a local UI for assigning papers to one NotebookLM notebook per AKMS batch.
- NLM batch generator: a serial CLI that asks a batch's NotebookLM notebook for structured YAML/JSON node output, then validates and writes the results locally.
Install
From the AKMS repo root:
uv sync --project packages/akms_nodes_gen
If you also want the documentation toolchain:
uv sync --project packages/akms_nodes_gen --group docs
Batch picker
uv --project Packages/AKMS_nodes_gen run akms-pick
The picker runs a local FastAPI UI for selecting papers, staging PDFs, creating
NotebookLM notebooks, and writing batch plan JSON files under
Sources_Evals/NLM/Inputs/.
Serial NotebookLM batch generation
nlm_batch.py runs one selected batch/cluster at a time. It does not hardcode
the NotebookLM prompt, source IDs, timeout, or output format; pass those at the
CLI boundary.
uv run python -m akms_nodes_gen.nlm_batch \
--plan Sources_Evals/NLM/Inputs/R7_B2_pf_energy_solvers_plan.json \
--batch-id R7_B2 \
--out-dir Sources_Evals/NLM/Outputs/R7_B2_pf_energy_solvers \
--prompt-file path/to/notebooklm_prompt.md \
--template-file path/to/output_template.yaml \
--source-ids source_a,source_b \
--timeout 180 \
--output-format yaml
Useful safety controls:
--require-source-refsis on by default and requires citations/source refs on equations, algorithms, pitfalls, and references.--allow-invented-edgesis off by default; edge targets must match known plan IDs or Tier-1 node IDs.--max-retriescontrols local repair attempts when NotebookLM returns invalid structure.--converterand--validatorcan run the existing YAML-to-Markdown and node validation scripts after each YAML write.
The generator writes:
{node_id}.yaml_raw_responses/{node_id}.txt_nlm_cache/*.json_nlm_batch_state.json
Docs
Build the docs locally:
uv --project Packages/AKMS_nodes_gen run --group docs \
mkdocs build -f Packages/AKMS_nodes_gen/mkdocs.yml
Main docs live in Packages/AKMS_nodes_gen/docs/.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file akms_nodes_gen-0.3.0.tar.gz.
File metadata
- Download URL: akms_nodes_gen-0.3.0.tar.gz
- Upload date:
- Size: 58.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f500f7ac536dd6b70210d5aec4ed41b7f99c5c7add71d6ee6a78e3e7f04c6817
|
|
| MD5 |
98b0034caa83c8eacac3b9483e9ca905
|
|
| BLAKE2b-256 |
044c29d201472a332f6e42a3015bfa233619f6d1b4a6543bc65687af25f64768
|
Provenance
The following attestation bundles were made for akms_nodes_gen-0.3.0.tar.gz:
Publisher:
release.yml on CEmM2/AKMS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akms_nodes_gen-0.3.0.tar.gz -
Subject digest:
f500f7ac536dd6b70210d5aec4ed41b7f99c5c7add71d6ee6a78e3e7f04c6817 - Sigstore transparency entry: 2781377485
- Sigstore integration time:
-
Permalink:
CEmM2/AKMS@1c7294ca61c3a2f07ebebd153f68235d335e93ff -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/CEmM2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1c7294ca61c3a2f07ebebd153f68235d335e93ff -
Trigger Event:
push
-
Statement type:
File details
Details for the file akms_nodes_gen-0.3.0-py3-none-any.whl.
File metadata
- Download URL: akms_nodes_gen-0.3.0-py3-none-any.whl
- Upload date:
- Size: 68.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa08717da45c8e552c774e3eb3f2eab4785ba20de54ead2e2499187085097d5c
|
|
| MD5 |
2bc8e807c31a54a5165685a6e58091c7
|
|
| BLAKE2b-256 |
342560430d2aed166ef86fa33fc52b48750bd8c2cb70fe95c006b7630054b060
|
Provenance
The following attestation bundles were made for akms_nodes_gen-0.3.0-py3-none-any.whl:
Publisher:
release.yml on CEmM2/AKMS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akms_nodes_gen-0.3.0-py3-none-any.whl -
Subject digest:
aa08717da45c8e552c774e3eb3f2eab4785ba20de54ead2e2499187085097d5c - Sigstore transparency entry: 2781377752
- Sigstore integration time:
-
Permalink:
CEmM2/AKMS@1c7294ca61c3a2f07ebebd153f68235d335e93ff -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/CEmM2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1c7294ca61c3a2f07ebebd153f68235d335e93ff -
Trigger Event:
push
-
Statement type: