The Azure Content Understanding Toolkit is a set of tools that ease integration with Azure Content Understanding, together with experimental tools that capture best practices for building on Content Understanding.
| Tool | Location | Description |
|---|---|---|
| CU CLI | cu-cli/ |
Standalone cu frontend for analyzing files, creating and testing custom analyzers, managing resource profiles and model defaults, and generating Azure infrastructure. Install with pip install cu-cli. |
| Azure CLI extension (preview) | content-understanding |
Native az cu frontend over the same shared operations, with Azure CLI authentication, output, query, subscription, and extension-update conventions. |
| Prebuilt schema definitions | prebuilt-schema/ |
Browse domain-specific prebuilt analyzer schemas by API version, or use the single-file analyzer index. |
| Dynamic HITL | dynamic_hitl/ |
Turn Content Understanding confidence scores into a per-field human-review policy: calibrate cutoffs on your own extractions, then route only the values that need a person. Includes a Python calibration lab and an interactive explainer site. |
More tools will be added over time.
New to CU? Start here. Azure Content Understanding is a multimodal AI service in Microsoft Foundry that turns unstructured files — documents, images, audio, and video — into structured, machine-readable output. See What is Content Understanding?.
Key concepts:
- Analyzer — the unit that processes a file. Use a prebuilt analyzer (e.g.
prebuilt-layoutfor markdown/OCR,prebuilt-invoicefor invoice fields) or author a custom analyzer with your own field schema. See Prebuilt analyzers and Create a custom analyzer. - Field schema — the JSON that defines what a custom analyzer extracts (field name, type, and a description that guides the model).
- Classifier — an analyzer that categorizes (and optionally routes/splits) content by category. See Classifier overview.
- Modalities — document, image, audio, and video. See the Document, Image, Audio, and Video overviews.
- Model deployments & defaults — custom and LLM-backed analyzers use chat + embedding model deployments on your Foundry resource. See Models and deployments.
- Foundry resource & endpoint — CU runs on a Microsoft Foundry resource; its endpoint has the form
https://<resource>.services.ai.azure.com/.
Why teams use CU:
- Advanced layout for complex, multi-column, nested-table documents, plus industry-leading OCR.
- Grounded field extraction with source spans and confidence — not just raw text.
- One consistent API across documents, images, audio, and video.
- LLM-friendly markdown output that drops straight into RAG and agent pipelines.
Real-world uses:
- Retrieval-augmented generation (RAG) — preprocess documents into clean markdown/fields for indexing. See Build a RAG solution.
- Document process automation (RPA) — extract structured fields to drive downstream automation. See Build an RPA solution.
- No-code exploration — try analyzers first in Content Understanding Studio.
Full docs: aka.ms/cu-doc.
See CONTRIBUTING.md for repository-wide contribution and Contributor License Agreement (CLA) guidance. Each tool may also provide development instructions in its own directory.
See SECURITY.md for how to report security issues.
See SUPPORT.md for toolkit support channels and the distinction between GitHub issues and Azure service support.
This project follows the Microsoft Open Source Code of Conduct.
The CU CLI adds cu-cli/<version> to the standard Azure SDK User-Agent
header on requests to the Azure Content Understanding service. Microsoft uses
this identifier to understand CU CLI adoption. CU CLI does not add customer
content or separate usage and analytics events to this telemetry.
To remove the cu-cli/<version> identifier, set CU_TELEMETRY=off (also
accepts 0, false, or no) before running CU CLI. The Azure SDK continues to
send its standard User-Agent as part of service requests.
Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-parties' policies.
Licensed under the MIT License.