llmbic 1.0.0 → 1.2.0
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/CHANGELOG.md +41 -0
- package/README.md +177 -29
- package/dist/extractor.d.ts +13 -7
- package/dist/extractor.d.ts.map +1 -1
- package/dist/extractor.js +50 -22
- package/dist/extractor.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +50 -4
- package/dist/merge.js.map +1 -1
- package/dist/prompt.d.ts +20 -13
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +97 -39
- package/dist/prompt.js.map +1 -1
- package/dist/rules.d.ts +9 -2
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +19 -15
- package/dist/rules.js.map +1 -1
- package/dist/types/extractor.types.d.ts +54 -4
- package/dist/types/extractor.types.d.ts.map +1 -1
- package/dist/types/merge.types.d.ts +42 -0
- package/dist/types/merge.types.d.ts.map +1 -1
- package/dist/types/prompt.types.d.ts +29 -0
- package/dist/types/prompt.types.d.ts.map +1 -1
- package/dist/types/rule.types.d.ts +16 -0
- package/dist/types/rule.types.d.ts.map +1 -1
- package/package.json +4 -1
|
@@ -30,6 +30,14 @@ export type Normalizer<T> = (data: ExtractedData<T>, content: string) => Extract
|
|
|
30
30
|
export type MergeApplyOptions<T> = {
|
|
31
31
|
/** Overrides forwarded to every field-level fusion call. */
|
|
32
32
|
policy?: Partial<FieldMergePolicy>;
|
|
33
|
+
/**
|
|
34
|
+
* Per-field policy overrides applied on top of `policy`. Precedence:
|
|
35
|
+
* library defaults < `policy` < `policyByField[field]`. Fields absent from
|
|
36
|
+
* the map fall back to `policy` alone.
|
|
37
|
+
*/
|
|
38
|
+
policyByField?: {
|
|
39
|
+
[K in keyof T]?: Partial<FieldMergePolicy>;
|
|
40
|
+
};
|
|
33
41
|
/** Transformations run in declared order after the per-field fusion. */
|
|
34
42
|
normalizers?: Normalizer<T>[];
|
|
35
43
|
/** Invariants run on the normalized data; their violations populate `validation`. */
|
|
@@ -47,6 +55,32 @@ export type MergeApplyOptions<T> = {
|
|
|
47
55
|
* confidence.
|
|
48
56
|
*/
|
|
49
57
|
export type ConflictStrategy = 'flag' | 'prefer-rule' | 'prefer-llm';
|
|
58
|
+
/**
|
|
59
|
+
* Origin of the value kept for a field after fusion. Each variant carries the
|
|
60
|
+
* `ruleId` of the deterministic rule involved when applicable, so consumers
|
|
61
|
+
* can attribute extracted values back to the exact rule that produced them.
|
|
62
|
+
*
|
|
63
|
+
* - `'rule'`: only the rule produced a value, or the rule won under
|
|
64
|
+
* `'prefer-rule'`.
|
|
65
|
+
* - `'llm'`: only the LLM produced a value, or the LLM won under
|
|
66
|
+
* `'prefer-llm'`.
|
|
67
|
+
* - `'agreement'`: rule and LLM produced equivalent values per the policy's
|
|
68
|
+
* `compare` callback. `ruleId` points to the rule that matched.
|
|
69
|
+
* - `'flag'`: rule and LLM disagreed under the `'flag'` strategy. The rule
|
|
70
|
+
* value is kept; `ruleId` identifies the rule.
|
|
71
|
+
*/
|
|
72
|
+
export type FieldSource = {
|
|
73
|
+
kind: 'rule';
|
|
74
|
+
ruleId: string;
|
|
75
|
+
} | {
|
|
76
|
+
kind: 'llm';
|
|
77
|
+
} | {
|
|
78
|
+
kind: 'agreement';
|
|
79
|
+
ruleId: string;
|
|
80
|
+
} | {
|
|
81
|
+
kind: 'flag';
|
|
82
|
+
ruleId: string;
|
|
83
|
+
};
|
|
50
84
|
/**
|
|
51
85
|
* A disagreement between a rule match and an LLM value for the same field.
|
|
52
86
|
* Produced only when the resolution strategy is `'flag'`.
|
|
@@ -147,6 +181,14 @@ export type ExtractionResult<T> = {
|
|
|
147
181
|
confidence: {
|
|
148
182
|
[K in keyof T]: number | null;
|
|
149
183
|
};
|
|
184
|
+
/**
|
|
185
|
+
* Origin of the value kept for each field, or `null` for missing fields.
|
|
186
|
+
* Use it to attribute extractions back to the rule that produced them, to
|
|
187
|
+
* detect agreement between rules and LLM, or to spot flagged conflicts.
|
|
188
|
+
*/
|
|
189
|
+
sources: {
|
|
190
|
+
[K in keyof T]: FieldSource | null;
|
|
191
|
+
};
|
|
150
192
|
/** Disagreements recorded by the `'flag'` strategy during per-field fusion. */
|
|
151
193
|
conflicts: Conflict[];
|
|
152
194
|
/** Fields for which no value could be produced. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.types.d.ts","sourceRoot":"","sources":["../../src/types/merge.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"merge.types.d.ts","sourceRoot":"","sources":["../../src/types/merge.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Selects whether the LLM is asked only about fields the deterministic pass
|
|
3
|
+
* could not produce (`'fill-gaps'`, default) or about every schema field
|
|
4
|
+
* (`'cross-check'`, enabling agreement/conflict detection with the rules).
|
|
5
|
+
*/
|
|
6
|
+
export type PromptBuildMode = 'fill-gaps' | 'cross-check';
|
|
7
|
+
/**
|
|
8
|
+
* Whether a cross-check request exposes the rule values to the LLM as hints.
|
|
9
|
+
*
|
|
10
|
+
* - `'unbiased'` (default): no hints, the LLM re-extracts every field from
|
|
11
|
+
* scratch, enabling genuine disagreement detection.
|
|
12
|
+
* - `'bias'`: prepend the rule values as an "Already extracted" block, same
|
|
13
|
+
* shape as fill-gaps. Saves tokens when the caller trusts the rules and
|
|
14
|
+
* only wants a quick sanity check.
|
|
15
|
+
*
|
|
16
|
+
* Ignored when `mode !== 'cross-check'`.
|
|
17
|
+
*/
|
|
18
|
+
export type CrossCheckHints = 'bias' | 'unbiased';
|
|
19
|
+
/**
|
|
20
|
+
* Optional behavior overrides for `prompt.build`.
|
|
21
|
+
*/
|
|
22
|
+
export type PromptBuildOptions = {
|
|
23
|
+
/** Custom system prompt sent to the provider; falls back to a built-in. */
|
|
24
|
+
systemPrompt?: string;
|
|
25
|
+
/** Field-selection strategy. Defaults to `'fill-gaps'`. */
|
|
26
|
+
mode?: PromptBuildMode;
|
|
27
|
+
/** Hint-exposure policy in cross-check mode. Defaults to `'unbiased'`. */
|
|
28
|
+
crossCheckHints?: CrossCheckHints;
|
|
29
|
+
};
|
|
1
30
|
/**
|
|
2
31
|
* A fully-built request ready to be handed to an LLM provider. Produced by
|
|
3
32
|
* {@link prompt.build} from a schema and a partial extraction result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.types.d.ts","sourceRoot":"","sources":["../../src/types/prompt.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt.types.d.ts","sourceRoot":"","sources":["../../src/types/prompt.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC"}
|
|
@@ -15,6 +15,13 @@ export type RuleMatch<T> = {
|
|
|
15
15
|
* content. `extract` returns `null` when the rule does not apply.
|
|
16
16
|
*/
|
|
17
17
|
export type ExtractionRule = {
|
|
18
|
+
/**
|
|
19
|
+
* Stable identifier surfaced in `ExtractionResult.sources` when this rule
|
|
20
|
+
* produces the kept value. Optional: when omitted, `rule.apply` assigns
|
|
21
|
+
* `${field}#${declarationIndex}` based on the rule's position in the
|
|
22
|
+
* `rules` array.
|
|
23
|
+
*/
|
|
24
|
+
id?: string;
|
|
18
25
|
/** Name of the schema field this rule targets. */
|
|
19
26
|
field: string;
|
|
20
27
|
/** Inspects `content` and returns a match, or `null` if nothing was found. */
|
|
@@ -32,6 +39,15 @@ export type RulesResult<T> = {
|
|
|
32
39
|
values: Partial<T>;
|
|
33
40
|
/** Confidence score per extracted field, in `[0, 1]`. */
|
|
34
41
|
confidence: Partial<Record<keyof T, number>>;
|
|
42
|
+
/**
|
|
43
|
+
* Identifier of the winning rule per extracted field. Always populated by
|
|
44
|
+
* {@link rule.apply}: either the rule's declared `id` or
|
|
45
|
+
* `${field}#${declarationIndex}` from the source `rules` array. Optional
|
|
46
|
+
* on the type for back-compat with callers who build {@link RulesResult}
|
|
47
|
+
* by hand; consumers (including {@link merge.apply}) tolerate its absence
|
|
48
|
+
* and surface an empty `ruleId` in {@link FieldSource} when missing.
|
|
49
|
+
*/
|
|
50
|
+
sourceIds?: Partial<Record<keyof T, string>>;
|
|
35
51
|
/** Schema fields for which no rule produced a valid value. */
|
|
36
52
|
missing: (keyof T)[];
|
|
37
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.types.d.ts","sourceRoot":"","sources":["../../src/types/rule.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC;IACT,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,8DAA8D;IAC9D,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;CACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"rule.types.d.ts","sourceRoot":"","sources":["../../src/types/rule.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC;IACT,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,8DAA8D;IAC9D,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;CACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llmbic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Hybrid data extraction — deterministic rules + LLM fallback, with per-field confidence scoring.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
"test:watch": "vitest",
|
|
30
30
|
"typecheck": "tsc --noEmit",
|
|
31
31
|
"example:ollama": "tsx examples/ollama.ts",
|
|
32
|
+
"example:openai-batch": "tsx examples/openai-batch.ts",
|
|
33
|
+
"example:pii-redaction": "tsx examples/pii-redaction.ts",
|
|
32
34
|
"prepublishOnly": "npm run typecheck && npm test && npm run build"
|
|
33
35
|
},
|
|
34
36
|
"peerDependencies": {
|
|
@@ -37,6 +39,7 @@
|
|
|
37
39
|
"devDependencies": {
|
|
38
40
|
"@types/node": "^25.6.0",
|
|
39
41
|
"ollama": "^0.5.0",
|
|
42
|
+
"openai": "^6.34.0",
|
|
40
43
|
"tsx": "^4.19.0",
|
|
41
44
|
"typescript": "^5.7.0",
|
|
42
45
|
"vitest": "^4.0.0",
|