LLM-driven pipeline that forges, validates, and promotes TextFSM templates from network CLI output
Project description
ParseForge
LLM-driven pipeline that forges, cross-validates, and promotes TextFSM templates from network device CLI output.
Full design plan: SPEC.md.
Features
- Trial → integration → promotion: a Human-in-the-Loop review workflow,
not a one-shot generator. Every LLM-generated template starts as
unreviewed evidence in
trials/.integrationclusters every trial for a command by the output schema its parsed records actually have, not exact template text — a command's output can legitimately vary by hardware/firmware, so distinct schemas become separate, independently tracked groups instead of one hand-picked "winner."promotionthen auto-promotes any group whose match rate against every known sample clears a configurable gate straight intoauthoritative/; anything short of that gate is queued for human review instead of silently shipped. A human-reviewed promotion is recorded as a named snapshot alongside whatever's currently live, never silently overwriting it — so review effort goes only where the evidence is actually ambiguous. - Eighteen LLM providers, one interface. Anthropic, OpenAI, DeepSeek, Groq, xAI, Together, Fireworks, Perplexity, OpenRouter, Moonshot, Cerebras, Mistral, Cohere, Azure OpenAI, Gemini, Vertex AI, Amazon Bedrock, and Oracle Cloud (OCI) — including four with non-standard auth (deployment names, GCP Application Default Credentials, AWS's credential chain, OCI request-signing) handled transparently. Naming and generation can use two different providers in the same trial. See Providers.
- Self-caching cli-name resolution. A raw CLI command
(
show interface GE1.1 status) only ever costs LLM tokens once — it's resolved to a canonical, indexed name (show-interface-var1-status) and cached locally; every later trial for that command is a free lookup. - Self-validation, not just "the LLM said so." Every generated template is immediately run against its own sample before being recorded as passed — a template that doesn't actually parse the output it was generated from never gets a chance to look good on paper.
- Drift monitoring. An authoritative template is periodically checked against new production samples; a failing sample feeds back into the pipeline as a new trial automatically, closing the loop instead of just logging an alert.
- CLI and Python API, same underlying calls. Everything the CLI does
—
run,trial,integration,promotion— is one function call in Python too. See the Python API guide.
Status
Early beta. The full pipeline is implemented and tested end to end — naming, sampling, generation, self-validation, integration (output-schema group/variant clustering), promotion (auto and human-reviewed), and drift monitoring — and wired into the CLI. A few things are intentionally not there yet:
USER_REVIEWEDpromotion has a library entry point but no CLI command (promotion.promote_user_reviewed()works today; there's noparseforge promotion --mode user-reviewedyet). Deferred until real human-reviewed cases exist to show what a CLI/config shape for a list of case/suffix/gate requests should actually look like, rather than guessing ahead of need.- Batch sampling mode (collect several samples per command before generating, SPEC.md §4) is designed but not built — the simpler per-command loop mode is the only one implemented.
- One sampling connector (Netmiko/SSH). The CLI's
--connectorregistry is built to hold more without a redesign, but nothing else is wired in yet.
Installation
# minimal install, no AI-provider SDK
pip install parseforge
# with a provider extra, e.g. anthropic
pip install parseforge[anthropic]
# local development
pip install -e ".[dev,sampling]"
For the full extras list (all eighteen providers, sampling, combining
extras, per-provider requirements/ files, and the dev/test/release
setup), see
Installation.
Reference
- Documentation site (source)
- Quickstart — a full walkthrough, from a single lookup to the end-to-end workflow
- Providers — every provider's extra, auth requirements, and default model
- CLI Guide — every command, in full
- Python API guide — calling parseforge from Python instead of the CLI
- API Reference — every public function/class, by pipeline stage
- Changelog — what shipped in each release
- SPEC.md — full design plan and open questions
Project details
Release history Release notifications | RSS feed
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 parseforge-0.3.1.tar.gz.
File metadata
- Download URL: parseforge-0.3.1.tar.gz
- Upload date:
- Size: 69.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bba647e36652551d0f450758e6ec138d77e60b59737e50a2073229ac413d695b
|
|
| MD5 |
1e852c453847d5ae1129e642e7a0351d
|
|
| BLAKE2b-256 |
5cde0e66c2d07e6d013bb9cb8e53381b803e4f41c1bacf7a1dd78bf18ac16cb6
|
Provenance
The following attestation bundles were made for parseforge-0.3.1.tar.gz:
Publisher:
publish-pypi.yml on Geeks-Trident-LLC/parseforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parseforge-0.3.1.tar.gz -
Subject digest:
bba647e36652551d0f450758e6ec138d77e60b59737e50a2073229ac413d695b - Sigstore transparency entry: 2335222458
- Sigstore integration time:
-
Permalink:
Geeks-Trident-LLC/parseforge@8374b904c60411dd3d67135f5a175acb977f144c -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Geeks-Trident-LLC
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8374b904c60411dd3d67135f5a175acb977f144c -
Trigger Event:
release
-
Statement type:
File details
Details for the file parseforge-0.3.1-py3-none-any.whl.
File metadata
- Download URL: parseforge-0.3.1-py3-none-any.whl
- Upload date:
- Size: 95.2 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 |
ffd94fe13b975eb6c3f6c770589a7a67a3a469c2102cc4d5e799f141e907c7f8
|
|
| MD5 |
cb8105d37085d425f19d71bf24d422e0
|
|
| BLAKE2b-256 |
80e40ff7a3712f95a63c7a77e9297e51b4f4739c5a479e2e561e386f6ccbce9f
|
Provenance
The following attestation bundles were made for parseforge-0.3.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on Geeks-Trident-LLC/parseforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parseforge-0.3.1-py3-none-any.whl -
Subject digest:
ffd94fe13b975eb6c3f6c770589a7a67a3a469c2102cc4d5e799f141e907c7f8 - Sigstore transparency entry: 2335222474
- Sigstore integration time:
-
Permalink:
Geeks-Trident-LLC/parseforge@8374b904c60411dd3d67135f5a175acb977f144c -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Geeks-Trident-LLC
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8374b904c60411dd3d67135f5a175acb977f144c -
Trigger Event:
release
-
Statement type: