Adrian Lyjak 1586d01342 Fix extract-basic standalone uv sync (llama-cloud-fake path dep) (#267)
* Resolve extract-basic llama-cloud-fake from PyPI when standalone

- Drop path override in templates/extract-basic; depend on published 0.1.x
- Add templates/extract-basic to uv workspace members so monorepo still uses local editable package
- Relax root click pin to match templates (8.3.0 is broken)

* Revert adding extract-basic to uv workspace

llamactl dev validate runs uv run from the template dir, which walks up to
the workspace venv — where llama-agents-appserver isn't installed. Keep
extract-basic standalone; published llama-cloud-fake resolves fine in the
monorepo too.

* Bump llama-index-workflows floor to 2.16.0 across templates

basic, document-qa, human-in-the-loop, rag, web-scraping were lagging on
2.2-2.5; align with the rest of the fleet.

* Wire data-extraction tests with llama-cloud-fake, add to uv workspace

- clients.py installs FakeLlamaCloudServer when FAKE_LLAMA_CLOUD is set
- conftest.py flips the env var before test imports
- Real test_workflow.py exercises process_file against the fake and
  checks metadata_workflow returns the configured schema/collection
- Bump all versions in .github/templates-remotes.yml for changed templates
2026-04-22 15:08:28 -04:00
2026-01-14 11:52:59 -05:00

Data Extraction and Ingestion

This is a starter for LlamaAgents. See the LlamaAgents (llamactl) getting started guide for context on local development and deployment.

To run the application, install uv and run uvx llamactl serve.

Simple customizations

For some basic customizations, you can modify src/extraction_review/config.py

  • EXTRACTION_AGENT_NAME: Logical name for your Extraction Agent. When USE_REMOTE_EXTRACTION_SCHEMA is False, this name is used to upsert the agent with your local schema; when True, it is used to fetch an existing agent.
  • EXTRACTED_DATA_COLLECTION: The Agent Data collection name used to store extractions (namespaced by agent name and environment).
  • ExtractionSchema: When using a local schema, edit this Pydantic model to match the fields you want extracted. Prefer optional types where possible to allow for partial extractions. Note that the extraction process requires all values! so you must explicitly set values to be optional if they are not required. (pydantic default factories will not work, as pydantic only uses default values for missing fields).

The UI fetches the JSON Schema and collection name from the backend metadata workflow at runtime, and dynamically generates an editing UI based on the schema. If you customize this application to have a different extraction schema from the presentation schema rendered in the UI, for example if you customize the extraction process to add additional fields or otherwise transforma it, then you must return the presentation schema from the metadata workflow.

Complex customizations

For more complex customizations, you can edit the rest of the application. For example, you could

  • Modify the existing file processing workflow to provide additional context for the extraction process
  • Take further action based on the extracted data.
  • Add additional workflows to submit data upon approval.

Linting and type checking

Python and javascript packages contain helpful scripts to lint, format, and type check the code.

To check and fix python code:

uv run hatch run lint
uv run hatch run typecheck
uv run hatch run test
# run all at once
uv run hatch run all-fix

To check and fix javascript code, within the ui directory:

pnpm run lint
pnpm run typecheck
pnpm run test
# run all at once
pnpm run all-fix
S
Description
Llama Index Workflow Template
Readme 247 KiB
Languages
Python 48.3%
TypeScript 43.7%
CSS 7.3%
HTML 0.4%
Jinja 0.2%
Other 0.1%