@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.
Files changed (95) hide show
  1. package/dist/index.cjs +1898 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +916 -0
  4. package/dist/index.d.ts +916 -0
  5. package/dist/index.js +1868 -0
  6. package/dist/index.js.map +1 -0
  7. package/ensure-env.cjs +9 -0
  8. package/package.json +20 -19
  9. package/tsconfig.json +23 -18
  10. package/tsup.config.ts +16 -0
  11. package/vitest.config.ts +2 -16
  12. package/vitest.setup.ts +11 -15
  13. package/dist/src/adapters/adapter.d.ts +0 -27
  14. package/dist/src/adapters/adapter.js +0 -3
  15. package/dist/src/adapters/adapter.js.map +0 -1
  16. package/dist/src/adapters/botpress-table.d.ts +0 -155
  17. package/dist/src/adapters/botpress-table.js +0 -170
  18. package/dist/src/adapters/botpress-table.js.map +0 -1
  19. package/dist/src/adapters/memory.d.ts +0 -7
  20. package/dist/src/adapters/memory.js +0 -13
  21. package/dist/src/adapters/memory.js.map +0 -1
  22. package/dist/src/env.d.ts +0 -1
  23. package/dist/src/env.js +0 -27
  24. package/dist/src/env.js.map +0 -1
  25. package/dist/src/index.d.ts +0 -9
  26. package/dist/src/index.js +0 -10
  27. package/dist/src/index.js.map +0 -1
  28. package/dist/src/models.d.ts +0 -253
  29. package/dist/src/models.js +0 -348
  30. package/dist/src/models.js.map +0 -1
  31. package/dist/src/operations/__tests/index.d.ts +0 -19
  32. package/dist/src/operations/__tests/index.js +0 -24
  33. package/dist/src/operations/__tests/index.js.map +0 -1
  34. package/dist/src/operations/check.d.ts +0 -36
  35. package/dist/src/operations/check.js +0 -146
  36. package/dist/src/operations/check.js.map +0 -1
  37. package/dist/src/operations/check.test.d.ts +0 -1
  38. package/dist/src/operations/check.test.js.map +0 -1
  39. package/dist/src/operations/constants.d.ts +0 -2
  40. package/dist/src/operations/constants.js +0 -3
  41. package/dist/src/operations/constants.js.map +0 -1
  42. package/dist/src/operations/errors.d.ts +0 -5
  43. package/dist/src/operations/errors.js +0 -11
  44. package/dist/src/operations/errors.js.map +0 -1
  45. package/dist/src/operations/extract.d.ts +0 -20
  46. package/dist/src/operations/extract.js +0 -235
  47. package/dist/src/operations/extract.js.map +0 -1
  48. package/dist/src/operations/extract.test.d.ts +0 -1
  49. package/dist/src/operations/extract.test.js.map +0 -1
  50. package/dist/src/operations/filter.d.ts +0 -39
  51. package/dist/src/operations/filter.js +0 -184
  52. package/dist/src/operations/filter.js.map +0 -1
  53. package/dist/src/operations/filter.test.d.ts +0 -1
  54. package/dist/src/operations/filter.test.js.map +0 -1
  55. package/dist/src/operations/label.d.ts +0 -79
  56. package/dist/src/operations/label.js +0 -250
  57. package/dist/src/operations/label.js.map +0 -1
  58. package/dist/src/operations/label.test.d.ts +0 -1
  59. package/dist/src/operations/label.test.js.map +0 -1
  60. package/dist/src/operations/rewrite.d.ts +0 -34
  61. package/dist/src/operations/rewrite.js +0 -106
  62. package/dist/src/operations/rewrite.js.map +0 -1
  63. package/dist/src/operations/rewrite.test.d.ts +0 -1
  64. package/dist/src/operations/rewrite.test.js.map +0 -1
  65. package/dist/src/operations/summarize.d.ts +0 -46
  66. package/dist/src/operations/summarize.js +0 -139
  67. package/dist/src/operations/summarize.js.map +0 -1
  68. package/dist/src/operations/summarize.test.d.ts +0 -1
  69. package/dist/src/operations/summarize.test.js.map +0 -1
  70. package/dist/src/operations/text.d.ts +0 -16
  71. package/dist/src/operations/text.js +0 -47
  72. package/dist/src/operations/text.js.map +0 -1
  73. package/dist/src/operations/text.test.d.ts +0 -1
  74. package/dist/src/operations/text.test.js.map +0 -1
  75. package/dist/src/operations/zai-learn.test.d.ts +0 -1
  76. package/dist/src/operations/zai-learn.test.js.map +0 -1
  77. package/dist/src/operations/zai-retry.test.d.ts +0 -1
  78. package/dist/src/operations/zai-retry.test.js.map +0 -1
  79. package/dist/src/utils.d.ts +0 -53
  80. package/dist/src/utils.js +0 -49
  81. package/dist/src/utils.js.map +0 -1
  82. package/dist/src/zai.d.ts +0 -91
  83. package/dist/src/zai.js +0 -139
  84. package/dist/src/zai.js.map +0 -1
  85. package/dist/tsconfig.tsbuildinfo +0 -1
  86. package/dist/typings.d.ts +0 -901
  87. package/dist/typings.tsbuildinfo +0 -1
  88. package/dist/vitest.config.d.ts +0 -2
  89. package/dist/vitest.config.js +0 -21
  90. package/dist/vitest.config.js.map +0 -1
  91. package/dist/vitest.setup.d.ts +0 -1
  92. package/dist/vitest.setup.js +0 -22
  93. package/dist/vitest.setup.js.map +0 -1
  94. package/tsconfig.types.json +0 -22
  95. 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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAEnC,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,MAAM,MAAM,GAAG;IACb,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;CACxB,CAAA;AACV,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAWpD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KACvG,CAAC,CACH;SACA,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,2CAA2C,CAAC;IACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACzG,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,GAAG,CAAC,OAAO,CAAC;SACZ,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;SAClD,OAAO,CAAC,MAAM,CAAC;CACnB,CAAC,CAAA;AAIF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IAC1F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEhC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACvC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,6CAA6C,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/G,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC;gBACX,OAAO,EAAE,kBAAkB,GAAG,6DAA6D;gBAC3F,IAAI,EAAE,QAAQ;aACf,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA;AAeF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAS,EAAE;IAC1C,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9E,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,cAAc,CAAA;IAC9B,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,YAAY,CAAA;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,SAAS,CAAA;IACzB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,YAAY,CAAA;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,cAAc,CAAA;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAA;AACzB,CAAC,CAAA;AAED,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,WAAwC,KAAK,EAAE,OAAO,EAAE,QAAQ;IACzF,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;IAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,MAAM,QAAQ,GAAG,WAAW,CAAA;IAE5B,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAAA;IAC7G,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IAC1F,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CACpC,gBAAgB,GAAG,yBAAyB,EAC5C,gBAAgB,GAAG,GAAG,EACtB,gBAAgB,CACjB,CAAA;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAEtC,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,sBAAsB,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QAEtF,sEAAsE;QACtE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;gBACjB,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAEJ,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAA;IAEnB,MAAM,GAAG,GAAG,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;QACb,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;KACzC,CAAC,CACH,CAAA;IAED,MAAM,eAAe,GAAG,CAAC,OAA4D,EAAE,EAAE;QACvF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,cAAc,CAAA;YAC7F,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAA0B,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM;QACrB,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAQ5B;YACA,KAAK,EAAE,aAAa;YACpB,QAAQ;YACR,MAAM;SACP,CAAC;QACJ,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,OAAO,CAAC,MAKf;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IACtD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CACjC,QAAQ,EACR,yBAAyB,EACzB,CAAC,EAAE,EAAE,EAAE,CACL,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACpC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC;QACrC,GAAG,CACN;SACE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACrB;YACE,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE;kBACC,GAAG,GAAG,CAAC;;;EAGvB,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;cACZ,CAAC,IAAI,EAAE;SACd;QACD;YACE,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,WAAoB;YAC1B,OAAO,EAAE;kBACC,GAAG,GAAG,CAAC;;EAEvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;iBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX;GACD,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK;CACzE,CAAC,IAAI,EAAE,CACL;iBACA,IAAI,CAAC,IAAI,CAAC;EACX,GAAG;CACJ,CAAC,IAAI,EAAE;SACD;KACF,CAAC;SACD,IAAI,EAAE,CAAA;IAET,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,OAAO;GACV,GAAG,iEAAiE,MAAM,CAAC,GAAG,CAAC,sBAAsB,UAAU;CACjH,CAAC,IAAI,EAAE,CAAA;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAA;IAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;QAClC,aAAa,EAAE,CAAC,GAAG,CAAC;QACpB,YAAY,EAAE;;EAEhB,MAAM,CAAC,cAAc;EACrB,MAAM,CAAC,YAAY;EACnB,MAAM,CAAC,SAAS;EAChB,MAAM,CAAC,YAAY;EACnB,MAAM,CAAC,cAAc;;;;EAIrB,MAAM;EACN,GAAG;;;EAGH,OAAO,CAAC,YAAY;;;;;CAKrB,CAAC,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,GAAG,WAAW;YACd;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;;;EAGf,aAAa;;;;;EAKb,MAAM;EACN,GAAG;;;;;;;;uCAQkC,UAAU;;;;gEAIe,CAAC,IAAI,EAAE;aAChE;SACF;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAiB,CAAA;IAElD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAA;QACxE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACnC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAClC,GAAG,CAAC,GAAG,CAAC,GAAG;gBACT,WAAW;gBACX,KAAK;aACN,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG;gBACT,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,MAAM,CAAC,SAAS;aACxB,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAKJ,CAAA;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7B,GAAG,EAAE,GAAG;YACR,QAAQ;YACR,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;YACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC,CAAA"}
@@ -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 {};