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.
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.
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.
For complex business documents -- one approach was to use Named Entity Recognition to identify all entities and use that to build a knowledge graph to serve as a complementary repository of knowledge (in addition to the vector embeddings of semantic chunks) to aid RAG workflows.
Does this proposed approach complement this or supercede the need for NER / Knowledge Graph. Just wondering aloud. Appreciate any insights here.
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?
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.
> 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
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