retab 0.0.37__tar.gz → 0.0.39__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {retab-0.0.37 → retab-0.0.39}/PKG-INFO +72 -72
- {retab-0.0.37 → retab-0.0.39}/README.md +71 -71
- {retab-0.0.37 → retab-0.0.39}/pyproject.toml +1 -1
- retab-0.0.39/retab/__init__.py +4 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_resource.py +5 -5
- retab-0.0.39/retab/_utils/_model_cards/anthropic.yaml +59 -0
- retab-0.0.39/retab/_utils/_model_cards/auto.yaml +43 -0
- retab-0.0.39/retab/_utils/_model_cards/gemini.yaml +117 -0
- retab-0.0.39/retab/_utils/_model_cards/openai.yaml +301 -0
- retab-0.0.39/retab/_utils/_model_cards/xai.yaml +28 -0
- retab-0.0.39/retab/_utils/ai_models.py +138 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/chat.py +20 -20
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/responses.py +14 -14
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/usage/usage.py +5 -4
- {retab-0.0.37 → retab-0.0.39}/retab/client.py +22 -22
- {retab-0.0.37 → retab-0.0.39}/retab/resources/consensus/client.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/resources/consensus/completions.py +26 -26
- {retab-0.0.37 → retab-0.0.39}/retab/resources/consensus/completions_stream.py +27 -27
- {retab-0.0.37 → retab-0.0.39}/retab/resources/consensus/responses.py +11 -11
- {retab-0.0.37 → retab-0.0.39}/retab/resources/consensus/responses_stream.py +15 -15
- retab-0.0.39/retab/resources/documents/client.py +550 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/documents/extractions.py +39 -39
- {retab-0.0.37 → retab-0.0.39}/retab/resources/evaluations/documents.py +5 -5
- {retab-0.0.37 → retab-0.0.39}/retab/resources/evaluations/iterations.py +7 -7
- {retab-0.0.37 → retab-0.0.39}/retab/resources/jsonlUtils.py +7 -7
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/endpoints.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/links.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/logs.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/mailboxes.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/outlook.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/client.py +9 -9
- {retab-0.0.37 → retab-0.0.39}/retab/resources/usage.py +4 -4
- retab-0.0.39/retab/types/ai_models.py +173 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/mailboxes.py +1 -1
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/webhooks.py +3 -3
- {retab-0.0.37 → retab-0.0.39}/retab/types/chat.py +1 -1
- {retab-0.0.37 → retab-0.0.39}/retab/types/completions.py +10 -10
- retab-0.0.39/retab/types/documents/__init__.py +3 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/documents/create_messages.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/types/documents/extractions.py +19 -19
- retab-0.0.39/retab/types/documents/parse.py +32 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/extractions.py +4 -4
- {retab-0.0.37 → retab-0.0.39}/retab/types/logs.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/retab/types/schemas/object.py +3 -3
- {retab-0.0.37 → retab-0.0.39}/retab.egg-info/PKG-INFO +72 -72
- {retab-0.0.37 → retab-0.0.39}/retab.egg-info/SOURCES.txt +6 -0
- retab-0.0.39/setup.py +29 -0
- {retab-0.0.37 → retab-0.0.39}/tests/test_automations_links.py +2 -2
- {retab-0.0.37 → retab-0.0.39}/tests/test_automations_mailboxes.py +3 -3
- {retab-0.0.37 → retab-0.0.39}/tests/test_documents_api.py +16 -16
- {retab-0.0.37 → retab-0.0.39}/tests/test_evaluations.py +18 -18
- {retab-0.0.37 → retab-0.0.39}/tests/test_preprocessor.py +2 -2
- retab-0.0.37/retab/__init__.py +0 -4
- retab-0.0.37/retab/_utils/ai_models.py +0 -100
- retab-0.0.37/retab/resources/documents/client.py +0 -269
- retab-0.0.37/retab/types/ai_models.py +0 -645
- retab-0.0.37/retab/types/secrets/__init__.py +0 -0
- retab-0.0.37/setup.py +0 -28
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/benchmarking.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/display.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/json_schema.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/mime.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/stream_context_managers.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/_utils/usage/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/py.typed +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/consensus/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/documents/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/evals.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/evaluations/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/evaluations/client.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/files.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/finetuning.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/models.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/openai_example.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/client.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/processors/automations/tests.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/prompt_optimization.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/schemas.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/secrets/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/secrets/client.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/secrets/external_api_keys.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/resources/secrets/webhook.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/cron.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/endpoints.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/links.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/automations/outlook.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/browser_canvas.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/consensus.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/db/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/db/annotations.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/db/files.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/documents/correct_orientation.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/evals.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/evaluations/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/evaluations/documents.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/evaluations/iterations.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/evaluations/model.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/events.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/inference_settings.py +0 -0
- {retab-0.0.37/retab/types/documents → retab-0.0.39/retab/types/jobs}/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/jobs/base.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/jobs/batch_annotation.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/jobs/evaluation.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/jobs/finetune.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/jobs/prompt_optimization.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/jobs/webcrawl.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/metrics.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/mime.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/modalities.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/pagination.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/predictions.py +0 -0
- {retab-0.0.37/retab/types/jobs → retab-0.0.39/retab/types/schemas}/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/schemas/enhance.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/schemas/evaluate.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/schemas/generate.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/schemas/layout.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/schemas/templates.py +0 -0
- {retab-0.0.37/retab/types/schemas → retab-0.0.39/retab/types/secrets}/__init__.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/secrets/external_api_keys.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab/types/standards.py +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab.egg-info/dependency_links.txt +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab.egg-info/requires.txt +0 -0
- {retab-0.0.37 → retab-0.0.39}/retab.egg-info/top_level.txt +0 -0
- {retab-0.0.37 → retab-0.0.39}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: retab
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.39
|
4
4
|
Summary: Retab official python library
|
5
5
|
Home-page: https://github.com/Retab-dev/retab
|
6
6
|
Author: Retab
|
@@ -41,18 +41,18 @@ Requires-Dist: tiktoken
|
|
41
41
|
Requires-Dist: truststore
|
42
42
|
Requires-Dist: ruff
|
43
43
|
|
44
|
-
#
|
44
|
+
# Retab
|
45
45
|
|
46
46
|
<div align="center" style="margin-bottom: 1em;">
|
47
47
|
|
48
|
-
<img src="https://raw.githubusercontent.com/
|
48
|
+
<img src="https://raw.githubusercontent.com/Retab/retab/refs/heads/main/assets/retab-logo.png" alt="Retab Logo" width="150">
|
49
49
|
|
50
50
|
|
51
51
|
*The AI Automation Platform*
|
52
52
|
|
53
|
-
Made with love by the team at [
|
53
|
+
Made with love by the team at [Retab](https://retab.dev) 🤍.
|
54
54
|
|
55
|
-
[Our Website](https://
|
55
|
+
[Our Website](https://retab.dev) | [Documentation](https://docs.retab.dev/get-started/introduction) | [Discord](https://discord.com/invite/vc5tWRPqag) | [Twitter](https://x.com/retabdev)
|
56
56
|
|
57
57
|
|
58
58
|
</div>
|
@@ -61,16 +61,16 @@ Made with love by the team at [UiForm](https://uiform.com) 🤍.
|
|
61
61
|
|
62
62
|
## How It Works
|
63
63
|
|
64
|
-
|
64
|
+
Retab allows you to easily create document processing automations. Here is the general workflow:
|
65
65
|
|
66
66
|
```mermaid
|
67
67
|
sequenceDiagram
|
68
|
-
User ->>
|
69
|
-
|
70
|
-
|
71
|
-
AI Provider -->>
|
72
|
-
|
73
|
-
|
68
|
+
User ->> Retab: File Upload
|
69
|
+
Retab -->> Retab: Preprocessing
|
70
|
+
Retab ->> AI Provider: Request on your behalf
|
71
|
+
AI Provider -->> Retab: Structured Generation
|
72
|
+
Retab ->> Webhook: Send result
|
73
|
+
Retab ->> User: Send Confirmation
|
74
74
|
```
|
75
75
|
|
76
76
|
---
|
@@ -95,17 +95,17 @@ You come with your own API key from your favorite AI provider, and we handle the
|
|
95
95
|
We currently support [OpenAI](https://platform.openai.com/docs/overview), [Anthropic](https://www.anthropic.com/api), [Gemini](https://aistudio.google.com/prompts/new_chat) and [xAI](https://x.ai/api) models.
|
96
96
|
|
97
97
|
<p align="center">
|
98
|
-
<img src="https://raw.githubusercontent.com/
|
98
|
+
<img src="https://raw.githubusercontent.com/Retab/retab/refs/heads/main/assets/supported_models.png" alt="Supported Models" width="600">
|
99
99
|
</p>
|
100
100
|
|
101
101
|
---
|
102
102
|
|
103
103
|
## Quickstart
|
104
104
|
|
105
|
-
Explore our [Playground](https://www.
|
105
|
+
Explore our [Playground](https://www.retab.dev/dashboard/playground) and create your first automations easily 🚀!
|
106
106
|
|
107
107
|
<p align="center">
|
108
|
-
<img src="https://raw.githubusercontent.com/
|
108
|
+
<img src="https://raw.githubusercontent.com/Retab/retab/refs/heads/main/assets/retab-playground.png" alt="Retab Playground" width="600">
|
109
109
|
</p>
|
110
110
|
|
111
111
|
---
|
@@ -114,10 +114,10 @@ Explore our [Playground](https://www.uiform.com/dashboard/playground) and create
|
|
114
114
|
|
115
115
|
## Dev Mode 🔧
|
116
116
|
|
117
|
-
You need more control? You can access the [Documentation](https://docs.
|
117
|
+
You need more control? You can access the [Documentation](https://docs.retab.dev/get-started/introduction) of our **Python SDK**.
|
118
118
|
|
119
119
|
1. **Setup the Python SDK**
|
120
|
-
> Install the
|
120
|
+
> Install the Retab Python SDK and configure your API keys to start processing documents with your preferred AI provider.
|
121
121
|
|
122
122
|
2. **Create your JSON schema**
|
123
123
|
> Define the structure of the data you want to extract from your documents using our schema format with custom prompting capabilities.
|
@@ -133,32 +133,32 @@ You need more control? You can access the [Documentation](https://docs.uiform.co
|
|
133
133
|
|
134
134
|
### Step 1: Setup of the Python SDK
|
135
135
|
|
136
|
-
To get started, install the `
|
136
|
+
To get started, install the `retab` package using pip:
|
137
137
|
|
138
138
|
```bash
|
139
|
-
pip install
|
139
|
+
pip install retab
|
140
140
|
```
|
141
141
|
|
142
|
-
Then, [create your API key on
|
142
|
+
Then, [create your API key on retab.dev](https://www.retab.dev).
|
143
143
|
|
144
144
|
Create another API key by you favorite API key provider.
|
145
145
|
|
146
146
|
**Reminder**: We currently support [OpenAI](https://platform.openai.com/docs/overview), [Anthropic](https://www.anthropic.com/api), [Gemini](https://aistudio.google.com/prompts/new_chat) and [xAI](https://x.ai/api) models.
|
147
147
|
|
148
|
-
As we will use your API key to make requests to OpenAI on your behalf within an automation, you need to store your API key in the
|
148
|
+
As we will use your API key to make requests to OpenAI on your behalf within an automation, you need to store your API key in the Retab secrets manager:
|
149
149
|
|
150
150
|
```
|
151
151
|
OPENAI_API_KEY=sk-xxxxxxxxx
|
152
|
-
|
152
|
+
RETAB_API_KEY=sk_retab_xxxxxxxxx
|
153
153
|
```
|
154
154
|
|
155
155
|
```bash
|
156
|
-
import
|
156
|
+
import retab
|
157
157
|
import os
|
158
158
|
|
159
|
-
|
159
|
+
reclient = retab.Retab()
|
160
160
|
|
161
|
-
|
161
|
+
reclient.secrets.external_api_keys.create(
|
162
162
|
provider="OpenAI",
|
163
163
|
api_key=os.getenv("OPENAI_API_KEY")
|
164
164
|
)
|
@@ -167,14 +167,14 @@ uiclient.secrets.external_api_keys.create(
|
|
167
167
|
#### Process your first document with the create_messages method:
|
168
168
|
|
169
169
|
```bash
|
170
|
-
from
|
170
|
+
from retab import Retab
|
171
171
|
from openai import OpenAI
|
172
172
|
|
173
|
-
# Initialize
|
174
|
-
|
173
|
+
# Initialize Retab client
|
174
|
+
reclient = Retab()
|
175
175
|
|
176
176
|
# Convert any document into LLM-ready format
|
177
|
-
doc_msg =
|
177
|
+
doc_msg = reclient.documents.create_messages(
|
178
178
|
document = "invoice.pdf" # Works with PDFs, Excel, emails, etc.
|
179
179
|
)
|
180
180
|
|
@@ -196,10 +196,10 @@ We use a standard JSON Schema with custom annotations (`X-SystemPrompt`, `X-Fiel
|
|
196
196
|
|
197
197
|
These annotations help guide the LLM’s behavior and improve extraction accuracy.
|
198
198
|
|
199
|
-
You can learn more about these in our [JSON Schema documentation](https://docs.
|
199
|
+
You can learn more about these in our [JSON Schema documentation](https://docs.retab.dev/get-started/prompting-with-the-JSON-schema).
|
200
200
|
|
201
201
|
```bash
|
202
|
-
from
|
202
|
+
from retab import Retab
|
203
203
|
from openai import OpenAI
|
204
204
|
from pydantic import BaseModel, Field, ConfigDict
|
205
205
|
|
@@ -225,11 +225,11 @@ class Invoice(BaseModel):
|
|
225
225
|
)
|
226
226
|
|
227
227
|
# Process document and extract data
|
228
|
-
|
229
|
-
doc_msg =
|
228
|
+
reclient = Retab()
|
229
|
+
doc_msg = reclient.documents.create_messages(
|
230
230
|
document = "invoice.pdf"
|
231
231
|
)
|
232
|
-
schema_obj =
|
232
|
+
schema_obj = reclient.schemas.load(
|
233
233
|
pydantic_model = Invoice
|
234
234
|
)
|
235
235
|
|
@@ -244,7 +244,7 @@ completion = client.beta.chat.completions.parse(
|
|
244
244
|
print("Extracted data:", completion.choices[0].message.parsed)
|
245
245
|
|
246
246
|
# Validate the response against the original schema if you want to remove the reasoning fields
|
247
|
-
from
|
247
|
+
from retab._utils.json_schema import filter_auxiliary_fields_json
|
248
248
|
assert completion.choices[0].message.content is not None
|
249
249
|
extraction = schema_obj.pydantic_model.model_validate(
|
250
250
|
filter_auxiliary_fields_json(completion.choices[0].message.content, schema_obj.pydantic_model)
|
@@ -262,7 +262,7 @@ Below is an example of a simple FastAPI application with a webhook endpoint:
|
|
262
262
|
```bash
|
263
263
|
from fastapi import FastAPI, Request
|
264
264
|
from fastapi.responses import JSONResponse
|
265
|
-
from
|
265
|
+
from retab.types.automations.webhooks import WebhookRequest
|
266
266
|
from pydantic import BaseModel, Field, ConfigDict
|
267
267
|
|
268
268
|
app = FastAPI()
|
@@ -293,53 +293,53 @@ curl -X POST "http://localhost:8000/webhook" \
|
|
293
293
|
|
294
294
|
### Step 4: Create your automation
|
295
295
|
|
296
|
-
Finally, integrate the webhook with your automation system using the `
|
296
|
+
Finally, integrate the webhook with your automation system using the `retab` client.
|
297
297
|
|
298
298
|
This example demonstrates how to create an automation that triggers the webhook when a matching event occurs:
|
299
299
|
|
300
300
|
```bash
|
301
|
-
from
|
301
|
+
from retab import Retab
|
302
302
|
|
303
|
-
# Initialize the
|
304
|
-
|
303
|
+
# Initialize the Retab client
|
304
|
+
reclient = Retab()
|
305
305
|
|
306
306
|
# Create an automation that uses the webhook URL from Step 2
|
307
|
-
automation =
|
308
|
-
email="invoices@mailbox.
|
307
|
+
automation = reclient.processors.automations.mailboxes.create(
|
308
|
+
email="invoices@mailbox.retab.dev",
|
309
309
|
model="gpt-4.1-nano",
|
310
310
|
json_schema=Invoice.model_json_schema(), # use the pydantic model to create the json schema
|
311
311
|
webhook_url="https://your-server.com/webhook", # Replace with your actual webhook URL
|
312
312
|
)
|
313
313
|
```
|
314
314
|
|
315
|
-
At any email sent to `invoices@mailbox.
|
315
|
+
At any email sent to `invoices@mailbox.retab.dev`, the automation will send a POST request to your FastAPI webhook endpoint, where the payload can be processed.
|
316
316
|
|
317
|
-
You can see the automation you just created on your [dashboard](https://www.
|
317
|
+
You can see the automation you just created on your [dashboard](https://www.retab.dev/dashboard/processors)!
|
318
318
|
|
319
319
|
### Step 5: Test your automation
|
320
320
|
|
321
321
|
Finally, you can test the automation rapidly with the test functions of the sdk:
|
322
322
|
|
323
323
|
```bash
|
324
|
-
from
|
324
|
+
from retab import Retab
|
325
325
|
|
326
|
-
# Initialize the
|
327
|
-
|
326
|
+
# Initialize the Retab client
|
327
|
+
reclient = Retab()
|
328
328
|
|
329
329
|
# If you just want to send a test request to your webhook
|
330
|
-
log =
|
331
|
-
email="test-mailbox-local@devmail.
|
330
|
+
log = reclient.processors.automations.mailboxes.tests.webhook(
|
331
|
+
email="test-mailbox-local@devmail.retab.dev",
|
332
332
|
)
|
333
333
|
|
334
334
|
# If you want to test the file processing logic:
|
335
|
-
log =
|
336
|
-
email="test-mailbox-local@devmail.
|
335
|
+
log = reclient.processors.automations.mailboxes.tests.process(
|
336
|
+
email="test-mailbox-local@devmail.retab.dev",
|
337
337
|
document="your_invoice_email.eml"
|
338
338
|
)
|
339
339
|
|
340
340
|
# If you want to test a full email forwarding
|
341
|
-
log =
|
342
|
-
email="
|
341
|
+
log = reclient.processors.automations.mailboxes.tests.forward(
|
342
|
+
email="retab-quickstart@mailbox.retab.dev",
|
343
343
|
document="your_invoice_email.eml"
|
344
344
|
)
|
345
345
|
```
|
@@ -347,33 +347,33 @@ log = uiclient.processors.automations.mailboxes.tests.forward(
|
|
347
347
|
> 💡 **Tip:** You can also test your webhook locally by overriding the webhook URL set in the automation.
|
348
348
|
|
349
349
|
```bash
|
350
|
-
from
|
350
|
+
from retab import Retab
|
351
351
|
|
352
|
-
|
352
|
+
reclient = Retab()
|
353
353
|
|
354
354
|
# If you just want to send a test request to your webhook
|
355
|
-
log =
|
356
|
-
email="test-mailbox-local@devmail.
|
355
|
+
log = reclient.processors.automations.mailboxes.tests.webhook(
|
356
|
+
email="test-mailbox-local@devmail.retab.dev",
|
357
357
|
webhook_url="http://localhost:8000/webhook" # If you want to try your webhook locally, you can override the webhook url set in the automation
|
358
358
|
)
|
359
359
|
```
|
360
360
|
|
361
361
|
And that's it! You can start processing documents at scale!
|
362
|
-
You have 1000 free requests to get started, and you can [subscribe](https://www.
|
362
|
+
You have 1000 free requests to get started, and you can [subscribe](https://www.retab.dev) to the pro plan to get more.
|
363
363
|
|
364
364
|
But this minimalistic example is just the beginning.
|
365
365
|
|
366
|
-
Continue reading to learn more about how to use
|
366
|
+
Continue reading to learn more about how to use Retab **to its full potential** 🔥.
|
367
367
|
|
368
368
|
---
|
369
369
|
|
370
370
|
## Go further
|
371
371
|
|
372
|
-
- [Prompt Engineering Guide](https://docs.
|
373
|
-
- [General Concepts](https://docs.
|
374
|
-
- [Consensus](https://docs.
|
375
|
-
- [Create mailboxes](https://docs.
|
376
|
-
- [Create links](https://docs.
|
372
|
+
- [Prompt Engineering Guide](https://docs.retab.dev/get-started/prompting-with-the-json-schema)
|
373
|
+
- [General Concepts](https://docs.retab.dev/get-started/General-Concepts)
|
374
|
+
- [Consensus](https://docs.retab.dev/SDK/General-Concepts#consensus)
|
375
|
+
- [Create mailboxes](https://docs.retab.dev/SDK/Automations#mailbox)
|
376
|
+
- [Create links](https://docs.retab.dev/SDK/Automations#link)
|
377
377
|
- Finetuning (coming soon)
|
378
378
|
- Prompt optimization (coming soon)
|
379
379
|
- Data-Labelling with our AI-powered annotator (coming soon)
|
@@ -382,12 +382,12 @@ Continue reading to learn more about how to use UiForm **to its full potential**
|
|
382
382
|
|
383
383
|
## Jupyter Notebooks
|
384
384
|
|
385
|
-
You can view minimal notebooks that demonstrate how to use
|
385
|
+
You can view minimal notebooks that demonstrate how to use Retab to process documents:
|
386
386
|
|
387
|
-
- [Mailbox creation quickstart](https://github.com/
|
388
|
-
- [Upload Links creation quickstart](https://github.com/
|
389
|
-
- [Document Extractions quickstart](https://github.com/
|
390
|
-
- [Document Extractions quickstart - Async](https://github.com/
|
387
|
+
- [Mailbox creation quickstart](https://github.com/Retab-dev/retab/blob/main/notebooks/mailboxes_quickstart.ipynb)
|
388
|
+
- [Upload Links creation quickstart](https://github.com/Retab-dev/retab/blob/main/notebooks/links_quickstart.ipynb)
|
389
|
+
- [Document Extractions quickstart](https://github.com/Retab-dev/retab/blob/main/notebooks/Quickstart.ipynb)
|
390
|
+
- [Document Extractions quickstart - Async](https://github.com/Retab-dev/retab/blob/main/notebooks/Quickstart-Async.ipynb)
|
391
391
|
|
392
392
|
---
|
393
393
|
|
@@ -395,12 +395,12 @@ You can view minimal notebooks that demonstrate how to use UiForm to process doc
|
|
395
395
|
|
396
396
|
Let's create the future of document processing together!
|
397
397
|
|
398
|
-
Join our [discord community](https://discord.com/invite/vc5tWRPqag) to share tips, discuss best practices, and showcase what you build. Or just [tweet](https://x.com/
|
398
|
+
Join our [discord community](https://discord.com/invite/vc5tWRPqag) to share tips, discuss best practices, and showcase what you build. Or just [tweet](https://x.com/retabdev) at us.
|
399
399
|
|
400
|
-
We can't wait to see how you'll use
|
400
|
+
We can't wait to see how you'll use Retab.
|
401
401
|
|
402
402
|
- [Discord](https://discord.com/invite/vc5tWRPqag)
|
403
|
-
- [Twitter](https://x.com/
|
403
|
+
- [Twitter](https://x.com/retabdev)
|
404
404
|
|
405
405
|
|
406
406
|
## Roadmap
|