@vertesia/ui 1.5.0-dev.20260826.064249Z → 1.5.0-dev.20260901.033115Z
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.
- package/lib/core/components/FormItem.d.ts.map +1 -1
- package/lib/core/components/FormItem.js +2 -3
- package/lib/core/components/FormItem.js.map +1 -1
- package/lib/core/components/InfoTip.d.ts +20 -0
- package/lib/core/components/InfoTip.d.ts.map +1 -0
- package/lib/core/components/InfoTip.js +18 -0
- package/lib/core/components/InfoTip.js.map +1 -0
- package/lib/core/components/index.d.ts +1 -0
- package/lib/core/components/index.d.ts.map +1 -1
- package/lib/core/components/index.js +1 -0
- package/lib/core/components/index.js.map +1 -1
- package/lib/core/components/shadcn/Panel.d.ts.map +1 -1
- package/lib/core/components/shadcn/Panel.js +3 -3
- package/lib/core/components/shadcn/Panel.js.map +1 -1
- package/lib/features/store/objects/search/DocumentSearchContext.d.ts +15 -0
- package/lib/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
- package/lib/features/store/objects/search/DocumentSearchContext.js +45 -2
- package/lib/features/store/objects/search/DocumentSearchContext.js.map +1 -1
- package/lib/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
- package/lib/features/store/objects/selection/actions/DeleteObjectsAction.js +5 -0
- package/lib/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
- package/lib/features/store/types/IntakePolicyEditor.d.ts.map +1 -1
- package/lib/features/store/types/IntakePolicyEditor.js +1 -1
- package/lib/features/store/types/IntakePolicyEditor.js.map +1 -1
- package/lib/features/store/types/IntakePolicyForm.d.ts.map +1 -1
- package/lib/features/store/types/IntakePolicyForm.js +15 -15
- package/lib/features/store/types/IntakePolicyForm.js.map +1 -1
- package/lib/features/store/types/TypeRegistry.d.ts +10 -0
- package/lib/features/store/types/TypeRegistry.d.ts.map +1 -1
- package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts +10 -0
- package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -1
- package/lib/i18n/locales/ar.json +35 -0
- package/lib/i18n/locales/de.json +35 -0
- package/lib/i18n/locales/en.json +35 -0
- package/lib/i18n/locales/es.json +35 -0
- package/lib/i18n/locales/fr.json +35 -0
- package/lib/i18n/locales/it.json +35 -0
- package/lib/i18n/locales/ja.json +35 -0
- package/lib/i18n/locales/ko.json +35 -0
- package/lib/i18n/locales/pt.json +35 -0
- package/lib/i18n/locales/ru.json +35 -0
- package/lib/i18n/locales/tr.json +35 -0
- package/lib/i18n/locales/zh-TW.json +35 -0
- package/lib/i18n/locales/zh.json +35 -0
- package/lib/router/RouteComponent.d.ts +8 -0
- package/lib/router/RouteComponent.d.ts.map +1 -1
- package/lib/router/RouteComponent.js +41 -9
- package/lib/router/RouteComponent.js.map +1 -1
- package/lib/session/UserSessionProvider.d.ts.map +1 -1
- package/lib/session/UserSessionProvider.js +12 -13
- package/lib/session/UserSessionProvider.js.map +1 -1
- package/lib/session/auth/domainRouting.d.ts +11 -0
- package/lib/session/auth/domainRouting.d.ts.map +1 -1
- package/lib/session/auth/domainRouting.js +13 -0
- package/lib/session/auth/domainRouting.js.map +1 -1
- package/lib/session/useUXTracking.d.ts.map +1 -1
- package/lib/session/useUXTracking.js +6 -1
- package/lib/session/useUXTracking.js.map +1 -1
- package/lib/vertesia-ui-core.js +199 -4
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +975 -33
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-i18n.BJBGsq-8.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.BJBGsq-8.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.BY5YG5cX.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.BY5YG5cX.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.Bd5_1BXO.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.Bd5_1BXO.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.Bvwej2HH.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.Bvwej2HH.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.CMT3f4gf.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.CMT3f4gf.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.D56DNPJW.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.D56DNPJW.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DDzKLNx6.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DDzKLNx6.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.D_Am1LpF.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.D_Am1LpF.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DrZizgGV.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DrZizgGV.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DwHsq86z.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DwHsq86z.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.PLpo0Bbz.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.PLpo0Bbz.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.js +2 -38
- package/lib/vertesia-ui-i18n.js.map +1 -1
- package/lib/vertesia-ui-i18n.xVbXALqz.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.xVbXALqz.chunk.js.map +1 -0
- package/lib/vertesia-ui-layout.js +80 -1
- package/lib/vertesia-ui-layout.js.map +1 -1
- package/lib/vertesia-ui-rich-text.js +278 -4
- package/lib/vertesia-ui-rich-text.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +118 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +336 -20
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/package.json +7 -7
- package/src/core/components/FormItem.tsx +2 -5
- package/src/core/components/InfoTip.test.tsx +33 -0
- package/src/core/components/InfoTip.tsx +32 -0
- package/src/core/components/index.ts +1 -0
- package/src/core/components/shadcn/Panel.tsx +3 -7
- package/src/features/store/objects/search/DocumentSearchContext.test.ts +45 -0
- package/src/features/store/objects/search/DocumentSearchContext.ts +50 -2
- package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +5 -0
- package/src/features/store/types/IntakePolicyEditor.tsx +3 -4
- package/src/features/store/types/IntakePolicyForm.tsx +120 -20
- package/src/i18n/locales/ar.json +35 -0
- package/src/i18n/locales/de.json +35 -0
- package/src/i18n/locales/en.json +35 -0
- package/src/i18n/locales/es.json +35 -0
- package/src/i18n/locales/fr.json +35 -0
- package/src/i18n/locales/it.json +35 -0
- package/src/i18n/locales/ja.json +35 -0
- package/src/i18n/locales/ko.json +35 -0
- package/src/i18n/locales/pt.json +35 -0
- package/src/i18n/locales/ru.json +35 -0
- package/src/i18n/locales/tr.json +35 -0
- package/src/i18n/locales/zh-TW.json +35 -0
- package/src/i18n/locales/zh.json +35 -0
- package/src/router/RouteComponent.test.tsx +139 -0
- package/src/router/RouteComponent.tsx +54 -9
- package/src/session/UserSessionProvider.tsx +12 -11
- package/src/session/auth/domainRouting.test.ts +24 -1
- package/src/session/auth/domainRouting.ts +29 -0
- package/src/session/useUXTracking.tsx +6 -1
|
@@ -4,7 +4,17 @@ import type {
|
|
|
4
4
|
IntakeVisionDetail,
|
|
5
5
|
InteractionExecutionConfiguration,
|
|
6
6
|
} from '@vertesia/common';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
Button,
|
|
9
|
+
FormItem,
|
|
10
|
+
InfoTip,
|
|
11
|
+
Input,
|
|
12
|
+
NumberInput,
|
|
13
|
+
SelectBox,
|
|
14
|
+
TagsInput,
|
|
15
|
+
Textarea,
|
|
16
|
+
VTooltip,
|
|
17
|
+
} from '@vertesia/ui/core';
|
|
8
18
|
import { useUITranslation } from '@vertesia/ui/i18n';
|
|
9
19
|
import { Plus, Trash2 } from 'lucide-react';
|
|
10
20
|
import type { ReactNode } from 'react';
|
|
@@ -38,7 +48,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
38
48
|
if (section === 'overview') {
|
|
39
49
|
return (
|
|
40
50
|
<FormSurface>
|
|
41
|
-
<FormSection
|
|
51
|
+
<FormSection
|
|
52
|
+
title={t('intakePolicy.section.classification')}
|
|
53
|
+
description={t('intakePolicy.help.section.classification')}
|
|
54
|
+
>
|
|
42
55
|
<div className="grid gap-4 md:grid-cols-2">
|
|
43
56
|
<SelectField
|
|
44
57
|
label={t('intakePolicy.field.mode')}
|
|
@@ -65,6 +78,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
65
78
|
/>
|
|
66
79
|
<TextAreaField
|
|
67
80
|
label={t('intakePolicy.field.distinguishFrom')}
|
|
81
|
+
description={t('intakePolicy.help.distinguishFrom')}
|
|
68
82
|
value={policy.identification?.distinguish_from}
|
|
69
83
|
onChange={(value) => setValue(['identification', 'distinguish_from'], value)}
|
|
70
84
|
readonly={readonly}
|
|
@@ -86,7 +100,11 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
86
100
|
</FormItem>
|
|
87
101
|
</FormSection>
|
|
88
102
|
|
|
89
|
-
<FormSection
|
|
103
|
+
<FormSection
|
|
104
|
+
title={t('intakePolicy.section.locate')}
|
|
105
|
+
description={t('intakePolicy.help.section.locate')}
|
|
106
|
+
last
|
|
107
|
+
>
|
|
90
108
|
<TextAreaField
|
|
91
109
|
label={t('intakePolicy.field.locateInstructions')}
|
|
92
110
|
description={t('intakePolicy.help.locateInstructions')}
|
|
@@ -99,6 +117,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
99
117
|
<div className="grid gap-4 md:grid-cols-2">
|
|
100
118
|
<SelectField
|
|
101
119
|
label={t('intakePolicy.field.contactSheetDetail')}
|
|
120
|
+
description={t('intakePolicy.help.contactSheetDetail')}
|
|
102
121
|
value={policy.locate?.detail}
|
|
103
122
|
options={[
|
|
104
123
|
{ value: 8, label: t('intakePolicy.option.pagesPerSheet', { count: 8 }) },
|
|
@@ -109,6 +128,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
109
128
|
/>
|
|
110
129
|
<NumberField
|
|
111
130
|
label={t('intakePolicy.field.locateMinPages')}
|
|
131
|
+
description={t('intakePolicy.help.locateMinPages')}
|
|
112
132
|
value={policy.locate?.min_pages}
|
|
113
133
|
min={0}
|
|
114
134
|
onChange={(value) => setValue(['locate', 'min_pages'], value)}
|
|
@@ -123,7 +143,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
123
143
|
if (section === 'conversion') {
|
|
124
144
|
return (
|
|
125
145
|
<FormSurface>
|
|
126
|
-
<FormSection
|
|
146
|
+
<FormSection
|
|
147
|
+
title={t('intakePolicy.section.conversion')}
|
|
148
|
+
description={t('intakePolicy.help.section.conversion')}
|
|
149
|
+
>
|
|
127
150
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-4">
|
|
128
151
|
<TriStateField
|
|
129
152
|
label={t('intakePolicy.field.enabled')}
|
|
@@ -133,6 +156,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
133
156
|
/>
|
|
134
157
|
<SelectField
|
|
135
158
|
label={t('intakePolicy.field.method')}
|
|
159
|
+
description={t('intakePolicy.help.method')}
|
|
136
160
|
value={policy.text_conversion?.method}
|
|
137
161
|
options={options(t, ['auto', 'basic', 'llm', 'custom'])}
|
|
138
162
|
onChange={(value) => setValue(['text_conversion', 'method'], value)}
|
|
@@ -147,6 +171,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
147
171
|
/>
|
|
148
172
|
<SelectField
|
|
149
173
|
label={t('intakePolicy.field.pageScope')}
|
|
174
|
+
description={t('intakePolicy.help.pageScope')}
|
|
150
175
|
value={policy.text_conversion?.scope}
|
|
151
176
|
options={options(t, ['all', 'located'])}
|
|
152
177
|
onChange={(value) => setValue(['text_conversion', 'scope'], value)}
|
|
@@ -154,6 +179,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
154
179
|
/>
|
|
155
180
|
<NumberField
|
|
156
181
|
label={t('intakePolicy.field.renderDpi')}
|
|
182
|
+
description={t('intakePolicy.help.renderDpi')}
|
|
157
183
|
value={policy.text_conversion?.render_dpi}
|
|
158
184
|
min={72}
|
|
159
185
|
onChange={(value) => setValue(['text_conversion', 'render_dpi'], value)}
|
|
@@ -168,7 +194,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
168
194
|
/>
|
|
169
195
|
</FormSection>
|
|
170
196
|
|
|
171
|
-
<FormSection
|
|
197
|
+
<FormSection
|
|
198
|
+
title={t('intakePolicy.section.conversionModel')}
|
|
199
|
+
description={t('intakePolicy.help.section.conversionModel')}
|
|
200
|
+
>
|
|
172
201
|
<ModelConfigFields
|
|
173
202
|
title={t('intakePolicy.field.model')}
|
|
174
203
|
config={policy.text_conversion?.config}
|
|
@@ -178,7 +207,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
178
207
|
</FormSection>
|
|
179
208
|
|
|
180
209
|
{policy.text_conversion?.method === 'custom' && (
|
|
181
|
-
<FormSection
|
|
210
|
+
<FormSection
|
|
211
|
+
title={t('intakePolicy.section.customConversion')}
|
|
212
|
+
description={t('intakePolicy.help.section.customConversion')}
|
|
213
|
+
>
|
|
182
214
|
<div className="grid gap-4 md:grid-cols-2">
|
|
183
215
|
<InputField
|
|
184
216
|
label={t('intakePolicy.field.interaction')}
|
|
@@ -196,7 +228,11 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
196
228
|
</FormSection>
|
|
197
229
|
)}
|
|
198
230
|
|
|
199
|
-
<FormSection
|
|
231
|
+
<FormSection
|
|
232
|
+
title={t('intakePolicy.section.pageRanges')}
|
|
233
|
+
description={t('intakePolicy.help.section.pageRanges')}
|
|
234
|
+
last
|
|
235
|
+
>
|
|
200
236
|
<PageRangesField
|
|
201
237
|
value={policy.text_conversion?.page_ranges}
|
|
202
238
|
onChange={(value) => setValue(['text_conversion', 'page_ranges'], value)}
|
|
@@ -210,7 +246,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
210
246
|
if (section === 'extraction') {
|
|
211
247
|
return (
|
|
212
248
|
<FormSurface>
|
|
213
|
-
<FormSection
|
|
249
|
+
<FormSection
|
|
250
|
+
title={t('intakePolicy.section.extraction')}
|
|
251
|
+
description={t('intakePolicy.help.section.extraction')}
|
|
252
|
+
>
|
|
214
253
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-4">
|
|
215
254
|
<TriStateField
|
|
216
255
|
label={t('intakePolicy.field.enabled')}
|
|
@@ -220,6 +259,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
220
259
|
/>
|
|
221
260
|
<SelectField
|
|
222
261
|
label={t('intakePolicy.field.source')}
|
|
262
|
+
description={t('intakePolicy.help.extractionSource')}
|
|
223
263
|
value={policy.extraction?.source}
|
|
224
264
|
options={options(t, ['auto', 'text', 'vision', 'mixed'])}
|
|
225
265
|
onChange={(value) => setValue(['extraction', 'source'], value)}
|
|
@@ -227,6 +267,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
227
267
|
/>
|
|
228
268
|
<SelectField
|
|
229
269
|
label={t('intakePolicy.field.pageScope')}
|
|
270
|
+
description={t('intakePolicy.help.pageScope')}
|
|
230
271
|
value={policy.extraction?.scope}
|
|
231
272
|
options={options(t, ['all', 'located'])}
|
|
232
273
|
onChange={(value) => setValue(['extraction', 'scope'], value)}
|
|
@@ -234,6 +275,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
234
275
|
/>
|
|
235
276
|
<NumberField
|
|
236
277
|
label={t('intakePolicy.field.maxPages')}
|
|
278
|
+
description={t('intakePolicy.help.extractionMaxPages')}
|
|
237
279
|
value={policy.extraction?.max_pages}
|
|
238
280
|
min={1}
|
|
239
281
|
onChange={(value) => setValue(['extraction', 'max_pages'], value)}
|
|
@@ -242,6 +284,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
242
284
|
</div>
|
|
243
285
|
<InputField
|
|
244
286
|
label={t('intakePolicy.field.interaction')}
|
|
287
|
+
description={t('intakePolicy.help.extractionInteraction')}
|
|
245
288
|
value={policy.extraction?.interaction}
|
|
246
289
|
onChange={(value) => setValue(['extraction', 'interaction'], value)}
|
|
247
290
|
readonly={readonly}
|
|
@@ -259,7 +302,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
259
302
|
/>
|
|
260
303
|
</FormSection>
|
|
261
304
|
|
|
262
|
-
<FormSection
|
|
305
|
+
<FormSection
|
|
306
|
+
title={t('intakePolicy.section.extractionModel')}
|
|
307
|
+
description={t('intakePolicy.help.section.extractionModel')}
|
|
308
|
+
>
|
|
263
309
|
<ModelConfigFields
|
|
264
310
|
title={t('intakePolicy.field.model')}
|
|
265
311
|
config={policy.extraction?.config}
|
|
@@ -268,22 +314,28 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
268
314
|
/>
|
|
269
315
|
</FormSection>
|
|
270
316
|
|
|
271
|
-
<FormSection
|
|
317
|
+
<FormSection
|
|
318
|
+
title={t('intakePolicy.section.visionBudget')}
|
|
319
|
+
description={t('intakePolicy.help.section.visionBudget')}
|
|
320
|
+
>
|
|
272
321
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-3">
|
|
273
322
|
<SelectField
|
|
274
323
|
label={t('intakePolicy.field.defaultDetail')}
|
|
324
|
+
description={t('intakePolicy.help.visionDetail')}
|
|
275
325
|
value={policy.extraction?.vision?.default_detail}
|
|
276
326
|
options={options(t, ['low', 'standard', 'high'])}
|
|
277
327
|
onChange={(value) => setValue(['extraction', 'vision', 'default_detail'], value)}
|
|
278
328
|
readonly={readonly}
|
|
279
329
|
/>
|
|
280
330
|
<VisionDetailsField
|
|
331
|
+
description={t('intakePolicy.help.visionDetail')}
|
|
281
332
|
value={policy.extraction?.vision?.allowed_details}
|
|
282
333
|
onChange={(value) => setValue(['extraction', 'vision', 'allowed_details'], value)}
|
|
283
334
|
readonly={readonly}
|
|
284
335
|
/>
|
|
285
336
|
<NumberField
|
|
286
337
|
label={t('intakePolicy.field.maxImageTokens')}
|
|
338
|
+
description={t('intakePolicy.help.maxImageTokens')}
|
|
287
339
|
value={policy.extraction?.vision?.max_image_tokens}
|
|
288
340
|
min={1}
|
|
289
341
|
onChange={(value) => setValue(['extraction', 'vision', 'max_image_tokens'], value)}
|
|
@@ -291,6 +343,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
291
343
|
/>
|
|
292
344
|
<NumberField
|
|
293
345
|
label={t('intakePolicy.field.maxPayloadMb')}
|
|
346
|
+
description={t('intakePolicy.help.maxPayloadMb')}
|
|
294
347
|
value={policy.extraction?.vision?.max_payload_mb}
|
|
295
348
|
min={1}
|
|
296
349
|
onChange={(value) => setValue(['extraction', 'vision', 'max_payload_mb'], value)}
|
|
@@ -366,7 +419,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
366
419
|
const review = grounding?.review;
|
|
367
420
|
return (
|
|
368
421
|
<FormSurface>
|
|
369
|
-
<FormSection
|
|
422
|
+
<FormSection
|
|
423
|
+
title={t('intakePolicy.section.grounding')}
|
|
424
|
+
description={t('intakePolicy.help.section.grounding')}
|
|
425
|
+
>
|
|
370
426
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-4">
|
|
371
427
|
<TriStateField
|
|
372
428
|
label={t('intakePolicy.field.enabled')}
|
|
@@ -383,6 +439,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
383
439
|
/>
|
|
384
440
|
<NumberField
|
|
385
441
|
label={t('intakePolicy.field.windowPages')}
|
|
442
|
+
description={t('intakePolicy.help.windowPages')}
|
|
386
443
|
value={grounding?.window_pages}
|
|
387
444
|
min={1}
|
|
388
445
|
onChange={(value) => setValue(['extraction', 'grounding', 'window_pages'], value)}
|
|
@@ -398,30 +455,35 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
398
455
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-3">
|
|
399
456
|
<TriStateField
|
|
400
457
|
label={t('intakePolicy.field.useVision')}
|
|
458
|
+
description={t('intakePolicy.help.useVision')}
|
|
401
459
|
value={grounding?.use_vision}
|
|
402
460
|
onChange={(value) => setValue(['extraction', 'grounding', 'use_vision'], value)}
|
|
403
461
|
readonly={readonly}
|
|
404
462
|
/>
|
|
405
463
|
<TriStateField
|
|
406
464
|
label={t('intakePolicy.field.forceOcr')}
|
|
465
|
+
description={t('intakePolicy.help.forceOcr')}
|
|
407
466
|
value={grounding?.force_ocr}
|
|
408
467
|
onChange={(value) => setValue(['extraction', 'grounding', 'force_ocr'], value)}
|
|
409
468
|
readonly={readonly}
|
|
410
469
|
/>
|
|
411
470
|
<TriStateField
|
|
412
471
|
label={t('intakePolicy.field.refreshOcr')}
|
|
472
|
+
description={t('intakePolicy.help.refreshOcr')}
|
|
413
473
|
value={grounding?.refresh_ocr}
|
|
414
474
|
onChange={(value) => setValue(['extraction', 'grounding', 'refresh_ocr'], value)}
|
|
415
475
|
readonly={readonly}
|
|
416
476
|
/>
|
|
417
477
|
<TriStateField
|
|
418
478
|
label={t('intakePolicy.field.omitBlockBoxes')}
|
|
479
|
+
description={t('intakePolicy.help.omitBlockBoxes')}
|
|
419
480
|
value={grounding?.omit_block_boxes}
|
|
420
481
|
onChange={(value) => setValue(['extraction', 'grounding', 'omit_block_boxes'], value)}
|
|
421
482
|
readonly={readonly}
|
|
422
483
|
/>
|
|
423
484
|
<TriStateField
|
|
424
485
|
label={t('intakePolicy.field.updateProperties')}
|
|
486
|
+
description={t('intakePolicy.help.updateProperties')}
|
|
425
487
|
value={grounding?.update_properties}
|
|
426
488
|
onChange={(value) => setValue(['extraction', 'grounding', 'update_properties'], value)}
|
|
427
489
|
readonly={readonly}
|
|
@@ -429,7 +491,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
429
491
|
</div>
|
|
430
492
|
</FormSection>
|
|
431
493
|
|
|
432
|
-
<FormSection
|
|
494
|
+
<FormSection
|
|
495
|
+
title={t('intakePolicy.section.models')}
|
|
496
|
+
description={t('intakePolicy.help.section.models')}
|
|
497
|
+
>
|
|
433
498
|
<ModelConfigFields
|
|
434
499
|
title={t('intakePolicy.field.primaryModel')}
|
|
435
500
|
config={grounding?.config}
|
|
@@ -445,6 +510,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
445
510
|
<div className="grid gap-4 md:grid-cols-2">
|
|
446
511
|
<NumberField
|
|
447
512
|
label={t('intakePolicy.field.hardnessThreshold')}
|
|
513
|
+
description={t('intakePolicy.help.hardnessThreshold')}
|
|
448
514
|
value={grounding?.hardness_threshold}
|
|
449
515
|
min={0}
|
|
450
516
|
max={1}
|
|
@@ -454,6 +520,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
454
520
|
/>
|
|
455
521
|
<NumberField
|
|
456
522
|
label={t('intakePolicy.field.minCitationDensity')}
|
|
523
|
+
description={t('intakePolicy.help.minCitationDensity')}
|
|
457
524
|
value={grounding?.min_citation_density}
|
|
458
525
|
min={0}
|
|
459
526
|
max={1}
|
|
@@ -464,7 +531,11 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
464
531
|
</div>
|
|
465
532
|
</FormSection>
|
|
466
533
|
|
|
467
|
-
<FormSection
|
|
534
|
+
<FormSection
|
|
535
|
+
title={t('intakePolicy.section.review')}
|
|
536
|
+
description={t('intakePolicy.help.section.review')}
|
|
537
|
+
last
|
|
538
|
+
>
|
|
468
539
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-4">
|
|
469
540
|
<TriStateField
|
|
470
541
|
label={t('intakePolicy.field.enabled')}
|
|
@@ -474,6 +545,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
474
545
|
/>
|
|
475
546
|
<TriStateField
|
|
476
547
|
label={t('intakePolicy.field.forceReview')}
|
|
548
|
+
description={t('intakePolicy.help.forceReview')}
|
|
477
549
|
value={review?.force}
|
|
478
550
|
onChange={(value) => setValue(['extraction', 'grounding', 'review', 'force'], value)}
|
|
479
551
|
readonly={readonly}
|
|
@@ -489,6 +561,7 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
489
561
|
/>
|
|
490
562
|
<NumberField
|
|
491
563
|
label={t('intakePolicy.field.coverageThreshold')}
|
|
564
|
+
description={t('intakePolicy.help.coverageThreshold')}
|
|
492
565
|
value={review?.coverage_threshold}
|
|
493
566
|
min={0}
|
|
494
567
|
max={1}
|
|
@@ -512,7 +585,10 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
512
585
|
|
|
513
586
|
return (
|
|
514
587
|
<FormSurface>
|
|
515
|
-
<FormSection
|
|
588
|
+
<FormSection
|
|
589
|
+
title={t('intakePolicy.section.rendering')}
|
|
590
|
+
description={t('intakePolicy.help.section.rendering')}
|
|
591
|
+
>
|
|
516
592
|
<TextAreaField
|
|
517
593
|
label={t('intakePolicy.field.renderingTemplate')}
|
|
518
594
|
description={t('intakePolicy.help.renderingTemplate')}
|
|
@@ -523,7 +599,11 @@ export function IntakePolicyForm({ policy, section, onChange, readonly = false }
|
|
|
523
599
|
minLines={8}
|
|
524
600
|
/>
|
|
525
601
|
</FormSection>
|
|
526
|
-
<FormSection
|
|
602
|
+
<FormSection
|
|
603
|
+
title={t('intakePolicy.section.embeddings')}
|
|
604
|
+
description={t('intakePolicy.help.section.embeddings')}
|
|
605
|
+
last
|
|
606
|
+
>
|
|
527
607
|
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-4">
|
|
528
608
|
<TriStateField
|
|
529
609
|
label={t('intakePolicy.field.textEmbedding')}
|
|
@@ -559,10 +639,24 @@ function FormSurface({ children }: { children: ReactNode }) {
|
|
|
559
639
|
return <div className="mx-auto w-full max-w-6xl px-1 py-4">{children}</div>;
|
|
560
640
|
}
|
|
561
641
|
|
|
562
|
-
function FormSection({
|
|
642
|
+
function FormSection({
|
|
643
|
+
title,
|
|
644
|
+
description,
|
|
645
|
+
children,
|
|
646
|
+
last = false,
|
|
647
|
+
}: {
|
|
648
|
+
title: string;
|
|
649
|
+
/** Tooltip on an Info icon beside the heading. Hover-only, like every `InfoTip`. */
|
|
650
|
+
description?: ReactNode;
|
|
651
|
+
children: ReactNode;
|
|
652
|
+
last?: boolean;
|
|
653
|
+
}) {
|
|
563
654
|
return (
|
|
564
655
|
<section className={last ? 'pb-3' : 'mb-6 border-b pb-6'}>
|
|
565
|
-
<
|
|
656
|
+
<div className="mb-4 flex items-center gap-2">
|
|
657
|
+
<h3 className="text-sm font-semibold">{title}</h3>
|
|
658
|
+
<InfoTip description={description} />
|
|
659
|
+
</div>
|
|
566
660
|
<div className="space-y-4">{children}</div>
|
|
567
661
|
</section>
|
|
568
662
|
);
|
|
@@ -621,6 +715,7 @@ function TextAreaField({
|
|
|
621
715
|
|
|
622
716
|
function NumberField({
|
|
623
717
|
label,
|
|
718
|
+
description,
|
|
624
719
|
value,
|
|
625
720
|
onChange,
|
|
626
721
|
readonly,
|
|
@@ -629,6 +724,7 @@ function NumberField({
|
|
|
629
724
|
step,
|
|
630
725
|
}: {
|
|
631
726
|
label: string;
|
|
727
|
+
description?: string;
|
|
632
728
|
value?: number;
|
|
633
729
|
onChange: (value: number | undefined) => void;
|
|
634
730
|
readonly: boolean;
|
|
@@ -637,7 +733,7 @@ function NumberField({
|
|
|
637
733
|
step?: number;
|
|
638
734
|
}) {
|
|
639
735
|
return (
|
|
640
|
-
<FormItem label={label}>
|
|
736
|
+
<FormItem label={label} description={description}>
|
|
641
737
|
<NumberInput
|
|
642
738
|
value={value}
|
|
643
739
|
onChange={(value) => onChange(value === undefined || Number.isFinite(value) ? value : undefined)}
|
|
@@ -688,11 +784,13 @@ function SelectField<T extends string | number>({
|
|
|
688
784
|
|
|
689
785
|
function TriStateField({
|
|
690
786
|
label,
|
|
787
|
+
description,
|
|
691
788
|
value,
|
|
692
789
|
onChange,
|
|
693
790
|
readonly,
|
|
694
791
|
}: {
|
|
695
792
|
label: string;
|
|
793
|
+
description?: string;
|
|
696
794
|
value?: boolean;
|
|
697
795
|
onChange: (value: boolean | undefined) => void;
|
|
698
796
|
readonly: boolean;
|
|
@@ -705,7 +803,7 @@ function TriStateField({
|
|
|
705
803
|
] as const;
|
|
706
804
|
const selectedValue = value === undefined ? 'inherit' : value ? 'enabled' : 'disabled';
|
|
707
805
|
return (
|
|
708
|
-
<FormItem label={label}>
|
|
806
|
+
<FormItem label={label} description={description}>
|
|
709
807
|
<SelectBox
|
|
710
808
|
options={[...choices]}
|
|
711
809
|
value={choices.find((option) => option.value === selectedValue)}
|
|
@@ -719,10 +817,12 @@ function TriStateField({
|
|
|
719
817
|
}
|
|
720
818
|
|
|
721
819
|
function VisionDetailsField({
|
|
820
|
+
description,
|
|
722
821
|
value,
|
|
723
822
|
onChange,
|
|
724
823
|
readonly,
|
|
725
824
|
}: {
|
|
825
|
+
description?: string;
|
|
726
826
|
value?: IntakeVisionDetail[];
|
|
727
827
|
onChange: (value: IntakeVisionDetail[] | undefined) => void;
|
|
728
828
|
readonly: boolean;
|
|
@@ -730,7 +830,7 @@ function VisionDetailsField({
|
|
|
730
830
|
const { t } = useUITranslation();
|
|
731
831
|
const choices = options(t, ['low', 'standard', 'high'] as const);
|
|
732
832
|
return (
|
|
733
|
-
<FormItem label={t('intakePolicy.field.allowedDetails')}>
|
|
833
|
+
<FormItem label={t('intakePolicy.field.allowedDetails')} description={description}>
|
|
734
834
|
<SelectBox<SelectOption<IntakeVisionDetail>>
|
|
735
835
|
multiple
|
|
736
836
|
options={choices}
|
package/src/i18n/locales/ar.json
CHANGED
|
@@ -1063,20 +1063,55 @@
|
|
|
1063
1063
|
"intakePolicy.field.updateProperties": "تحديث الخصائص",
|
|
1064
1064
|
"intakePolicy.field.useVision": "استخدام الرؤية",
|
|
1065
1065
|
"intakePolicy.field.windowPages": "الصفحات لكل نافذة",
|
|
1066
|
+
"intakePolicy.help.contactSheetDetail": "عدد الصفحات في ورقة المصغرات. صفحات أقل تعني مصغرات أكبر وأسهل قراءة.",
|
|
1067
|
+
"intakePolicy.help.coverageThreshold": "راجع عندما تنخفض تغطية الاستشهادات في صفحة عن هذا الحد، وهو مؤشر على احتمال إغفال محتوى.",
|
|
1066
1068
|
"intakePolicy.help.defaultView": "العرض الأولي المفضل لكائنات هذا النوع.",
|
|
1069
|
+
"intakePolicy.help.distinguishFrom": "الأنواع التي يسهل الخلط بينها وبين هذا النوع.",
|
|
1067
1070
|
"intakePolicy.help.embeddings": "مفاتيح اختيارية حسب النوع لتضمين النص والصورة والخصائص.",
|
|
1068
1071
|
"intakePolicy.help.examples": "معرّفات كائنات الأمثلة المؤكدة بشرياً لهذا النوع من المحتوى.",
|
|
1072
|
+
"intakePolicy.help.extractionInteraction": "استبدل المستخرج المدمج بتفاعلك الخاص.",
|
|
1073
|
+
"intakePolicy.help.extractionMaxPages": "حد أقصى لعدد الصفحات التي تصل إلى الاستخراج.",
|
|
1069
1074
|
"intakePolicy.help.extractionSource": "اختر أدلة نصية أو مرئية أو مجمعة للاستخراج.",
|
|
1075
|
+
"intakePolicy.help.forceOcr": "تطبيق OCR على كل صفحة، حتى الصفحات التي تحتوي طبقة نص.",
|
|
1076
|
+
"intakePolicy.help.forceReview": "راجع كل مستند مهما كانت درجة صعوبته.",
|
|
1070
1077
|
"intakePolicy.help.grounding": "أنشئ استشهادات على مستوى الكتلة وأدلة مشروحة لاستخراج الخصائص.",
|
|
1078
|
+
"intakePolicy.help.hardnessThreshold": "الدرجة التي يتولى عندها نموذج المحتوى الصعب المهمة.",
|
|
1071
1079
|
"intakePolicy.help.identification": "إرشادات اختيار النوع تلقائياً قبل الاستخراج.",
|
|
1072
1080
|
"intakePolicy.help.identificationGuidance": "صف نوع المحتوى هذا ومتى يجب اختياره.",
|
|
1073
1081
|
"intakePolicy.help.locateInstructions": "فعّل هذا لتحديد الصفحات ذات الصلة قبل التحويل والاستخراج.",
|
|
1082
|
+
"intakePolicy.help.locateMinPages": "يُتخطى تحديد الصفحات في المستندات الأقصر من ذلك.",
|
|
1083
|
+
"intakePolicy.help.maxImageTokens": "الميزانية التي تقيّد فعليًا: تقدير رموز الصورة لكل استدعاء.",
|
|
1084
|
+
"intakePolicy.help.maxPayloadMb": "حد للنقل، وليس إعداد جودة.",
|
|
1085
|
+
"intakePolicy.help.method": "ما إذا كان النص يأتي من التحليل المدمج أو من نموذج أو من تفاعلك الخاص.",
|
|
1086
|
+
"intakePolicy.help.minCitationDensity": "إذا قلّت الاستشهادات لكل قيمة مستخرجة، تُعاد المحاولة.",
|
|
1074
1087
|
"intakePolicy.help.mode": "الإدخال البرمجي هو الافتراضي؛ يفوض الإدخال الوكيلي التنسيق إلى وكيل.",
|
|
1088
|
+
"intakePolicy.help.omitBlockBoxes": "إزالة إطارات الكتل من الموجّه. آمن فقط عند تفعيل استخدام الرؤية.",
|
|
1075
1089
|
"intakePolicy.help.pageRanges": "صفحتا البداية والنهاية مشمولتان. تُحسب القيم السالبة من نهاية المستند.",
|
|
1090
|
+
"intakePolicy.help.pageScope": "كل الصفحات، أو الصفحات التي حددها المحدد فقط.",
|
|
1091
|
+
"intakePolicy.help.refreshOcr": "إعادة تشغيل OCR بدلاً من استخدام النتيجة المخزّنة.",
|
|
1092
|
+
"intakePolicy.help.renderDpi": "الدقة التي تُعرض بها كل صفحة للنموذج. القيمة 150 تناسب معظم الحالات؛ ارفعها فقط مع الخط الدقيق جدًا.",
|
|
1076
1093
|
"intakePolicy.help.renderingTemplate": "قالب Handlebars لتحويل الخصائص المستخرجة إلى نص الكائن.",
|
|
1077
1094
|
"intakePolicy.help.review": "مراجعة اختيارية بالنموذج للصفحات الصعبة أو منخفضة التغطية.",
|
|
1095
|
+
"intakePolicy.help.section.classification": "كيف يتعرّف Vertesia على هذا النوع، وكيف تُفتح كائناته افتراضيًا.",
|
|
1096
|
+
"intakePolicy.help.section.conversion": "يحوّل الملف المصدر إلى نص قابل للقراءة قبل استخراج أي شيء.",
|
|
1097
|
+
"intakePolicy.help.section.conversionModel": "النموذج الذي يحوّل الصفحات إلى نص. غالبًا أرخص من نموذج الاستخراج.",
|
|
1098
|
+
"intakePolicy.help.section.customConversion": "تفاعلك الخاص أو وكيلك بدلًا من المحوّل المدمج.",
|
|
1099
|
+
"intakePolicy.help.section.embeddings": "ما تتم فهرسته للبحث، وما إذا كانت قائمة محتويات ستُنشأ.",
|
|
1100
|
+
"intakePolicy.help.section.extraction": "كيف تُعبَّأ خصائص مخطط هذا النوع من المستندات.",
|
|
1101
|
+
"intakePolicy.help.section.extractionModel": "النموذج الذي يقرأ المستند ويعبّئ الخصائص.",
|
|
1102
|
+
"intakePolicy.help.section.grounding": "يربط كل قيمة مستخرجة بالكتلة أو الموضع المرئي في الصفحة التي جاءت منها.",
|
|
1103
|
+
"intakePolicy.help.section.locate": "مسح بصري سريع يحدّد الصفحات المهمة قبل بدء العمل الفعلي.",
|
|
1104
|
+
"intakePolicy.help.section.models": "النموذج المستخدم بحسب صعوبة قراءة صفحات المستند.",
|
|
1105
|
+
"intakePolicy.help.section.pageRanges": "صفحات ثابتة للتحويل. لها الأولوية على نطاق الصفحات؛ وتُحسب القيم السالبة من النهاية.",
|
|
1106
|
+
"intakePolicy.help.section.rendering": "القالب الذي يحوّل الخصائص المستخرجة إلى نص الكائن.",
|
|
1107
|
+
"intakePolicy.help.section.review": "تمريرة إضافية على الصفحات قليلة الاستشهاد أو الصعبة القراءة.",
|
|
1108
|
+
"intakePolicy.help.section.visionBudget": "مقدار صور الصفحات الذي يمكن أن يحمله استدعاء استخراج واحد.",
|
|
1078
1109
|
"intakePolicy.help.textConversion": "يتحكم في إنشاء Markdown أو النص قبل الاستخراج والتضمين.",
|
|
1079
1110
|
"intakePolicy.help.title": "دليل الحقول",
|
|
1111
|
+
"intakePolicy.help.updateProperties": "كتابة النتائج المسنَدة في خصائص الكائن.",
|
|
1112
|
+
"intakePolicy.help.useVision": "إرسال صور الصفحات المشروحة مع النص.",
|
|
1113
|
+
"intakePolicy.help.visionDetail": "ملفات تعريف جودة الصورة المتاحة لهذا النوع. تحدد المنصة الملفات نفسها.",
|
|
1114
|
+
"intakePolicy.help.windowPages": "عدد الصفحات في استدعاء إسناد واحد قبل التقسيم.",
|
|
1080
1115
|
"intakePolicy.option.agentic": "وكيلي",
|
|
1081
1116
|
"intakePolicy.option.all": "كل الصفحات",
|
|
1082
1117
|
"intakePolicy.option.auto": "تلقائي",
|
package/src/i18n/locales/de.json
CHANGED
|
@@ -1019,20 +1019,55 @@
|
|
|
1019
1019
|
"intakePolicy.field.updateProperties": "Eigenschaften aktualisieren",
|
|
1020
1020
|
"intakePolicy.field.useVision": "Vision verwenden",
|
|
1021
1021
|
"intakePolicy.field.windowPages": "Seiten pro Fenster",
|
|
1022
|
+
"intakePolicy.help.contactSheetDetail": "Seiten pro Miniaturbogen. Weniger Seiten bedeuten größere, besser lesbare Kacheln.",
|
|
1023
|
+
"intakePolicy.help.coverageThreshold": "Prüfen, wenn die Zitatabdeckung einer Seite darunter fällt — ein Hinweis, dass Inhalt übersehen worden sein könnte.",
|
|
1022
1024
|
"intakePolicy.help.defaultView": "Bevorzugte erste Ansicht für Objekte dieses Typs.",
|
|
1025
|
+
"intakePolicy.help.distinguishFrom": "Typen, mit denen dieser leicht verwechselt wird.",
|
|
1023
1026
|
"intakePolicy.help.embeddings": "Optionale typspezifische Schalter für Text-, Bild- und Eigenschaften-Embeddings.",
|
|
1024
1027
|
"intakePolicy.help.examples": "Objekt-IDs von menschlich bestätigten Beispielen dieses Inhaltstyps.",
|
|
1028
|
+
"intakePolicy.help.extractionInteraction": "Ersetzen Sie den integrierten Extraktor durch Ihre eigene Interaktion.",
|
|
1029
|
+
"intakePolicy.help.extractionMaxPages": "Obergrenze für die Anzahl der Seiten, die zur Extraktion gelangen.",
|
|
1025
1030
|
"intakePolicy.help.extractionSource": "Wählt Text-, Bild- oder kombinierte Belege für die Extraktion.",
|
|
1031
|
+
"intakePolicy.help.forceOcr": "Jede Seite per OCR lesen, auch Seiten mit vorhandener Textebene.",
|
|
1032
|
+
"intakePolicy.help.forceReview": "Jedes Dokument prüfen, unabhängig vom Schwierigkeitswert.",
|
|
1026
1033
|
"intakePolicy.help.grounding": "Erstellt Zitate auf Blockebene und kommentierte Belege für die Eigenschaftsextraktion.",
|
|
1034
|
+
"intakePolicy.help.hardnessThreshold": "Ab diesem Wert übernimmt das Modell für schwierige Inhalte.",
|
|
1027
1035
|
"intakePolicy.help.identification": "Hinweise zur automatischen Typauswahl vor der Extraktion.",
|
|
1028
1036
|
"intakePolicy.help.identificationGuidance": "Beschreiben Sie diesen Inhaltstyp und wann er ausgewählt werden soll.",
|
|
1029
1037
|
"intakePolicy.help.locateInstructions": "Damit werden relevante Seiten vor Konvertierung und Extraktion ermittelt.",
|
|
1038
|
+
"intakePolicy.help.locateMinPages": "Bei kürzeren Dokumenten wird die Seitensuche übersprungen.",
|
|
1039
|
+
"intakePolicy.help.maxImageTokens": "Das tatsächlich bindende Budget: geschätzte Bild-Tokens pro Aufruf.",
|
|
1040
|
+
"intakePolicy.help.maxPayloadMb": "Eine Transportgrenze, keine Qualitätseinstellung.",
|
|
1041
|
+
"intakePolicy.help.method": "Ob der Text aus der integrierten Analyse, einem Modell oder Ihrer eigenen Interaktion stammt.",
|
|
1042
|
+
"intakePolicy.help.minCitationDensity": "Zu wenige Zitate je extrahiertem Wert, und der Durchlauf wird wiederholt.",
|
|
1030
1043
|
"intakePolicy.help.mode": "Programmatische Aufnahme ist Standard; agentische Aufnahme delegiert die Orchestrierung an einen Agenten.",
|
|
1044
|
+
"intakePolicy.help.omitBlockBoxes": "Blockrahmen aus dem Prompt entfernen. Nur mit aktivierter Vision sinnvoll.",
|
|
1031
1045
|
"intakePolicy.help.pageRanges": "Start- und Endseite einschließlich. Negative Werte zählen vom Dokumentende.",
|
|
1046
|
+
"intakePolicy.help.pageScope": "Alle Seiten oder nur die vom Finder ausgewählten.",
|
|
1047
|
+
"intakePolicy.help.refreshOcr": "OCR neu ausführen, statt gespeicherte OCR-Ergebnisse zu verwenden.",
|
|
1048
|
+
"intakePolicy.help.renderDpi": "Auflösung, mit der jede Seite für das Modell gerendert wird. 150 passt fast immer; erhöhen Sie den Wert nur bei sehr kleiner Schrift.",
|
|
1032
1049
|
"intakePolicy.help.renderingTemplate": "Handlebars-Vorlage, die extrahierte Eigenschaften als Objekttext materialisiert.",
|
|
1033
1050
|
"intakePolicy.help.review": "Optionale Modellprüfung für schwierige Seiten oder geringe Abdeckung.",
|
|
1051
|
+
"intakePolicy.help.section.classification": "Wie Vertesia diesen Typ erkennt und wie seine Objekte standardmäßig geöffnet werden.",
|
|
1052
|
+
"intakePolicy.help.section.conversion": "Wandelt die Quelldatei in lesbaren Text um, bevor irgendetwas extrahiert wird.",
|
|
1053
|
+
"intakePolicy.help.section.conversionModel": "Modell für die Umwandlung von Seiten in Text. Oft günstiger als das der Extraktion.",
|
|
1054
|
+
"intakePolicy.help.section.customConversion": "Ihre eigene Interaktion oder ein Agent anstelle des integrierten Konverters.",
|
|
1055
|
+
"intakePolicy.help.section.embeddings": "Was für die Suche indexiert wird und ob ein Inhaltsverzeichnis entsteht.",
|
|
1056
|
+
"intakePolicy.help.section.extraction": "Wie die Schema-Eigenschaften dieses Typs aus den Dokumenten befüllt werden.",
|
|
1057
|
+
"intakePolicy.help.section.extractionModel": "Modell, das das Dokument liest und die Eigenschaften befüllt.",
|
|
1058
|
+
"intakePolicy.help.section.grounding": "Verknüpft jeden extrahierten Wert mit dem Block oder der visuellen Stelle der Seite, aus der er stammt.",
|
|
1059
|
+
"intakePolicy.help.section.locate": "Ein günstiger visueller Überblick, der vor der eigentlichen Arbeit die wichtigen Seiten findet.",
|
|
1060
|
+
"intakePolicy.help.section.models": "Welches Modell verwendet wird, je nachdem wie schwer die Dokumentseiten zu lesen sind.",
|
|
1061
|
+
"intakePolicy.help.section.pageRanges": "Feste Seiten für die Konvertierung. Hat Vorrang vor dem Seitenumfang; negative Werte zählen vom Ende.",
|
|
1062
|
+
"intakePolicy.help.section.rendering": "Die Vorlage, die extrahierte Eigenschaften in den Textkörper des Objekts umwandelt.",
|
|
1063
|
+
"intakePolicy.help.section.review": "Ein zusätzlicher Durchgang über Seiten mit wenigen Zitaten oder schwer lesbarem Inhalt.",
|
|
1064
|
+
"intakePolicy.help.section.visionBudget": "Wie viel Seitenbildmaterial ein Extraktionsaufruf mitführen darf.",
|
|
1034
1065
|
"intakePolicy.help.textConversion": "Steuert die Markdown- oder Texterzeugung vor Extraktion und Embedding.",
|
|
1035
1066
|
"intakePolicy.help.title": "Feldleitfaden",
|
|
1067
|
+
"intakePolicy.help.updateProperties": "Belegte Ergebnisse zurück in die Eigenschaften des Objekts schreiben.",
|
|
1068
|
+
"intakePolicy.help.useVision": "Kommentierte Seitenbilder zusammen mit dem Text senden.",
|
|
1069
|
+
"intakePolicy.help.visionDetail": "Bildqualitätsprofile, die dieser Typ verwenden darf. Die Profile selbst gibt die Plattform vor.",
|
|
1070
|
+
"intakePolicy.help.windowPages": "Wie viele Seiten ein Beleg-Aufruf umfasst, bevor er aufgeteilt wird.",
|
|
1036
1071
|
"intakePolicy.option.agentic": "Agentisch",
|
|
1037
1072
|
"intakePolicy.option.all": "Alle Seiten",
|
|
1038
1073
|
"intakePolicy.option.auto": "Automatisch",
|
package/src/i18n/locales/en.json
CHANGED
|
@@ -506,20 +506,55 @@
|
|
|
506
506
|
"intakePolicy.field.updateProperties": "Update properties",
|
|
507
507
|
"intakePolicy.field.useVision": "Use vision",
|
|
508
508
|
"intakePolicy.field.windowPages": "Pages per window",
|
|
509
|
+
"intakePolicy.help.contactSheetDetail": "Pages per thumbnail sheet. Fewer pages means bigger, more readable tiles.",
|
|
510
|
+
"intakePolicy.help.coverageThreshold": "Review when a page's citation coverage drops below this, a sign content may have been missed.",
|
|
509
511
|
"intakePolicy.help.defaultView": "Preferred first view for objects of this type.",
|
|
512
|
+
"intakePolicy.help.distinguishFrom": "Types this one is easily confused with.",
|
|
510
513
|
"intakePolicy.help.embeddings": "Optional per-type text, image, and properties embedding switches.",
|
|
511
514
|
"intakePolicy.help.examples": "Object IDs of human-confirmed examples for this content type.",
|
|
515
|
+
"intakePolicy.help.extractionInteraction": "Replace the built-in extractor with your own interaction.",
|
|
516
|
+
"intakePolicy.help.extractionMaxPages": "Cap on how many pages reach extraction.",
|
|
512
517
|
"intakePolicy.help.extractionSource": "Selects text, visual, or combined evidence for extraction.",
|
|
518
|
+
"intakePolicy.help.forceOcr": "OCR every page, even ones that already have a text layer.",
|
|
519
|
+
"intakePolicy.help.forceReview": "Review every document, whatever its hardness score.",
|
|
513
520
|
"intakePolicy.help.grounding": "Creates block-level citations and annotated proof for property extraction.",
|
|
521
|
+
"intakePolicy.help.hardnessThreshold": "Score at or above which the hard-content model takes over.",
|
|
514
522
|
"intakePolicy.help.identification": "Guidance for automatic type selection before extraction.",
|
|
515
523
|
"intakePolicy.help.identificationGuidance": "Describe what this content type is and when it should be selected.",
|
|
516
524
|
"intakePolicy.help.locateInstructions": "Set this to identify relevant pages before conversion and extraction.",
|
|
525
|
+
"intakePolicy.help.locateMinPages": "Skip the locate pass on documents shorter than this.",
|
|
526
|
+
"intakePolicy.help.maxImageTokens": "The budget that actually binds — estimated image tokens per call.",
|
|
527
|
+
"intakePolicy.help.maxPayloadMb": "A transport guard, not a quality setting.",
|
|
528
|
+
"intakePolicy.help.method": "Whether the text comes from built-in parsing, a model, or your own interaction.",
|
|
529
|
+
"intakePolicy.help.minCitationDensity": "Too few citations per extracted value and the pass retries.",
|
|
517
530
|
"intakePolicy.help.mode": "Programmatic intake is the default; agentic intake delegates orchestration to an agent.",
|
|
531
|
+
"intakePolicy.help.omitBlockBoxes": "Drop block outlines from the prompt. Only safe with Use vision on.",
|
|
518
532
|
"intakePolicy.help.pageRanges": "Inclusive start and end pages. Negative values count from the end of the document.",
|
|
533
|
+
"intakePolicy.help.pageScope": "Every page, or only the ones the locator picked.",
|
|
534
|
+
"intakePolicy.help.refreshOcr": "Re-run OCR instead of reusing stored OCR output.",
|
|
535
|
+
"intakePolicy.help.renderDpi": "Resolution each page is rendered at for the model. 150 suits almost everything; raise it only for very fine print.",
|
|
519
536
|
"intakePolicy.help.renderingTemplate": "Handlebars template used to materialize extracted properties into object text.",
|
|
520
537
|
"intakePolicy.help.review": "Optional model review for hard or low-coverage pages.",
|
|
538
|
+
"intakePolicy.help.section.classification": "How Vertesia recognizes this type, and how objects of it open by default.",
|
|
539
|
+
"intakePolicy.help.section.conversion": "Turns the source file into readable text, before anything is extracted.",
|
|
540
|
+
"intakePolicy.help.section.conversionModel": "Which model does the page-to-text pass. Often a cheaper one than extraction.",
|
|
541
|
+
"intakePolicy.help.section.customConversion": "Your own interaction or agent, in place of the built-in converter.",
|
|
542
|
+
"intakePolicy.help.section.embeddings": "What gets indexed for search, and whether a contents list is built.",
|
|
543
|
+
"intakePolicy.help.section.extraction": "How the type's schema properties are filled in from the documents.",
|
|
544
|
+
"intakePolicy.help.section.extractionModel": "Which model reads the document and fills in the properties.",
|
|
545
|
+
"intakePolicy.help.section.grounding": "Ties every extracted value back to the block or visual location on the page it came from.",
|
|
546
|
+
"intakePolicy.help.section.locate": "A cheap visual scan that picks out which pages matter, before the real work starts.",
|
|
547
|
+
"intakePolicy.help.section.models": "The model to use based on how hard document pages are to read.",
|
|
548
|
+
"intakePolicy.help.section.pageRanges": "Fixed pages to convert. Overrides Page scope when set; negative numbers count back from the end.",
|
|
549
|
+
"intakePolicy.help.section.rendering": "The template that turns extracted properties into the object's text body.",
|
|
550
|
+
"intakePolicy.help.section.review": "An extra pass over pages that came back as thinly cited or hard to read.",
|
|
551
|
+
"intakePolicy.help.section.visionBudget": "How much page imagery one extraction call is allowed to carry.",
|
|
521
552
|
"intakePolicy.help.textConversion": "Controls markdown or text generation before extraction and embedding.",
|
|
522
553
|
"intakePolicy.help.title": "Field Guide",
|
|
554
|
+
"intakePolicy.help.updateProperties": "Write grounded results back onto the object's properties.",
|
|
555
|
+
"intakePolicy.help.useVision": "Send annotated page images along with the text.",
|
|
556
|
+
"intakePolicy.help.visionDetail": "Image quality profiles this type may use. The profiles themselves are set by the platform.",
|
|
557
|
+
"intakePolicy.help.windowPages": "How many pages go into one grounding call before it splits.",
|
|
523
558
|
"intakePolicy.option.agentic": "Agentic",
|
|
524
559
|
"intakePolicy.option.all": "All pages",
|
|
525
560
|
"intakePolicy.option.auto": "Automatic",
|