The use case that immediately comes to mind is analysis of legal documents. Lawyers spend a lot of time going through piles of contracts during due diligence for any kind of investment or acquisition transaction, painstakingly identifying concepts that need to be addressed in various ways. LLMs are decent at doing this kind of work, but error-prone (as are humans, by the way). Having a way to visualize the results could be helpful in speeding up the review process of the LLM’s work.
You could use this to generate character graphs from big novels. Make an app that allows you to input a page number so the model only extracts characters you've encountered thus far.
In the example, if `extraction_class` can be any string, how does it know that "relationship" implies it should have attributes "character_1" and "character_2" when your example data didn't?
I’d throw a vote in the column for Unstract. Making the code AGPL is a first class move for a company that is trying to make money from the hosted version of the same software.
> For developers using local LLMs, LangExtract offers built-in support for Ollama and can be extended to other third-party APIs by updating the inference endpoints.
If you want to do structured data extraction with a wider variety of libraries I'm going to promote my LLM library and tool, which supports dozens of models for this via the plugins mechanism: https://llm.datasette.io/en/stable/schemas.html
Oly Chit! This is a BIG deal! Sub-page citations…in-context RAG…built-in HTML UI…this is like the holy grail of deterministic text extraction. I’m trying this ASAP Rocky.
I implemented a similar pattern in my LLM tool and Python library back in February: https://simonwillison.net/2025/Feb/28/llm-schemas/
My version works with Pydantic models or JSON schema in Python code, or with JSON schema or a weird DSL I invented on the command-line:
Result: https://gist.github.com/simonw/f8143836cae0f058f059e1b8fc2d9...It’s not extracting data _from_ the model it is using the model to extract structured data from the input.
The use case that immediately comes to mind is analysis of legal documents. Lawyers spend a lot of time going through piles of contracts during due diligence for any kind of investment or acquisition transaction, painstakingly identifying concepts that need to be addressed in various ways. LLMs are decent at doing this kind of work, but error-prone (as are humans, by the way). Having a way to visualize the results could be helpful in speeding up the review process of the LLM’s work.
You could use this to generate character graphs from big novels. Make an app that allows you to input a page number so the model only extracts characters you've encountered thus far.
In the example, if `extraction_class` can be any string, how does it know that "relationship" implies it should have attributes "character_1" and "character_2" when your example data didn't?
There is also Unstract(open-source) that helps process structured data extraction. Key differences:
1. Unstract has a Pre-processing layer(OCR). Which converts documents into LLM readable formats.(helps improve accuracy, and control costs)
2. Unstract also connects to your existing data sources, making it an out-of-the-box ETL tool.
https://github.com/Zipstack/unstract
I’d throw a vote in the column for Unstract. Making the code AGPL is a first class move for a company that is trying to make money from the hosted version of the same software.
Any idea how it compares with docetl?
impressive, really
Does this work with other open-source LLMs like Qwen3 or other OpenAI compatible LLM Apis?
The README says:
> For developers using local LLMs, LangExtract offers built-in support for Ollama and can be extended to other third-party APIs by updating the inference endpoints.
If you look in the code they currently have classes for Gemini and Ollama: https://github.com/google/langextract/blob/main/langextract/...
If you want to do structured data extraction with a wider variety of libraries I'm going to promote my LLM library and tool, which supports dozens of models for this via the plugins mechanism: https://llm.datasette.io/en/stable/schemas.html
Oly Chit! This is a BIG deal! Sub-page citations…in-context RAG…built-in HTML UI…this is like the holy grail of deterministic text extraction. I’m trying this ASAP Rocky.
wiring this to wikidata would be great