Introduction
UiForm solves two major challenges in document processing with LLMs:
- Universal Document Processing: Convert any file type (PDFs, Excel, emails, etc.) into LLM-ready format without writing custom parsers
- Structured, Schema-driven Extraction: Get consistent, reliable outputs using schema-based prompt engineering
We see it as building Stripe for document processing.
Our goal is to make the process of analyzing documents and unstructured data as easy and transparent as possible.
Many people haven’t yet realized how powerful LLMs have become at document processing tasks - we’re here to help unlock these capabilities.
We currently support OpenAI, Anthropic, Gemini and xAI models.
You come with your own API key from your favorite AI provider, and we handle the rest.
Quickstart
Setup the Python SDK
Process your first document
Extract structured data
Setup the Python SDK
To get started, install the uiform
package using pip:
Then, create your API key on uiform.com and populate your env
variables:
Process your first document
UiForm handles all the document preprocessing - no custom parsers needed. Let’s break this down into steps:
- First, initialize the UiForm client and pre-process your document:
- The
doc_msg
object contains the pre-processed document in a format ready for LLMs. Here’s what it looks like:
It also contains other class methods like items
, openai_messages
, anthropic_messages
, gemini_messages
, xai_messages
… See Document Methods for more details.
- Now you can use this pre-processed document with your preferred LLM provider:
Extract structured data with schema-based prompt engineering
We use a standard JSON Schema with custom annotations (X-SystemPrompt
, X-FieldPrompt
, and X-ReasoningPrompt
) as a prompt-engineering framework for the extraction process.
These annotations help guide the LLM’s behavior and improve extraction accuracy. You can learn more about these in our JSON Schema documentation.
That’s it! You can start processing documents at scale. You have 1000 free requests to get started, and you can subscribe to the pro plan to get more.
But this minimalistic example is just the beginning. Continue reading to learn more about how to use UiForm to its full potential.
Go further
Now that you understand the basics, learn how to:
- Make any file LLM-ready - Stop writing custom parsers
- Create reliable prompts with JSON Schema - Get consistent, structured outputs
- General Concepts
- Finetuning (coming soon)
- Prompt optimization (coming soon)
- Data-Labelling with our AI-powered annotator (coming soon)
Jupyter Notebooks
You can view minimal notebooks that demonstrate how to use UiForm to process documents:
Community
Let’s create the future of document processing together!
Join our discord community to share tips, discuss best practices, and showcase what you build. Or just tweet at us.
We can’t wait to see how you’ll use UiForm.
Roadmap
We share our roadmap publicly on Github
Among the features we’re working on:
[ ] Node.js SDK [ ] Finetuning [ ] Prompt optimization [ ] Data-Labelling platform