@botpress/zai 1.0.0-beta.3 → 1.0.0-beta.4
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/dist/index.cjs +1898 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +916 -0
- package/dist/index.d.ts +916 -0
- package/dist/index.js +1868 -0
- package/dist/index.js.map +1 -0
- package/ensure-env.cjs +9 -0
- package/package.json +20 -19
- package/tsconfig.json +23 -18
- package/tsup.config.ts +16 -0
- package/vitest.config.ts +2 -16
- package/vitest.setup.ts +11 -15
- package/dist/src/adapters/adapter.d.ts +0 -27
- package/dist/src/adapters/adapter.js +0 -3
- package/dist/src/adapters/adapter.js.map +0 -1
- package/dist/src/adapters/botpress-table.d.ts +0 -155
- package/dist/src/adapters/botpress-table.js +0 -170
- package/dist/src/adapters/botpress-table.js.map +0 -1
- package/dist/src/adapters/memory.d.ts +0 -7
- package/dist/src/adapters/memory.js +0 -13
- package/dist/src/adapters/memory.js.map +0 -1
- package/dist/src/env.d.ts +0 -1
- package/dist/src/env.js +0 -27
- package/dist/src/env.js.map +0 -1
- package/dist/src/index.d.ts +0 -9
- package/dist/src/index.js +0 -10
- package/dist/src/index.js.map +0 -1
- package/dist/src/models.d.ts +0 -253
- package/dist/src/models.js +0 -348
- package/dist/src/models.js.map +0 -1
- package/dist/src/operations/__tests/index.d.ts +0 -19
- package/dist/src/operations/__tests/index.js +0 -24
- package/dist/src/operations/__tests/index.js.map +0 -1
- package/dist/src/operations/check.d.ts +0 -36
- package/dist/src/operations/check.js +0 -146
- package/dist/src/operations/check.js.map +0 -1
- package/dist/src/operations/check.test.d.ts +0 -1
- package/dist/src/operations/check.test.js.map +0 -1
- package/dist/src/operations/constants.d.ts +0 -2
- package/dist/src/operations/constants.js +0 -3
- package/dist/src/operations/constants.js.map +0 -1
- package/dist/src/operations/errors.d.ts +0 -5
- package/dist/src/operations/errors.js +0 -11
- package/dist/src/operations/errors.js.map +0 -1
- package/dist/src/operations/extract.d.ts +0 -20
- package/dist/src/operations/extract.js +0 -235
- package/dist/src/operations/extract.js.map +0 -1
- package/dist/src/operations/extract.test.d.ts +0 -1
- package/dist/src/operations/extract.test.js.map +0 -1
- package/dist/src/operations/filter.d.ts +0 -39
- package/dist/src/operations/filter.js +0 -184
- package/dist/src/operations/filter.js.map +0 -1
- package/dist/src/operations/filter.test.d.ts +0 -1
- package/dist/src/operations/filter.test.js.map +0 -1
- package/dist/src/operations/label.d.ts +0 -79
- package/dist/src/operations/label.js +0 -250
- package/dist/src/operations/label.js.map +0 -1
- package/dist/src/operations/label.test.d.ts +0 -1
- package/dist/src/operations/label.test.js.map +0 -1
- package/dist/src/operations/rewrite.d.ts +0 -34
- package/dist/src/operations/rewrite.js +0 -106
- package/dist/src/operations/rewrite.js.map +0 -1
- package/dist/src/operations/rewrite.test.d.ts +0 -1
- package/dist/src/operations/rewrite.test.js.map +0 -1
- package/dist/src/operations/summarize.d.ts +0 -46
- package/dist/src/operations/summarize.js +0 -139
- package/dist/src/operations/summarize.js.map +0 -1
- package/dist/src/operations/summarize.test.d.ts +0 -1
- package/dist/src/operations/summarize.test.js.map +0 -1
- package/dist/src/operations/text.d.ts +0 -16
- package/dist/src/operations/text.js +0 -47
- package/dist/src/operations/text.js.map +0 -1
- package/dist/src/operations/text.test.d.ts +0 -1
- package/dist/src/operations/text.test.js.map +0 -1
- package/dist/src/operations/zai-learn.test.d.ts +0 -1
- package/dist/src/operations/zai-learn.test.js.map +0 -1
- package/dist/src/operations/zai-retry.test.d.ts +0 -1
- package/dist/src/operations/zai-retry.test.js.map +0 -1
- package/dist/src/utils.d.ts +0 -53
- package/dist/src/utils.js +0 -49
- package/dist/src/utils.js.map +0 -1
- package/dist/src/zai.d.ts +0 -91
- package/dist/src/zai.js +0 -139
- package/dist/src/zai.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/typings.d.ts +0 -901
- package/dist/typings.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -2
- package/dist/vitest.config.js +0 -21
- package/dist/vitest.config.js.map +0 -1
- package/dist/vitest.setup.d.ts +0 -1
- package/dist/vitest.setup.js +0 -22
- package/dist/vitest.setup.js.map +0 -1
- package/tsconfig.types.json +0 -22
- package/turbo.json +0 -14
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
import { fastHash, stringify, takeUntilTokens } from '../utils';
|
|
4
|
-
import { Zai } from '../zai';
|
|
5
|
-
import { PROMPT_INPUT_BUFFER, PROMPT_OUTPUT_BUFFER } from './constants';
|
|
6
|
-
const Example = z.object({
|
|
7
|
-
input: z.any(),
|
|
8
|
-
filter: z.boolean(),
|
|
9
|
-
reason: z.string().optional()
|
|
10
|
-
});
|
|
11
|
-
const Options = z.object({
|
|
12
|
-
tokensPerItem: z
|
|
13
|
-
.number()
|
|
14
|
-
.min(1)
|
|
15
|
-
.max(100_000)
|
|
16
|
-
.optional()
|
|
17
|
-
.describe('The maximum number of tokens per item')
|
|
18
|
-
.default(250),
|
|
19
|
-
examples: z.array(Example).describe('Examples to filter the condition against').default([])
|
|
20
|
-
});
|
|
21
|
-
const END = '■END■';
|
|
22
|
-
Zai.prototype.filter = async function (input, condition, _options) {
|
|
23
|
-
const options = Options.parse(_options ?? {});
|
|
24
|
-
const tokenizer = await this.getTokenizer();
|
|
25
|
-
const taskId = this.taskId;
|
|
26
|
-
const taskType = 'zai.filter';
|
|
27
|
-
const MAX_ITEMS_PER_CHUNK = 50;
|
|
28
|
-
const TOKENS_TOTAL_MAX = this.Model.input.maxTokens - PROMPT_INPUT_BUFFER - PROMPT_OUTPUT_BUFFER;
|
|
29
|
-
const TOKENS_EXAMPLES_MAX = Math.floor(Math.max(250, TOKENS_TOTAL_MAX * 0.5));
|
|
30
|
-
const TOKENS_CONDITION_MAX = _.clamp(TOKENS_TOTAL_MAX * 0.25, 250, tokenizer.count(condition));
|
|
31
|
-
const TOKENS_INPUT_ARRAY_MAX = TOKENS_TOTAL_MAX - TOKENS_EXAMPLES_MAX - TOKENS_CONDITION_MAX;
|
|
32
|
-
condition = tokenizer.truncate(condition, TOKENS_CONDITION_MAX);
|
|
33
|
-
let chunks = [];
|
|
34
|
-
let currentChunk = [];
|
|
35
|
-
let currentChunkTokens = 0;
|
|
36
|
-
for (const element of input) {
|
|
37
|
-
const elementAsString = tokenizer.truncate(stringify(element, false), options.tokensPerItem);
|
|
38
|
-
const elementTokens = tokenizer.count(elementAsString);
|
|
39
|
-
if (currentChunkTokens + elementTokens > TOKENS_INPUT_ARRAY_MAX || currentChunk.length >= MAX_ITEMS_PER_CHUNK) {
|
|
40
|
-
chunks.push(currentChunk);
|
|
41
|
-
currentChunk = [];
|
|
42
|
-
currentChunkTokens = 0;
|
|
43
|
-
}
|
|
44
|
-
currentChunk.push(element);
|
|
45
|
-
currentChunkTokens += elementTokens;
|
|
46
|
-
}
|
|
47
|
-
if (currentChunk.length > 0) {
|
|
48
|
-
chunks.push(currentChunk);
|
|
49
|
-
}
|
|
50
|
-
chunks = chunks.filter((x) => x.length > 0);
|
|
51
|
-
// ■1:true■2:true■3:true
|
|
52
|
-
const formatInput = (input, condition) => {
|
|
53
|
-
return `
|
|
54
|
-
Condition to check:
|
|
55
|
-
${condition}
|
|
56
|
-
|
|
57
|
-
Items (from ■0 to ■${input.length - 1})
|
|
58
|
-
==============================
|
|
59
|
-
${input.map((x, idx) => `■${idx} = ${stringify(x.input ?? null, false)}`).join('\n')}
|
|
60
|
-
`.trim();
|
|
61
|
-
};
|
|
62
|
-
const formatExamples = (examples) => {
|
|
63
|
-
return `
|
|
64
|
-
${examples.map((x, idx) => `■${idx}:${!!x.filter ? 'true' : 'false'}`).join('')}
|
|
65
|
-
${END}
|
|
66
|
-
====
|
|
67
|
-
Here's the reasoning behind each example:
|
|
68
|
-
${examples.map((x, idx) => `■${idx}:${!!x.filter ? 'true' : 'false'}:${x.reason ?? 'No reason provided'}`).join('\n')}
|
|
69
|
-
`.trim();
|
|
70
|
-
};
|
|
71
|
-
const genericExamples = [
|
|
72
|
-
{
|
|
73
|
-
input: 'apple',
|
|
74
|
-
filter: true,
|
|
75
|
-
reason: 'Apples are fruits'
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
input: 'Apple Inc.',
|
|
79
|
-
filter: false,
|
|
80
|
-
reason: 'Apple Inc. is a company, not a fruit'
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
input: 'banana',
|
|
84
|
-
filter: true,
|
|
85
|
-
reason: 'Bananas are fruits'
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
input: 'potato',
|
|
89
|
-
filter: false,
|
|
90
|
-
reason: 'Potatoes are vegetables'
|
|
91
|
-
}
|
|
92
|
-
];
|
|
93
|
-
const genericExamplesMessages = [
|
|
94
|
-
{
|
|
95
|
-
type: 'text',
|
|
96
|
-
content: formatInput(genericExamples, 'is a fruit'),
|
|
97
|
-
role: 'user'
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
type: 'text',
|
|
101
|
-
content: formatExamples(genericExamples),
|
|
102
|
-
role: 'assistant'
|
|
103
|
-
}
|
|
104
|
-
];
|
|
105
|
-
const filterChunk = async (chunk) => {
|
|
106
|
-
const examples = taskId
|
|
107
|
-
? await this.adapter
|
|
108
|
-
.getExamples({
|
|
109
|
-
// The Table API can't search for a huge input string
|
|
110
|
-
input: JSON.stringify(chunk).slice(0, 1000),
|
|
111
|
-
taskType,
|
|
112
|
-
taskId
|
|
113
|
-
})
|
|
114
|
-
.then((x) => x.map((y) => ({ filter: y.output, input: y.input, reason: y.explanation })))
|
|
115
|
-
: [];
|
|
116
|
-
const allExamples = takeUntilTokens([...examples, ...(options.examples ?? [])], TOKENS_EXAMPLES_MAX, (el) => tokenizer.count(stringify(el.input)));
|
|
117
|
-
const exampleMessages = [
|
|
118
|
-
{
|
|
119
|
-
type: 'text',
|
|
120
|
-
content: formatInput(allExamples, condition),
|
|
121
|
-
role: 'user'
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
type: 'text',
|
|
125
|
-
content: formatExamples(allExamples),
|
|
126
|
-
role: 'assistant'
|
|
127
|
-
}
|
|
128
|
-
];
|
|
129
|
-
const output = await this.callModel({
|
|
130
|
-
systemPrompt: `
|
|
131
|
-
You are given a list of items. Your task is to filter out the items that meet the condition below.
|
|
132
|
-
You need to return the full list of items with the format:
|
|
133
|
-
■x:true■y:false■z:true (where x, y, z are the indices of the items in the list)
|
|
134
|
-
You need to start with "■0" and go up to the last index "■${chunk.length - 1}".
|
|
135
|
-
If an item meets the condition, you should return ":true", otherwise ":false".
|
|
136
|
-
|
|
137
|
-
IMPORTANT: Make sure to read the condition and the examples carefully before making your decision.
|
|
138
|
-
The condition is: "${condition}"
|
|
139
|
-
`.trim(),
|
|
140
|
-
stopSequences: [END],
|
|
141
|
-
messages: [
|
|
142
|
-
...(exampleMessages.length ? exampleMessages : genericExamplesMessages),
|
|
143
|
-
{
|
|
144
|
-
type: 'text',
|
|
145
|
-
content: formatInput(chunk.map((x) => ({ input: x })), condition),
|
|
146
|
-
role: 'user'
|
|
147
|
-
}
|
|
148
|
-
]
|
|
149
|
-
});
|
|
150
|
-
const answer = output.choices[0].content;
|
|
151
|
-
const indices = answer
|
|
152
|
-
.trim()
|
|
153
|
-
.split('■')
|
|
154
|
-
.filter((x) => x.length > 0)
|
|
155
|
-
.map((x) => {
|
|
156
|
-
const [idx, filter] = x.split(':');
|
|
157
|
-
return { idx: parseInt(idx.trim()), filter: filter.toLowerCase().trim() === 'true' };
|
|
158
|
-
});
|
|
159
|
-
const partial = chunk.filter((_, idx) => {
|
|
160
|
-
return indices.find((x) => x.idx === idx)?.filter ?? false;
|
|
161
|
-
});
|
|
162
|
-
if (taskId) {
|
|
163
|
-
const key = fastHash(stringify({
|
|
164
|
-
taskId,
|
|
165
|
-
taskType,
|
|
166
|
-
input: JSON.stringify(chunk),
|
|
167
|
-
condition
|
|
168
|
-
}));
|
|
169
|
-
await this.adapter.saveExample({
|
|
170
|
-
key,
|
|
171
|
-
taskType,
|
|
172
|
-
taskId,
|
|
173
|
-
input: JSON.stringify(chunk),
|
|
174
|
-
output: partial,
|
|
175
|
-
instructions: condition,
|
|
176
|
-
metadata: output.metadata
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
return partial;
|
|
180
|
-
};
|
|
181
|
-
const filteredChunks = await Promise.all(chunks.map(filterChunk));
|
|
182
|
-
return filteredChunks.flat();
|
|
183
|
-
};
|
|
184
|
-
//# sourceMappingURL=filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/operations/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter.test.js","sourceRoot":"","sources":["../../../src/operations/filter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
type Label = keyof typeof LABELS;
|
|
3
|
-
declare const LABELS: {
|
|
4
|
-
readonly ABSOLUTELY_NOT: "ABSOLUTELY_NOT";
|
|
5
|
-
readonly PROBABLY_NOT: "PROBABLY_NOT";
|
|
6
|
-
readonly AMBIGUOUS: "AMBIGUOUS";
|
|
7
|
-
readonly PROBABLY_YES: "PROBABLY_YES";
|
|
8
|
-
readonly ABSOLUTELY_YES: "ABSOLUTELY_YES";
|
|
9
|
-
};
|
|
10
|
-
type Example<T extends string> = {
|
|
11
|
-
input: unknown;
|
|
12
|
-
labels: Partial<Record<T, {
|
|
13
|
-
label: Label;
|
|
14
|
-
explanation?: string;
|
|
15
|
-
}>>;
|
|
16
|
-
};
|
|
17
|
-
export type Options<T extends string> = Omit<z.input<typeof Options>, 'examples'> & {
|
|
18
|
-
examples?: Array<Partial<Example<T>>>;
|
|
19
|
-
};
|
|
20
|
-
declare const Options: import("@bpinternal/zui").ZodObject<{
|
|
21
|
-
examples: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
|
|
22
|
-
input: import("@bpinternal/zui").ZodAny;
|
|
23
|
-
labels: import("@bpinternal/zui").ZodRecord<import("@bpinternal/zui").ZodString, import("@bpinternal/zui").ZodObject<{
|
|
24
|
-
label: import("@bpinternal/zui").ZodEnum<never>;
|
|
25
|
-
explanation: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
|
|
26
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
27
|
-
label: never;
|
|
28
|
-
explanation?: string | undefined;
|
|
29
|
-
}, {
|
|
30
|
-
label: never;
|
|
31
|
-
explanation?: string | undefined;
|
|
32
|
-
}>>;
|
|
33
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
34
|
-
labels: Record<string, {
|
|
35
|
-
label: never;
|
|
36
|
-
explanation?: string | undefined;
|
|
37
|
-
}>;
|
|
38
|
-
input?: any;
|
|
39
|
-
}, {
|
|
40
|
-
labels: Record<string, {
|
|
41
|
-
label: never;
|
|
42
|
-
explanation?: string | undefined;
|
|
43
|
-
}>;
|
|
44
|
-
input?: any;
|
|
45
|
-
}>, "many">>;
|
|
46
|
-
instructions: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
|
|
47
|
-
chunkLength: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodNumber>>;
|
|
48
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
49
|
-
examples: {
|
|
50
|
-
labels: Record<string, {
|
|
51
|
-
label: never;
|
|
52
|
-
explanation?: string | undefined;
|
|
53
|
-
}>;
|
|
54
|
-
input?: any;
|
|
55
|
-
}[];
|
|
56
|
-
chunkLength: number;
|
|
57
|
-
instructions?: string | undefined;
|
|
58
|
-
}, {
|
|
59
|
-
instructions?: string | undefined;
|
|
60
|
-
examples?: {
|
|
61
|
-
labels: Record<string, {
|
|
62
|
-
label: never;
|
|
63
|
-
explanation?: string | undefined;
|
|
64
|
-
}>;
|
|
65
|
-
input?: any;
|
|
66
|
-
}[] | undefined;
|
|
67
|
-
chunkLength?: number | undefined;
|
|
68
|
-
}>;
|
|
69
|
-
type Labels<T extends string> = Record<T, string>;
|
|
70
|
-
declare const Labels: z.ZodTransformer<import("@bpinternal/zui").ZodRecord<import("@bpinternal/zui").ZodString, import("@bpinternal/zui").ZodString>, Record<string, string>, Record<string, string>>;
|
|
71
|
-
declare module '../zai' {
|
|
72
|
-
interface Zai {
|
|
73
|
-
/** Tags the provided input with a list of predefined labels */
|
|
74
|
-
label<T extends string>(input: unknown, labels: Labels<T>, options?: Options<T>): Promise<{
|
|
75
|
-
[K in T]: boolean;
|
|
76
|
-
}>;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
export {};
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
import { fastHash, stringify, takeUntilTokens } from '../utils';
|
|
4
|
-
import { Zai } from '../zai';
|
|
5
|
-
import { PROMPT_INPUT_BUFFER } from './constants';
|
|
6
|
-
const LABELS = {
|
|
7
|
-
ABSOLUTELY_NOT: 'ABSOLUTELY_NOT',
|
|
8
|
-
PROBABLY_NOT: 'PROBABLY_NOT',
|
|
9
|
-
AMBIGUOUS: 'AMBIGUOUS',
|
|
10
|
-
PROBABLY_YES: 'PROBABLY_YES',
|
|
11
|
-
ABSOLUTELY_YES: 'ABSOLUTELY_YES'
|
|
12
|
-
};
|
|
13
|
-
const ALL_LABELS = Object.values(LABELS).join(' | ');
|
|
14
|
-
const Options = z.object({
|
|
15
|
-
examples: z
|
|
16
|
-
.array(z.object({
|
|
17
|
-
input: z.any(),
|
|
18
|
-
labels: z.record(z.object({ label: z.enum(ALL_LABELS), explanation: z.string().optional() }))
|
|
19
|
-
}))
|
|
20
|
-
.default([])
|
|
21
|
-
.describe('Examples to help the user make a decision'),
|
|
22
|
-
instructions: z.string().optional().describe('Instructions to guide the user on how to extract the data'),
|
|
23
|
-
chunkLength: z
|
|
24
|
-
.number()
|
|
25
|
-
.min(100)
|
|
26
|
-
.max(100_000)
|
|
27
|
-
.optional()
|
|
28
|
-
.describe('The maximum number of tokens per chunk')
|
|
29
|
-
.default(16_000)
|
|
30
|
-
});
|
|
31
|
-
const Labels = z.record(z.string().min(1).max(250), z.string()).superRefine((labels, ctx) => {
|
|
32
|
-
const keys = Object.keys(labels);
|
|
33
|
-
for (const key of keys) {
|
|
34
|
-
if (key.length < 1 || key.length > 250) {
|
|
35
|
-
ctx.addIssue({ message: `The label key "${key}" must be between 1 and 250 characters long`, code: 'custom' });
|
|
36
|
-
}
|
|
37
|
-
if (keys.lastIndexOf(key) !== keys.indexOf(key)) {
|
|
38
|
-
ctx.addIssue({ message: `Duplicate label: ${labels[key]}`, code: 'custom' });
|
|
39
|
-
}
|
|
40
|
-
if (/[^a-zA-Z0-9_]/.test(key)) {
|
|
41
|
-
ctx.addIssue({
|
|
42
|
-
message: `The label key "${key}" must only contain alphanumeric characters and underscores`,
|
|
43
|
-
code: 'custom'
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return true;
|
|
48
|
-
});
|
|
49
|
-
const parseLabel = (label) => {
|
|
50
|
-
label = label.toUpperCase().replace(/\s+/g, '_').replace(/_{2,}/g, '_').trim();
|
|
51
|
-
if (label.includes('ABSOLUTELY') && label.includes('NOT')) {
|
|
52
|
-
return LABELS.ABSOLUTELY_NOT;
|
|
53
|
-
}
|
|
54
|
-
else if (label.includes('NOT')) {
|
|
55
|
-
return LABELS.PROBABLY_NOT;
|
|
56
|
-
}
|
|
57
|
-
else if (label.includes('AMBIGUOUS')) {
|
|
58
|
-
return LABELS.AMBIGUOUS;
|
|
59
|
-
}
|
|
60
|
-
if (label.includes('YES')) {
|
|
61
|
-
return LABELS.PROBABLY_YES;
|
|
62
|
-
}
|
|
63
|
-
else if (label.includes('ABSOLUTELY') && label.includes('YES')) {
|
|
64
|
-
return LABELS.ABSOLUTELY_YES;
|
|
65
|
-
}
|
|
66
|
-
return LABELS.AMBIGUOUS;
|
|
67
|
-
};
|
|
68
|
-
Zai.prototype.label = async function (input, _labels, _options) {
|
|
69
|
-
const options = Options.parse(_options ?? {});
|
|
70
|
-
const labels = Labels.parse(_labels);
|
|
71
|
-
const tokenizer = await this.getTokenizer();
|
|
72
|
-
const taskId = this.taskId;
|
|
73
|
-
const taskType = 'zai.label';
|
|
74
|
-
const TOTAL_MAX_TOKENS = _.clamp(options.chunkLength, 1000, this.Model.input.maxTokens - PROMPT_INPUT_BUFFER);
|
|
75
|
-
const CHUNK_EXAMPLES_MAX_TOKENS = _.clamp(Math.floor(TOTAL_MAX_TOKENS * 0.5), 250, 10_000);
|
|
76
|
-
const CHUNK_INPUT_MAX_TOKENS = _.clamp(TOTAL_MAX_TOKENS - CHUNK_EXAMPLES_MAX_TOKENS, TOTAL_MAX_TOKENS * 0.5, TOTAL_MAX_TOKENS);
|
|
77
|
-
const inputAsString = stringify(input);
|
|
78
|
-
if (tokenizer.count(inputAsString) > CHUNK_INPUT_MAX_TOKENS) {
|
|
79
|
-
const tokens = tokenizer.split(inputAsString);
|
|
80
|
-
const chunks = _.chunk(tokens, CHUNK_INPUT_MAX_TOKENS).map((x) => x.join(''));
|
|
81
|
-
const allLabels = await Promise.all(chunks.map((chunk) => this.label(chunk, _labels)));
|
|
82
|
-
// Merge all the labels together (those who are true will remain true)
|
|
83
|
-
return allLabels.reduce((acc, x) => {
|
|
84
|
-
Object.keys(x).forEach((key) => {
|
|
85
|
-
if (acc[key] === true) {
|
|
86
|
-
acc[key] = true;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
acc[key] = acc[key] || x[key];
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
return acc;
|
|
93
|
-
}, {});
|
|
94
|
-
}
|
|
95
|
-
const END = '■END■';
|
|
96
|
-
const Key = fastHash(JSON.stringify({
|
|
97
|
-
taskType,
|
|
98
|
-
taskId,
|
|
99
|
-
input: inputAsString,
|
|
100
|
-
instructions: options.instructions ?? ''
|
|
101
|
-
}));
|
|
102
|
-
const convertToAnswer = (mapping) => {
|
|
103
|
-
return Object.keys(labels).reduce((acc, key) => {
|
|
104
|
-
acc[key] = mapping[key]?.label === 'ABSOLUTELY_YES' || mapping[key]?.label === 'PROBABLY_YES';
|
|
105
|
-
return acc;
|
|
106
|
-
}, {});
|
|
107
|
-
};
|
|
108
|
-
const examples = taskId
|
|
109
|
-
? await this.adapter.getExamples({
|
|
110
|
-
input: inputAsString,
|
|
111
|
-
taskType,
|
|
112
|
-
taskId
|
|
113
|
-
})
|
|
114
|
-
: [];
|
|
115
|
-
options.examples.forEach((example) => {
|
|
116
|
-
examples.push({
|
|
117
|
-
key: fastHash(JSON.stringify(example)),
|
|
118
|
-
input: example.input,
|
|
119
|
-
similarity: 1,
|
|
120
|
-
explanation: '',
|
|
121
|
-
output: example.labels
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
const exactMatch = examples.find((x) => x.key === Key);
|
|
125
|
-
if (exactMatch) {
|
|
126
|
-
return convertToAnswer(exactMatch.output);
|
|
127
|
-
}
|
|
128
|
-
const allExamples = takeUntilTokens(examples, CHUNK_EXAMPLES_MAX_TOKENS, (el) => tokenizer.count(stringify(el.input)) +
|
|
129
|
-
tokenizer.count(stringify(el.output)) +
|
|
130
|
-
tokenizer.count(el.explanation ?? '') +
|
|
131
|
-
100)
|
|
132
|
-
.map((example, idx) => [
|
|
133
|
-
{
|
|
134
|
-
type: 'text',
|
|
135
|
-
role: 'user',
|
|
136
|
-
content: `
|
|
137
|
-
Expert Example #${idx + 1}
|
|
138
|
-
|
|
139
|
-
<|start_input|>
|
|
140
|
-
${stringify(example.input)}
|
|
141
|
-
<|end_input|>`.trim()
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
type: 'text',
|
|
145
|
-
role: 'assistant',
|
|
146
|
-
content: `
|
|
147
|
-
Expert Example #${idx + 1}
|
|
148
|
-
============
|
|
149
|
-
${Object.keys(example.output)
|
|
150
|
-
.map((key) => `
|
|
151
|
-
■${key}:【${example.output[key]?.explanation}】:${example.output[key]?.label}■
|
|
152
|
-
`.trim())
|
|
153
|
-
.join('\n')}
|
|
154
|
-
${END}
|
|
155
|
-
`.trim()
|
|
156
|
-
}
|
|
157
|
-
])
|
|
158
|
-
.flat();
|
|
159
|
-
const format = Object.keys(labels)
|
|
160
|
-
.map((key) => {
|
|
161
|
-
return `
|
|
162
|
-
■${key}:【explanation (where "explanation" is answering the question "${labels[key]}")】:x■ (where x is ${ALL_LABELS})
|
|
163
|
-
`.trim();
|
|
164
|
-
})
|
|
165
|
-
.join('\n\n');
|
|
166
|
-
const output = await this.callModel({
|
|
167
|
-
stopSequences: [END],
|
|
168
|
-
systemPrompt: `
|
|
169
|
-
You need to tag the input with the following labels based on the question asked:
|
|
170
|
-
${LABELS.ABSOLUTELY_NOT}: You are absolutely sure that the answer is "NO" to the question.
|
|
171
|
-
${LABELS.PROBABLY_NOT}: You are leaning towards "NO" to the question.
|
|
172
|
-
${LABELS.AMBIGUOUS}: You are unsure about the answer to the question.
|
|
173
|
-
${LABELS.PROBABLY_YES}: You are leaning towards "YES" to the question.
|
|
174
|
-
${LABELS.ABSOLUTELY_YES}: You are absolutely sure that the answer is "YES" to the question.
|
|
175
|
-
|
|
176
|
-
You need to return a mapping of the labels, an explanation and the answer for each label following the format below:
|
|
177
|
-
\`\`\`
|
|
178
|
-
${format}
|
|
179
|
-
${END}
|
|
180
|
-
\`\`\`
|
|
181
|
-
|
|
182
|
-
${options.instructions}
|
|
183
|
-
|
|
184
|
-
===
|
|
185
|
-
You should consider the Expert Examples below to help you make your decision.
|
|
186
|
-
In your "Analysis", please refer to the Expert Examples # to justify your decision.
|
|
187
|
-
`.trim(),
|
|
188
|
-
messages: [
|
|
189
|
-
...allExamples,
|
|
190
|
-
{
|
|
191
|
-
type: 'text',
|
|
192
|
-
role: 'user',
|
|
193
|
-
content: `
|
|
194
|
-
Input to tag:
|
|
195
|
-
<|start_input|>
|
|
196
|
-
${inputAsString}
|
|
197
|
-
<|end_input|>
|
|
198
|
-
|
|
199
|
-
Answer with this following format:
|
|
200
|
-
\`\`\`
|
|
201
|
-
${format}
|
|
202
|
-
${END}
|
|
203
|
-
\`\`\`
|
|
204
|
-
|
|
205
|
-
Format cheatsheet:
|
|
206
|
-
\`\`\`
|
|
207
|
-
■label:【explanation】:x■
|
|
208
|
-
\`\`\`
|
|
209
|
-
|
|
210
|
-
Where \`x\` is one of the following: ${ALL_LABELS}
|
|
211
|
-
|
|
212
|
-
Remember: In your \`explanation\`, please refer to the Expert Examples # (and quote them) that are relevant to ground your decision-making process.
|
|
213
|
-
The Expert Examples are there to help you make your decision. They have been provided by experts in the field and their answers (and reasoning) are considered the ground truth and should be used as a reference to make your decision when applicable.
|
|
214
|
-
For example, you can say: "According to Expert Example #1, ..."`.trim()
|
|
215
|
-
}
|
|
216
|
-
]
|
|
217
|
-
});
|
|
218
|
-
const answer = output.choices[0].content;
|
|
219
|
-
const final = Object.keys(labels).reduce((acc, key) => {
|
|
220
|
-
const match = answer.match(new RegExp(`■${key}:【(.+)】:(\\w{2,})■`, 'i'));
|
|
221
|
-
if (match) {
|
|
222
|
-
const explanation = match[1].trim();
|
|
223
|
-
const label = parseLabel(match[2]);
|
|
224
|
-
acc[key] = {
|
|
225
|
-
explanation,
|
|
226
|
-
label
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
acc[key] = {
|
|
231
|
-
explanation: '',
|
|
232
|
-
label: LABELS.AMBIGUOUS
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
return acc;
|
|
236
|
-
}, {});
|
|
237
|
-
if (taskId) {
|
|
238
|
-
await this.adapter.saveExample({
|
|
239
|
-
key: Key,
|
|
240
|
-
taskType,
|
|
241
|
-
taskId,
|
|
242
|
-
instructions: options.instructions ?? '',
|
|
243
|
-
metadata: output.metadata,
|
|
244
|
-
input: inputAsString,
|
|
245
|
-
output: final
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
return convertToAnswer(final);
|
|
249
|
-
};
|
|
250
|
-
//# sourceMappingURL=label.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/operations/label.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"label.test.js","sourceRoot":"","sources":["../../../src/operations/label.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
export type Options = z.input<typeof Options>;
|
|
3
|
-
declare const Options: import("@bpinternal/zui").ZodObject<{
|
|
4
|
-
examples: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
|
|
5
|
-
input: import("@bpinternal/zui").ZodString;
|
|
6
|
-
output: import("@bpinternal/zui").ZodString;
|
|
7
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
8
|
-
input: string;
|
|
9
|
-
output: string;
|
|
10
|
-
}, {
|
|
11
|
-
input: string;
|
|
12
|
-
output: string;
|
|
13
|
-
}>, "many">>;
|
|
14
|
-
length: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodNumber>;
|
|
15
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
16
|
-
examples: {
|
|
17
|
-
input: string;
|
|
18
|
-
output: string;
|
|
19
|
-
}[];
|
|
20
|
-
length?: number | undefined;
|
|
21
|
-
}, {
|
|
22
|
-
length?: number | undefined;
|
|
23
|
-
examples?: {
|
|
24
|
-
input: string;
|
|
25
|
-
output: string;
|
|
26
|
-
}[] | undefined;
|
|
27
|
-
}>;
|
|
28
|
-
declare module '../zai' {
|
|
29
|
-
interface Zai {
|
|
30
|
-
/** Rewrites a string according to match the prompt */
|
|
31
|
-
rewrite(original: string, prompt: string, options?: Options): Promise<string>;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export {};
|