Unstructured
Unstructured provides a platform and tools to ingest and process unstructured documents for Retrieval Augmented Generation (RAG) and model fine-tuning.
This 40-second video demonstrates a simple use case that Unstructured helps solve:
Product offerings
Unstructured Platform - No-code UI. Production-ready. Pay as you go.Learn more about these products:
Unstructured Platform
No-code user interface, pay-as-you-go platform to get all of your data RAG-ready.
Data is processed on Unstructured-hosted compute resources.
Try the quickstart.
Learn more.
Unstructured Serverless API services
Use scripts or code to call the Unstructured Ingest CLI or Ingest Python library, to get all of your data RAG-ready.
Unstructured Serverless API services have a Serverless pay-as-you-go edition and a Free limited edition that process data on Unstructured-hosted compute resources.
If you need to use compute resources that you host instead, there are also Azure pay-as-you-go and AWS pay-as-you-go editions; these editions process data by using the Unstructured API installed on compute resources hosted in your own Azure or AWS account.
Try the quickstart.
Learn more.
Supported file types
Unstructured supports processing of the following file types:
By file extension:
File extension |
---|
.bmp |
.csv |
.doc |
.docx |
.eml |
.epub |
.heic |
.html |
.jpeg |
.png |
.md |
.msg |
.odt |
.org |
.p7s |
.pdf |
.png |
.ppt |
.pptx |
.rst |
.rtf |
.tiff |
.txt |
.tsv |
.xls |
.xlsx |
.xml |
By file type:
Category | File types |
---|---|
CSV | .csv |
.eml , .msg , .p7s | |
EPUB | .epub |
Excel | .xls , .xlsx |
HTML | .html |
Image | .bmp , .heic , .jpeg , .png , .tiff |
Markdown | .md |
Org Mode | .org |
Open Office | .odt |
.pdf | |
Plain text | .txt |
PowerPoint | .ppt , .pptx |
reStructured Text | .rst |
Rich Text | .rtf |
TSV | .tsv |
Word | .doc , .docx |
XML | .xml |
Quickstart: Unstructured Platform
This quickstart uses a no-code, point-and-click user interface in your web browser to get all of your data RAG-ready. Data is processed on Unstructured-hosted compute resources.
You will need:
- A compatible source (input) location in cloud storage that contains your documents for Unstructured to process. See the list of supported source types.
- Compatible files in your source location. See the list of supported file types. If you do not have any files available, you can download some from the example-docs folder in the Unstructured repo on GitHub.
- A compatible destination (output) location in cloud storage for Unstructured to put the processed data. See the list of supported destination types.
Sign in to your Unstructured account
- Sign in to your Unstructured account, at https://app.unstructured.io.
- Click Google or GitHub to sign in with your Google or GitHub account. Or, enter your email address and then click Sign In.
- If you entered your email address, check your email inbox for a message from Unstructured. In that email, click the Sign In link.
- The first time you sign in, read the terms and conditions, and then click Accept.
Open your Unstructured Platform dashboard
- From your Unstructured account dashboard, in the sidebar, click API > Platform.
The API > Platform sidebar option is visible only to users who signed up for an Unstructured API services account before October 23, 2024. To get access to the Unstructured Platform on or after this date, request access, and wait for an access enablement email from Unstructured.
Set the source (input) location
- From your Unstructured Platform dashboard, in the sidebar, click Connectors.
- Click Sources.
- Click Add new.
- For Name, enter some unique name for this connector.
- In the Provider area, click the source location type that matches yours.
- Click Continue.
- Fill in the fields with the appropriate settings. Learn more.
- If a Continue button appears, click it, and fill in any additional settings fields.
- Click Save and Test.
Set the destination (output) location
- In the sidebar, click Connectors.
- Click Destinations.
- Click Add new.
- For Name, enter some unique name for this connector.
- In the Provider area, click the destination location type that matches yours.
- Click Continue.
- Fill in the fields with the appropriate settings. Learn more.
- If a Continue button appears, click it, and fill in any additional settings fields.
- Click Save and Test.
Define the workflow
-
In the sidebar, click Workflows.
-
Click New Workflow.
-
Next to Build it with me, click Create Workflow.
If a radio button appears instead of Build it with me, select it, and then click Continue. -
For Workflow Name, enter some unique name for this workflow.
-
In the Sources dropdown list, select your source location from Step 3.
-
In the Destinations dropdown list, select your destination location from Step 4.
You can select multiple source and destination locations. Files will be ingested from all of the selected source locations, and the processed data will be delivered to all of the selected destination locations. -
Click Continue.
-
In the Optimize for section, select the option to choose one of these predefined workflow settings groups:
- Basic is a good choice if you have text-only documents that have no images or tables in them.
- Advanced is a good choice if you have complex documents that have images or tables or both in them.
-
The Reprocess all box applies only to the Amazon S3 and Azure Blob Storage source connectors:
- Checking this box reprocesses all documents in the source location on every workflow run.
- Unchecking this box causes only new documents that are added to the source location since the last workflow run to be processed on future runs. Previously processed documents are not processed again, even if those documents’ contents change.
-
If you want to retry processing any documents that failed to process, check the Retry Failed Documents box.
-
Click Continue.
-
If you want this workflow to run on a schedule, in the Repeat Run dropdown list, select one of the scheduling options, and fill in the scheduling settings. Otherwise, select Don’t repeat.
-
Click Complete.
Process the documents
- If you did not choose to run this workflow on a schedule in Step 5, you can run the workflow now: on the sidebar, click Workflows.
- Next to your workflow from Step 5, click Run.
Monitor the processing job
- In the sidebar, click Jobs.
- In the list of jobs, wait for the job’s Status to change to Finished.
- Click the row for the job.
- If Overview displays Success, go to the next Step.
View the processed data
Go to your destination location to view the processed data.
Learn more about the Unstructured Platform.
Quickstart: Unstructured Serverless API
This quickstart uses your local machine, with the Unstructured Ingest Python library installed. It preprocesses source (input) files on your local machine, and it uses the Unstructured Serverless API to deliver the processed data to a destination (output) location, also on your local machine. Data is processed on Unstructured-hosted compute resources.
You will need:
- Python installed on your local machine.
- Compatible files on your local machine to be processed. See the list of supported file types. If you do not have any files available, you can download some from the example-docs folder in the Unstructured repo on GitHub.
Sign up
Sign up for a 14-day trial of the Unstructured Serverless API at https://app.unstructured.io.
Sign in
- Enter your email address and then click Sign In to receive a magic link to sign in to your personalized dashboard, or authenticate yourself with your Google or GitHub account.
- Once you authenticate with the magic link or with your Google or GitHub account, your dashboard appears.
Get your API key and API URL
- On the sidebar, click API Keys, if it is not already selected.
- To get your API key, click the copy icon in the Actions column for your API key, and then click Key Only. Store your copied API key in a secure location. Do not share it with others.
- To get your API URL, click the copy icon next to the URL next to API URL. Store your copied API URL in a secure location. Do not share it with others.
Set environment variables
- Set an environment variable named
UNSTRUCTURED_API_KEY
to the value of your Unstructured API key. - Set another environment variable named
UNSTRUCTURED_API_URL
to the value of your Unstructured API URL.
Install the Ingest Python library
Run the following command:
You might also need to install additional dependencies, depending on your needs. Learn more.
Run the code
Run the following code, replacing:
<path/to/input>
with the source (input) path to the directory on your local machine that contains the compatible files for Unstructured to process on its hosted compute resources.<path/to/output>
with the destination (output) path to the directory on your local machine that will contain the processed data that Unstructured returns from its hosted compute resources.
View the processed data
Go to your destination location to view the processed data.
Learn more about the Unstructured Serverless API.
Get in touch
If you can’t find the information you’re looking for in the documentation, or if you need help, get in touch with our Support team at support@unstructured.io, or join our Slack where our team and community can help you.
Was this page helpful?