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
uv tool install akms-nodes-gen # akms-pick on your PATH
# or
pip install "akms[nodes-gen]"
Batch picker
akms-pick --plan path/to/generation_plan.md --bibtex-json path/to/library.json
The picker is a local web UI for assigning papers from a Zotero library to the batches of a generation plan, staging their PDFs, creating one NotebookLM notebook per batch, and writing per-batch plan JSON. It needs:
- a generation plan, anywhere on disk (
--plan); - a Zotero library export in Better BibTeX JSON format (
--bibtex-json).
zsum is optional. It keeps the export current and adds per-paper summaries that improve search. Without it, the picker says so in a banner and works from titles, abstracts and tags.
Its own files go in a workspace, by default the plan's directory
(--workspace to change it). Nothing needs an AKMS checkout. See the
picker documentation
for the plan format and every option.
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 path/to/workspace/plans/R7_B2_pf_energy_solvers_plan.json \
--batch-id R7_B2 \
--out-dir 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/.
Metadata
Release files for akms-nodes-gen 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| akms_nodes_gen-0.3.2.tar.gz | 61.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| akms_nodes_gen-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 133.2 kB
Release files / akms_nodes_gen-0.3.2.tar.gz
| Download URL | akms_nodes_gen-0.3.2.tar.gz |
|---|---|
| Size | 61.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5f7ce2e87311c415da422ae8496c3a363cb8bc8cbd6bdc319e6550a0b1937ea2
|
|
BLAKE2b-256 checksum How to use checksums |
c34af1f5de060fdb079a1baf5ffcb6c841d6b195f572f8bfc1f0a144c2a05ed3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / akms_nodes_gen-0.3.2-py3-none-any.whl
| Download URL | akms_nodes_gen-0.3.2-py3-none-any.whl |
|---|---|
| Size | 71.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e061944d1f76549a17b35da213f646884103d8d74fed4554f4dd996cb05c9b9
|
|
BLAKE2b-256 checksum How to use checksums |
d998095326b19ac07de0684e3c8f18a6a3179e8f343207a08c370d19fef9bf11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency log