Four sample files stay inside Contextual AI's managed path
The notebook downloads 4 files, uploads them to a Contextual AI datastore, creates an agent, and asks financial questions. It also retrieves page images behind cited answers and sends generated responses to Contextual AI's LMUnit evaluator. Every meaningful runtime action goes through the vendor's Python client. You learn the service's object model and workflow, while storage, parsing, retrieval, generation, and evaluation remain managed.
That narrow focus matters because the parent repository looks much larger than this tutorial. Our measured checkout contained 227 files and about 1,492 lines of source, yet it occupied 145.2 MB because notebooks and media account for much of the repository. The root README catalogs agent memory, security, deployment, browser automation, and other topics. Those neighboring lessons do not turn the Contextual notebook into an integrated platform.
The 65-second install is the easy part
Our sandbox installed the tutorial in 65 seconds, pulling 35 packages and adding 37 MB on disk. The requirements cover the Contextual client, data frames, plotting, progress display, HTTP downloads, and scientific utilities. The dependency file uses minimum versions rather than exact pins, so a later clean install may resolve a different set than commit 0ed8f82 received.
A successful install does not make the example self-contained. You need a Contextual AI account and a CONTEXTUAL_API_KEY, then the notebook creates hosted resources under that account. It downloads 4 PDFs from Contextual AI's examples repository and uploads them for parsing. The live path therefore depends on network access, vendor availability, account permissions, and whatever usage terms or limits apply to that account. None of those service calls ran during dependency installation.
What happened when we ran it
Our run used commit 0ed8f82 in a fresh Debian container. Installation succeeded in 65 seconds, and the build succeeded in 17 seconds. Pip-audit reported 0 known vulnerabilities in the installed Python packages. The checked-out repository measured 145.2 MB before dependencies, while the installed packages used 37 MB. Nothing in those steps required secrets because they checked repository mechanics rather than the notebook's authenticated API flow.
Tests were skipped because the project exposed no tests script or target. Our scan also found 0 CI workflow files, no Dockerfile, and no tests directory. That is a finding about the repository, not a failed suite. It means the 17-second build gives no evidence about document ingestion, agent answers, citation retrieval, or LMUnit scoring. Those behaviors require a valid service account and live calls that were outside this sandbox run.
The 17-second build never exercises the evaluation loop
The 17-second build never calls LMUnit. The notebook separately generates a small question set, asks the hosted agent for answers, and scores each response against natural-language criteria such as accuracy, relevance, evidence, and causation. It saves results to CSV and draws polar plots. The code records returned scores and errors, but it does not define an acceptance threshold that would stop a release or fail a command.
The notebook calls those criteria unit tests. Our test method used an unprivileged container with 3 CPUs, 8 GB of RAM, Python 3.12, and no secrets. The resulting test status was skipped, not passed. A serious evaluation would still need representative private documents, expected answers, fixed criteria, a failure threshold, and repeated runs under the account and model configuration intended for use.
Section 1.3 blocks commercial use without permission
Section 1.3 of the repository's custom license prohibits commercial use without prior written permission from the author. Redistribution for non-commercial purposes also requires attribution, a repository link, and notice of changes. Contributors grant the licensor rights to use their submissions commercially, while retaining rights to their own work. This is source-available educational material, but it does not carry the commercial reuse rights associated with Apache-2.0 or MIT.
The restriction changes the practical audience more than the 145.2 MB checkout does. Reading the notebook to evaluate a vendor is straightforward. Copying its prompts, plotting code, or workflow into a paid product may require permission, even if the Contextual client has separate terms. Commercial teams should have counsel read the repository license and the service agreement before reusing material. The tutorial cannot answer that licensing question for your product.
21,459 stars reflect an active collection, not a maintained package
GitHub showed 21,459 stars and 4 open items on September 15, 2026, all 4 of them pull requests. The repository was pushed that same day, and recent merged pull requests fixed missing dependencies in other tutorials. The activity describes a popular collection maintained at the repository level, so it should not be read as proof that every notebook receives regular end-to-end verification.
The Contextual tutorial path tells a quieter story. Its latest path commit on April 22, 2026 wrapped external links for tracking, while earlier path commits changed images and imports. The repository still has 0 CI workflow files to exercise this notebook when the client or hosted API changes. An issue reporting a 403 from contextual-client was closed on August 28, but our credential-free run cannot confirm the live behavior either way.
A 65-second setup earns a trial, not adoption
The 65-second install, 17-second build, and 0 known vulnerabilities make this tutorial inexpensive to inspect. Use it when the decision is whether Contextual AI's hosted workflow fits your document use case. You will see datastore creation, ingestion, agent setup, queries, retrieval details, and vendor evaluation in one place.
For a working product, the missing test target matters more than the 35-package install. Treat the notebook as a guided vendor evaluation and write your own deployment, access controls, regression checks, and failure policy around any service you choose. If the result belongs in a commercial offering, obtain written permission before carrying repository material into that codebase.

