@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,106 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
import { fastHash, stringify, takeUntilTokens } from '../utils';
|
|
3
|
-
import { Zai } from '../zai';
|
|
4
|
-
import { PROMPT_INPUT_BUFFER } from './constants';
|
|
5
|
-
const Example = z.object({
|
|
6
|
-
input: z.string(),
|
|
7
|
-
output: z.string()
|
|
8
|
-
});
|
|
9
|
-
const Options = z.object({
|
|
10
|
-
examples: z.array(Example).default([]),
|
|
11
|
-
length: z.number().min(10).max(16_000).optional().describe('The maximum number of tokens to generate')
|
|
12
|
-
});
|
|
13
|
-
const START = '■START■';
|
|
14
|
-
const END = '■END■';
|
|
15
|
-
Zai.prototype.rewrite = async function (original, prompt, _options) {
|
|
16
|
-
const options = Options.parse(_options ?? {});
|
|
17
|
-
const tokenizer = await this.getTokenizer();
|
|
18
|
-
const taskId = this.taskId;
|
|
19
|
-
const taskType = 'zai.rewrite';
|
|
20
|
-
const INPUT_COMPONENT_SIZE = Math.max(100, (this.Model.input.maxTokens - PROMPT_INPUT_BUFFER) / 2);
|
|
21
|
-
prompt = tokenizer.truncate(prompt, INPUT_COMPONENT_SIZE);
|
|
22
|
-
const inputSize = tokenizer.count(original) + tokenizer.count(prompt);
|
|
23
|
-
const maxInputSize = this.Model.input.maxTokens - tokenizer.count(prompt) - PROMPT_INPUT_BUFFER;
|
|
24
|
-
if (inputSize > maxInputSize) {
|
|
25
|
-
throw new Error(`The input size is ${inputSize} tokens long, which is more than the maximum of ${maxInputSize} tokens for this model (${this.Model.name} = ${this.Model.input.maxTokens} tokens)`);
|
|
26
|
-
}
|
|
27
|
-
const instructions = [];
|
|
28
|
-
const originalSize = tokenizer.count(original);
|
|
29
|
-
if (options.length && originalSize > options.length) {
|
|
30
|
-
instructions.push(`The original text is ${originalSize} tokens long – it should be less than ${options.length}`);
|
|
31
|
-
instructions.push(`The text must be standalone and complete in less than ${options.length} tokens, so it has to be shortened to fit the length as well`);
|
|
32
|
-
}
|
|
33
|
-
const format = (before, prompt) => {
|
|
34
|
-
return `
|
|
35
|
-
Prompt: ${prompt}
|
|
36
|
-
|
|
37
|
-
${START}
|
|
38
|
-
${before}
|
|
39
|
-
${END}
|
|
40
|
-
`.trim();
|
|
41
|
-
};
|
|
42
|
-
const Key = fastHash(stringify({
|
|
43
|
-
taskId,
|
|
44
|
-
taskType,
|
|
45
|
-
input: original,
|
|
46
|
-
prompt
|
|
47
|
-
}));
|
|
48
|
-
const formatExample = ({ input, output, instructions }) => {
|
|
49
|
-
return [
|
|
50
|
-
{ type: 'text', role: 'user', content: format(input, instructions || prompt) },
|
|
51
|
-
{ type: 'text', role: 'assistant', content: `${START}${output}${END}` }
|
|
52
|
-
];
|
|
53
|
-
};
|
|
54
|
-
const defaultExamples = [
|
|
55
|
-
{ input: 'Hello, how are you?', output: 'Bonjour, comment ça va?', instructions: 'translate to French' },
|
|
56
|
-
{ input: '1\n2\n3', output: '3\n2\n1', instructions: 'reverse the order' }
|
|
57
|
-
];
|
|
58
|
-
const tableExamples = taskId
|
|
59
|
-
? await this.adapter.getExamples({
|
|
60
|
-
input: original,
|
|
61
|
-
taskId,
|
|
62
|
-
taskType
|
|
63
|
-
})
|
|
64
|
-
: [];
|
|
65
|
-
const exactMatch = tableExamples.find((x) => x.key === Key);
|
|
66
|
-
if (exactMatch) {
|
|
67
|
-
return exactMatch.output;
|
|
68
|
-
}
|
|
69
|
-
const savedExamples = [
|
|
70
|
-
...tableExamples.map((x) => ({ input: x.input, output: x.output })),
|
|
71
|
-
...options.examples
|
|
72
|
-
];
|
|
73
|
-
const REMAINING_TOKENS = this.Model.input.maxTokens - tokenizer.count(prompt) - PROMPT_INPUT_BUFFER;
|
|
74
|
-
const examples = takeUntilTokens(savedExamples.length ? savedExamples : defaultExamples, REMAINING_TOKENS, (el) => tokenizer.count(stringify(el.input)) + tokenizer.count(stringify(el.output)))
|
|
75
|
-
.map(formatExample)
|
|
76
|
-
.flat();
|
|
77
|
-
const output = await this.callModel({
|
|
78
|
-
systemPrompt: `
|
|
79
|
-
Rewrite the text between the ${START} and ${END} tags to match the user prompt.
|
|
80
|
-
${instructions.map((x) => `• ${x}`).join('\n')}
|
|
81
|
-
`.trim(),
|
|
82
|
-
messages: [...examples, { type: 'text', content: format(original, prompt), role: 'user' }],
|
|
83
|
-
maxTokens: options.length,
|
|
84
|
-
stopSequences: [END]
|
|
85
|
-
});
|
|
86
|
-
let result = output.choices[0].content;
|
|
87
|
-
if (result.includes(START)) {
|
|
88
|
-
result = result.slice(result.indexOf(START) + START.length);
|
|
89
|
-
}
|
|
90
|
-
if (result.includes(END)) {
|
|
91
|
-
result = result.slice(0, result.indexOf(END));
|
|
92
|
-
}
|
|
93
|
-
if (taskId) {
|
|
94
|
-
await this.adapter.saveExample({
|
|
95
|
-
key: Key,
|
|
96
|
-
metadata: output.metadata,
|
|
97
|
-
instructions: prompt,
|
|
98
|
-
input: original,
|
|
99
|
-
output: result,
|
|
100
|
-
taskType,
|
|
101
|
-
taskId
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return result;
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=rewrite.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../../src/operations/rewrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.test.js","sourceRoot":"","sources":["../../../src/operations/rewrite.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +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
|
-
prompt: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodString>;
|
|
5
|
-
format: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodString>;
|
|
6
|
-
length: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodNumber>;
|
|
7
|
-
intermediateFactor: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodNumber>;
|
|
8
|
-
maxIterations: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodNumber>;
|
|
9
|
-
sliding: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodObject<{
|
|
10
|
-
window: import("@bpinternal/zui").ZodNumber;
|
|
11
|
-
overlap: import("@bpinternal/zui").ZodNumber;
|
|
12
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
13
|
-
window: number;
|
|
14
|
-
overlap: number;
|
|
15
|
-
}, {
|
|
16
|
-
window: number;
|
|
17
|
-
overlap: number;
|
|
18
|
-
}>>;
|
|
19
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
20
|
-
length: number;
|
|
21
|
-
prompt: string;
|
|
22
|
-
format: string;
|
|
23
|
-
intermediateFactor: number;
|
|
24
|
-
maxIterations: number;
|
|
25
|
-
sliding: {
|
|
26
|
-
window: number;
|
|
27
|
-
overlap: number;
|
|
28
|
-
};
|
|
29
|
-
}, {
|
|
30
|
-
length?: number | undefined;
|
|
31
|
-
prompt?: string | undefined;
|
|
32
|
-
format?: string | undefined;
|
|
33
|
-
intermediateFactor?: number | undefined;
|
|
34
|
-
maxIterations?: number | undefined;
|
|
35
|
-
sliding?: {
|
|
36
|
-
window: number;
|
|
37
|
-
overlap: number;
|
|
38
|
-
} | undefined;
|
|
39
|
-
}>;
|
|
40
|
-
declare module '../zai' {
|
|
41
|
-
interface Zai {
|
|
42
|
-
/** Summarizes a text of any length to a summary of the desired length */
|
|
43
|
-
summarize(original: string, options?: Options): Promise<string>;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
import { Zai } from '../zai';
|
|
4
|
-
import { PROMPT_INPUT_BUFFER, PROMPT_OUTPUT_BUFFER } from './constants';
|
|
5
|
-
const Options = z.object({
|
|
6
|
-
prompt: z
|
|
7
|
-
.string()
|
|
8
|
-
.describe('What should the text be summarized to?')
|
|
9
|
-
.default('New information, concepts and ideas that are deemed important'),
|
|
10
|
-
format: z
|
|
11
|
-
.string()
|
|
12
|
-
.describe('How to format the example text')
|
|
13
|
-
.default('A normal text with multiple sentences and paragraphs. Use markdown to format the text into sections. Use headings, lists, and other markdown features to make the text more readable. Do not include links, images, or other non-text elements.'),
|
|
14
|
-
length: z.number().min(10).max(100_000).describe('The length of the summary in tokens').default(250),
|
|
15
|
-
intermediateFactor: z
|
|
16
|
-
.number()
|
|
17
|
-
.min(1)
|
|
18
|
-
.max(10)
|
|
19
|
-
.describe('How many times longer (than final length) are the intermediate summaries generated')
|
|
20
|
-
.default(4),
|
|
21
|
-
maxIterations: z.number().min(1).default(100),
|
|
22
|
-
sliding: z
|
|
23
|
-
.object({
|
|
24
|
-
window: z.number().min(10).max(100_000),
|
|
25
|
-
overlap: z.number().min(0).max(100_000)
|
|
26
|
-
})
|
|
27
|
-
.describe('Sliding window options')
|
|
28
|
-
.default({ window: 50_000, overlap: 250 })
|
|
29
|
-
});
|
|
30
|
-
const START = '■START■';
|
|
31
|
-
const END = '■END■';
|
|
32
|
-
Zai.prototype.summarize = async function (original, _options) {
|
|
33
|
-
const options = Options.parse(_options ?? {});
|
|
34
|
-
const tokenizer = await this.getTokenizer();
|
|
35
|
-
const INPUT_COMPONENT_SIZE = Math.max(100, (this.Model.input.maxTokens - PROMPT_INPUT_BUFFER) / 4);
|
|
36
|
-
options.prompt = tokenizer.truncate(options.prompt, INPUT_COMPONENT_SIZE);
|
|
37
|
-
options.format = tokenizer.truncate(options.format, INPUT_COMPONENT_SIZE);
|
|
38
|
-
const maxOutputSize = this.Model.output.maxTokens - PROMPT_OUTPUT_BUFFER;
|
|
39
|
-
if (options.length > maxOutputSize) {
|
|
40
|
-
throw new Error(`The desired output length is ${maxOutputSize} tokens long, which is more than the maximum of ${this.Model.output.maxTokens} tokens for this model (${this.Model.name})`);
|
|
41
|
-
}
|
|
42
|
-
// Ensure the sliding window is not bigger than the model input size
|
|
43
|
-
options.sliding.window = Math.min(options.sliding.window, this.Model.input.maxTokens - PROMPT_INPUT_BUFFER);
|
|
44
|
-
// Ensure the overlap is not bigger than the window
|
|
45
|
-
// Most extreme case possible (all 3 same size)
|
|
46
|
-
// |ooooooooooooooooooo|wwwwwwwwwwwwwww|ooooooooooooooooooo|
|
|
47
|
-
// |<---- overlap ---->|<-- window -->|<---- overlap ---->|
|
|
48
|
-
options.sliding.overlap = Math.min(options.sliding.overlap, options.sliding.window - 3 * options.sliding.overlap);
|
|
49
|
-
const format = (summary, newText) => {
|
|
50
|
-
return `
|
|
51
|
-
${START}
|
|
52
|
-
${summary.length ? summary : '<summary still empty>'}
|
|
53
|
-
${END}
|
|
54
|
-
|
|
55
|
-
Please amend the summary between the ${START} and ${END} tags to accurately reflect the prompt and the additional text below.
|
|
56
|
-
|
|
57
|
-
<|start_new_information|>
|
|
58
|
-
${newText}
|
|
59
|
-
<|new_information|>`.trim();
|
|
60
|
-
};
|
|
61
|
-
const tokens = tokenizer.split(original);
|
|
62
|
-
const parts = Math.ceil(tokens.length / (options.sliding.window - options.sliding.overlap));
|
|
63
|
-
let iteration = 0;
|
|
64
|
-
// We split it recursively into smaller parts until we're at less than 4 window slides per part
|
|
65
|
-
// Then we use a merge strategy to combine the sub-chunks summaries
|
|
66
|
-
// This is basically a merge sort algorithm (but summary instead of sorting)
|
|
67
|
-
const N = 2; // This is the merge sort exponent
|
|
68
|
-
const useMergeSort = parts >= Math.pow(2, N);
|
|
69
|
-
const chunkSize = Math.ceil(tokens.length / (parts * N));
|
|
70
|
-
if (useMergeSort) {
|
|
71
|
-
const chunks = _.chunk(tokens, chunkSize).map((x) => x.join(''));
|
|
72
|
-
const allSummaries = await Promise.all(chunks.map((chunk) => this.summarize(chunk, options)));
|
|
73
|
-
return this.summarize(allSummaries.join('\n\n============\n\n'), options);
|
|
74
|
-
}
|
|
75
|
-
const summaries = [];
|
|
76
|
-
let currentSummary = '';
|
|
77
|
-
for (let i = 0; i < tokens.length; i += options.sliding.window) {
|
|
78
|
-
const from = Math.max(0, i - options.sliding.overlap);
|
|
79
|
-
const to = Math.min(tokens.length, i + options.sliding.window + options.sliding.overlap);
|
|
80
|
-
const isFirst = i === 0;
|
|
81
|
-
const isLast = to >= tokens.length;
|
|
82
|
-
const slice = tokens.slice(from, to).join('');
|
|
83
|
-
if (iteration++ >= options.maxIterations) {
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
const instructions = [
|
|
87
|
-
`At each step, you will receive a part of the text to summarize. Make sure to reply with the new summary in the tags ${START} and ${END}.`,
|
|
88
|
-
'Summarize the text and make sure that the main points are included.',
|
|
89
|
-
'Ignore any unnecessary details and focus on the main points.',
|
|
90
|
-
'Use short and concise sentences to increase readability and information density.',
|
|
91
|
-
'When looking at the new information, focus on: ' + options.prompt
|
|
92
|
-
];
|
|
93
|
-
if (isFirst) {
|
|
94
|
-
instructions.push('The current summary is empty. You need to generate a summary that covers the main points of the text.');
|
|
95
|
-
}
|
|
96
|
-
let generationLength = options.length;
|
|
97
|
-
if (!isLast) {
|
|
98
|
-
generationLength = Math.min(tokenizer.count(currentSummary) + options.length * options.intermediateFactor, maxOutputSize);
|
|
99
|
-
instructions.push('You need to amend the summary to include the new information. Make sure the summary is complete and covers all the main points.');
|
|
100
|
-
instructions.push(`The current summary is ${currentSummary.length} tokens long.`);
|
|
101
|
-
instructions.push(`You can amend the summary to be up to ${generationLength} tokens long.`);
|
|
102
|
-
}
|
|
103
|
-
if (isLast) {
|
|
104
|
-
instructions.push('This is the last part you will have to summarize. Make sure the summary is complete and covers all the main points.');
|
|
105
|
-
instructions.push(`The current summary is ${currentSummary.length} tokens long. You need to make sure it is ${options.length} tokens or less.`);
|
|
106
|
-
if (currentSummary.length > options.length) {
|
|
107
|
-
instructions.push(`The current summary is already too long, so you need to shorten it to ${options.length} tokens while also including the new information.`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
const output = await this.callModel({
|
|
111
|
-
systemPrompt: `
|
|
112
|
-
You are summarizing a text. The text is split into ${parts} parts, and you are currently working on part ${iteration}.
|
|
113
|
-
At every step, you will receive the current summary and a new part of the text. You need to amend the summary to include the new information (if needed).
|
|
114
|
-
The summary needs to cover the main points of the text and must be concise.
|
|
115
|
-
|
|
116
|
-
IMPORTANT INSTRUCTIONS:
|
|
117
|
-
${instructions.map((x) => `- ${x.trim()}`).join('\n')}
|
|
118
|
-
|
|
119
|
-
FORMAT OF THE SUMMARY:
|
|
120
|
-
${options.format}
|
|
121
|
-
`.trim(),
|
|
122
|
-
messages: [{ type: 'text', content: format(currentSummary, slice), role: 'user' }],
|
|
123
|
-
maxTokens: generationLength,
|
|
124
|
-
stopSequences: [END]
|
|
125
|
-
});
|
|
126
|
-
let result = output.choices[0].content;
|
|
127
|
-
if (result.includes(START)) {
|
|
128
|
-
result = result.slice(result.indexOf(START) + START.length);
|
|
129
|
-
}
|
|
130
|
-
if (result.includes('■')) {
|
|
131
|
-
// can happen if the model truncates the text before the entire END tag is written
|
|
132
|
-
result = result.slice(0, result.indexOf('■'));
|
|
133
|
-
}
|
|
134
|
-
summaries.push(result);
|
|
135
|
-
currentSummary = result;
|
|
136
|
-
}
|
|
137
|
-
return currentSummary.trim();
|
|
138
|
-
};
|
|
139
|
-
//# sourceMappingURL=summarize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/operations/summarize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.test.js","sourceRoot":"","sources":["../../../src/operations/summarize.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEzD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IAEpB,EAAE,CAAC,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACxD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,oRAAoR;SAC7R,CAAC,CAAA;QAEF,KAAK,CAAC,MAAM,EAAE,qDAAqD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/E,KAAK,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzD,KAAK,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5E,KAAK,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7E,KAAK,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzE,KAAK,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,KAAK,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3E,KAAK,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,16 +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
|
-
length: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodNumber>;
|
|
5
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
6
|
-
length?: number | undefined;
|
|
7
|
-
}, {
|
|
8
|
-
length?: number | undefined;
|
|
9
|
-
}>;
|
|
10
|
-
declare module '../zai' {
|
|
11
|
-
interface Zai {
|
|
12
|
-
/** Generates a text of the desired length according to the prompt */
|
|
13
|
-
text(prompt: string, options?: Options): Promise<string>;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
import { Zai } from '../zai';
|
|
4
|
-
import { PROMPT_INPUT_BUFFER, PROMPT_OUTPUT_BUFFER } from './constants';
|
|
5
|
-
const Options = z.object({
|
|
6
|
-
length: z.number().min(1).max(100_000).optional().describe('The maximum number of tokens to generate')
|
|
7
|
-
});
|
|
8
|
-
Zai.prototype.text = async function (prompt, _options) {
|
|
9
|
-
const options = Options.parse(_options ?? {});
|
|
10
|
-
const tokenizer = await this.getTokenizer();
|
|
11
|
-
prompt = tokenizer.truncate(prompt, Math.max(this.Model.input.maxTokens - PROMPT_INPUT_BUFFER, 100));
|
|
12
|
-
if (options.length) {
|
|
13
|
-
options.length = Math.min(this.Model.output.maxTokens - PROMPT_OUTPUT_BUFFER, options.length);
|
|
14
|
-
}
|
|
15
|
-
const instructions = [];
|
|
16
|
-
let chart = '';
|
|
17
|
-
if (options.length) {
|
|
18
|
-
const length = _.clamp(options.length * 0.75, 5, options.length);
|
|
19
|
-
instructions.push(`IMPORTANT: Length constraint: ${length} tokens/words`);
|
|
20
|
-
instructions.push(`The text must be standalone and complete in less than ${length} tokens/words`);
|
|
21
|
-
}
|
|
22
|
-
if (options.length && options.length <= 500) {
|
|
23
|
-
chart = `
|
|
24
|
-
| Tokens | Text Length (approximate) |
|
|
25
|
-
|-------------|--------------------------------------|
|
|
26
|
-
| < 5 tokens | 1-3 words |
|
|
27
|
-
| 5-10 tokens | 3-6 words |
|
|
28
|
-
| 10-20 tokens| 6-15 words |
|
|
29
|
-
| 20-50 tokens| A short sentence (15-30 words) |
|
|
30
|
-
| 50-100 tokens| A medium sentence (30-70 words) |
|
|
31
|
-
| 100-200 tokens| A short paragraph (70-150 words) |
|
|
32
|
-
| 200-300 tokens| A medium paragraph (150-200 words) |
|
|
33
|
-
| 300-500 tokens| A long paragraph (200-300 words) |`.trim();
|
|
34
|
-
}
|
|
35
|
-
const output = await this.callModel({
|
|
36
|
-
systemPrompt: `
|
|
37
|
-
Generate a text that fulfills the user prompt below. Answer directly to the prompt, without any acknowledgements or fluff. Also, make sure the text is standalone and complete.
|
|
38
|
-
${instructions.map((x) => `- ${x}`).join('\n')}
|
|
39
|
-
${chart}
|
|
40
|
-
`.trim(),
|
|
41
|
-
temperature: 0.7,
|
|
42
|
-
messages: [{ type: 'text', content: prompt, role: 'user' }],
|
|
43
|
-
maxTokens: options.length
|
|
44
|
-
});
|
|
45
|
-
return output.choices[0].content;
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=text.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/operations/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAEnC,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGvE,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACvG,CAAC,CAAA;AASF,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,WAAsB,MAAM,EAAE,QAAQ;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;IAE3C,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAA;IAEpG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/F,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,IAAI,KAAK,GAAG,EAAE,CAAA;IAEd,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAChE,YAAY,CAAC,IAAI,CAAC,iCAAiC,MAAM,eAAe,CAAC,CAAA;QACzE,YAAY,CAAC,IAAI,CAAC,yDAAyD,MAAM,eAAe,CAAC,CAAA;IACnG,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC5C,KAAK,GAAG;;;;;;;;;;uDAU2C,CAAC,IAAI,EAAE,CAAA;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;QAClC,YAAY,EAAE;;EAEhB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EAC5C,KAAK;CACN,CAAC,IAAI,EAAE;QACJ,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3D,SAAS,EAAE,OAAO,CAAC,MAAM;KAC1B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAiB,CAAA;AAC5C,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../src/operations/text.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE7C,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;IAC7C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IAEpB,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAC1D,KAAK,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAE1D,KAAK,CAAC,KAAK,EAAE,wCAAwC,EAAE;YACrD,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,oEAAoE;oBAC3E,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,4DAA4D;iBACrE;gBACD,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B,EAAE;gBACzF;oBACE,KAAK,EAAE,wDAAwD;oBAC/D,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,sCAAsC;iBAC/C;aACF;SACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAE1D,KAAK,CAAC,KAAK,EAAE,kCAAkC,EAAE;YAC/C,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,6EAA6E;oBACpF,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,kDAAkD;iBAC3D;gBACD;oBACE,KAAK,EACH,8HAA8H;oBAChI,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,oDAAoD;iBAC7D;aACF;SACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1G,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAEvD,KAAK,CAAC,KAAK,EAAE,0CAA0C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zai-learn.test.js","sourceRoot":"","sources":["../../../src/operations/zai-learn.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zai-retry.test.js","sourceRoot":"","sources":["../../../src/operations/zai-retry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAI7C,QAAQ,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;IAC9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAErD,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,cAAc,GAAG;YACrB,GAAG,MAAM;YACT,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACzC,CAAC;gBACD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC,CAAC;SACkB,CAAA;QAEtB,MAAM,KAAK,GAAG,MAAM,GAAG;aACpB,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;aAChC,KAAK,CAAC,+CAA+C,EAAE,wBAAwB,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QAErD,MAAM,cAAc,GAAG;YACrB,GAAG,MAAM;YACT,UAAU,EAAE,EAAE;SACM,CAAA;QAEtB,MAAM,KAAK,GAAG,MAAM,GAAG;aACpB,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;aAChC,KAAK,CAAC,+CAA+C,EAAE,wBAAwB,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,MAAM,CAAC,EAAE,CAAC,CAAC,oBAAoB,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG;YACrB,GAAG,MAAM;YACT,UAAU,EAAE,EAAE;SACM,CAAA;QAEtB,MAAM,KAAK,GAAG,GAAG;aACd,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;aAC1D,KAAK,CAAC,+CAA+C,EAAE,wBAAwB,CAAC,CAAA;QAEnF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/src/utils.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Client } from '@botpress/client';
|
|
2
|
-
import { z } from '@bpinternal/zui';
|
|
3
|
-
export declare const stringify: (input: unknown, beautify?: boolean) => string;
|
|
4
|
-
export declare const BotpressClient: z.Schema<Client, import("@bpinternal/zui").ZodTypeDef, Client>;
|
|
5
|
-
export declare function fastHash(str: string): string;
|
|
6
|
-
export declare const takeUntilTokens: <T>(arr: T[], tokens: number, count: (el: T) => number) => T[];
|
|
7
|
-
export type GenerationMetadata = z.input<typeof GenerationMetadata>;
|
|
8
|
-
export declare const GenerationMetadata: import("@bpinternal/zui").ZodObject<{
|
|
9
|
-
model: import("@bpinternal/zui").ZodString;
|
|
10
|
-
cost: import("@bpinternal/zui").ZodObject<{
|
|
11
|
-
input: import("@bpinternal/zui").ZodNumber;
|
|
12
|
-
output: import("@bpinternal/zui").ZodNumber;
|
|
13
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
14
|
-
input: number;
|
|
15
|
-
output: number;
|
|
16
|
-
}, {
|
|
17
|
-
input: number;
|
|
18
|
-
output: number;
|
|
19
|
-
}>;
|
|
20
|
-
latency: import("@bpinternal/zui").ZodNumber;
|
|
21
|
-
tokens: import("@bpinternal/zui").ZodObject<{
|
|
22
|
-
input: import("@bpinternal/zui").ZodNumber;
|
|
23
|
-
output: import("@bpinternal/zui").ZodNumber;
|
|
24
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
25
|
-
input: number;
|
|
26
|
-
output: number;
|
|
27
|
-
}, {
|
|
28
|
-
input: number;
|
|
29
|
-
output: number;
|
|
30
|
-
}>;
|
|
31
|
-
}, "strip", import("@bpinternal/zui").ZodTypeAny, {
|
|
32
|
-
model: string;
|
|
33
|
-
cost: {
|
|
34
|
-
input: number;
|
|
35
|
-
output: number;
|
|
36
|
-
};
|
|
37
|
-
latency: number;
|
|
38
|
-
tokens: {
|
|
39
|
-
input: number;
|
|
40
|
-
output: number;
|
|
41
|
-
};
|
|
42
|
-
}, {
|
|
43
|
-
model: string;
|
|
44
|
-
cost: {
|
|
45
|
-
input: number;
|
|
46
|
-
output: number;
|
|
47
|
-
};
|
|
48
|
-
latency: number;
|
|
49
|
-
tokens: {
|
|
50
|
-
input: number;
|
|
51
|
-
output: number;
|
|
52
|
-
};
|
|
53
|
-
}>;
|
package/dist/src/utils.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { z } from '@bpinternal/zui';
|
|
2
|
-
export const stringify = (input, beautify = true) => {
|
|
3
|
-
return typeof input === 'string' && !!input.length
|
|
4
|
-
? input
|
|
5
|
-
: input
|
|
6
|
-
? JSON.stringify(input, beautify ? null : undefined, beautify ? 2 : undefined)
|
|
7
|
-
: '<input is null, false, undefined or empty>';
|
|
8
|
-
};
|
|
9
|
-
export const BotpressClient = z.custom((value) => typeof value === 'object' && value !== null && 'callAction' in value && typeof value.callAction === 'function', {
|
|
10
|
-
message: 'Invalid Botpress Client. Make sure to pass an instance of @botpress/client'
|
|
11
|
-
});
|
|
12
|
-
export function fastHash(str) {
|
|
13
|
-
let hash = 0;
|
|
14
|
-
for (let i = 0; i < str.length; i++) {
|
|
15
|
-
hash = (hash << 5) - hash + str.charCodeAt(i);
|
|
16
|
-
hash |= 0; // Convert to 32bit integer
|
|
17
|
-
}
|
|
18
|
-
return (hash >>> 0).toString(16); // Convert to unsigned and then to hex
|
|
19
|
-
}
|
|
20
|
-
export const takeUntilTokens = (arr, tokens, count) => {
|
|
21
|
-
const result = [];
|
|
22
|
-
let total = 0;
|
|
23
|
-
for (const value of arr) {
|
|
24
|
-
const valueTokens = count(value);
|
|
25
|
-
if (total + valueTokens > tokens) {
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
total += valueTokens;
|
|
29
|
-
result.push(value);
|
|
30
|
-
}
|
|
31
|
-
return result;
|
|
32
|
-
};
|
|
33
|
-
export const GenerationMetadata = z.object({
|
|
34
|
-
model: z.string(),
|
|
35
|
-
cost: z
|
|
36
|
-
.object({
|
|
37
|
-
input: z.number(),
|
|
38
|
-
output: z.number()
|
|
39
|
-
})
|
|
40
|
-
.describe('Cost in $USD'),
|
|
41
|
-
latency: z.number().describe('Latency in milliseconds'),
|
|
42
|
-
tokens: z
|
|
43
|
-
.object({
|
|
44
|
-
input: z.number(),
|
|
45
|
-
output: z.number()
|
|
46
|
-
})
|
|
47
|
-
.describe('Number of tokens used')
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/src/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAEnC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;IAC3D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM;QAChD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,CAAC,CAAC,4CAA4C,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,YAAY,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAChH;IACE,OAAO,EAAE,4EAA4E;CACtF,CACF,CAAA;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,IAAI,CAAC,CAAA,CAAC,2BAA2B;IACvC,CAAC;IACD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,CAAC,sCAAsC;AACzE,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,GAAQ,EAAE,MAAc,EAAE,KAAwB,EAAE,EAAE;IACvF,MAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,KAAK,GAAG,WAAW,GAAG,MAAM,EAAE,CAAC;YACjC,MAAK;QACP,CAAC;QACD,KAAK,IAAI,WAAW,CAAA;QACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;SACD,QAAQ,CAAC,cAAc,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACvD,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;SACD,QAAQ,CAAC,uBAAuB,CAAC;CACrC,CAAC,CAAA"}
|