@llumiverse/core 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/lib/cjs/CompletionStream.js +31 -10
- package/lib/cjs/CompletionStream.js.map +1 -1
- package/lib/cjs/Driver.js +19 -21
- package/lib/cjs/Driver.js.map +1 -1
- package/lib/cjs/async.js +3 -2
- package/lib/cjs/async.js.map +1 -1
- package/lib/cjs/formatters/index.js +1 -3
- package/lib/cjs/formatters/index.js.map +1 -1
- package/lib/cjs/formatters/{claude.js → nova.js} +33 -37
- package/lib/cjs/formatters/nova.js.map +1 -0
- package/lib/cjs/formatters/openai.js +36 -6
- package/lib/cjs/formatters/openai.js.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/options/bedrock.js +343 -0
- package/lib/cjs/options/bedrock.js.map +1 -0
- package/lib/cjs/options/groq.js +37 -0
- package/lib/cjs/options/groq.js.map +1 -0
- package/lib/cjs/options/openai.js +123 -0
- package/lib/cjs/options/openai.js.map +1 -0
- package/lib/cjs/options/vertexai.js +257 -0
- package/lib/cjs/options/vertexai.js.map +1 -0
- package/lib/cjs/options.js +54 -0
- package/lib/cjs/options.js.map +1 -0
- package/lib/cjs/types.js +34 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/CompletionStream.js +31 -10
- package/lib/esm/CompletionStream.js.map +1 -1
- package/lib/esm/Driver.js +20 -22
- package/lib/esm/Driver.js.map +1 -1
- package/lib/esm/async.js +3 -2
- package/lib/esm/async.js.map +1 -1
- package/lib/esm/formatters/index.js +1 -3
- package/lib/esm/formatters/index.js.map +1 -1
- package/lib/esm/formatters/{claude.js → nova.js} +32 -36
- package/lib/esm/formatters/nova.js.map +1 -0
- package/lib/esm/formatters/openai.js +36 -6
- package/lib/esm/formatters/openai.js.map +1 -1
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/options/bedrock.js +340 -0
- package/lib/esm/options/bedrock.js.map +1 -0
- package/lib/esm/options/groq.js +34 -0
- package/lib/esm/options/groq.js.map +1 -0
- package/lib/esm/options/openai.js +120 -0
- package/lib/esm/options/openai.js.map +1 -0
- package/lib/esm/options/vertexai.js +253 -0
- package/lib/esm/options/vertexai.js.map +1 -0
- package/lib/esm/options.js +50 -0
- package/lib/esm/options.js.map +1 -0
- package/lib/esm/types.js +33 -0
- package/lib/esm/types.js.map +1 -1
- package/lib/types/CompletionStream.d.ts +1 -1
- package/lib/types/CompletionStream.d.ts.map +1 -1
- package/lib/types/Driver.d.ts +5 -4
- package/lib/types/Driver.d.ts.map +1 -1
- package/lib/types/async.d.ts +3 -2
- package/lib/types/async.d.ts.map +1 -1
- package/lib/types/formatters/generic.d.ts.map +1 -1
- package/lib/types/formatters/index.d.ts +1 -3
- package/lib/types/formatters/index.d.ts.map +1 -1
- package/lib/types/formatters/nova.d.ts +40 -0
- package/lib/types/formatters/nova.d.ts.map +1 -0
- package/lib/types/formatters/openai.d.ts +13 -1
- package/lib/types/formatters/openai.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/options/bedrock.d.ts +32 -0
- package/lib/types/options/bedrock.d.ts.map +1 -0
- package/lib/types/options/groq.d.ts +12 -0
- package/lib/types/options/groq.d.ts.map +1 -0
- package/lib/types/options/openai.d.ts +21 -0
- package/lib/types/options/openai.d.ts.map +1 -0
- package/lib/types/options/vertexai.d.ts +52 -0
- package/lib/types/options/vertexai.d.ts.map +1 -0
- package/lib/types/options.d.ts +14 -0
- package/lib/types/options.d.ts.map +1 -0
- package/lib/types/types.d.ts +133 -49
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/CompletionStream.ts +31 -11
- package/src/Driver.ts +29 -25
- package/src/async.ts +7 -5
- package/src/formatters/index.ts +1 -3
- package/src/formatters/nova.ts +141 -0
- package/src/formatters/openai.ts +52 -12
- package/src/index.ts +2 -1
- package/src/options/bedrock.ts +388 -0
- package/src/options/groq.ts +47 -0
- package/src/options/openai.ts +148 -0
- package/src/options/vertexai.ts +312 -0
- package/src/options.ts +62 -0
- package/src/types.ts +167 -52
- package/lib/cjs/formatters/claude.js.map +0 -1
- package/lib/cjs/formatters/llama2.js +0 -48
- package/lib/cjs/formatters/llama2.js.map +0 -1
- package/lib/cjs/formatters/llama3.js +0 -42
- package/lib/cjs/formatters/llama3.js.map +0 -1
- package/lib/esm/formatters/claude.js.map +0 -1
- package/lib/esm/formatters/llama2.js +0 -45
- package/lib/esm/formatters/llama2.js.map +0 -1
- package/lib/esm/formatters/llama3.js +0 -39
- package/lib/esm/formatters/llama3.js.map +0 -1
- package/lib/types/formatters/claude.d.ts +0 -25
- package/lib/types/formatters/claude.d.ts.map +0 -1
- package/lib/types/formatters/llama2.d.ts +0 -4
- package/lib/types/formatters/llama2.d.ts.map +0 -1
- package/lib/types/formatters/llama3.d.ts +0 -7
- package/lib/types/formatters/llama3.d.ts.map +0 -1
- package/src/formatters/claude.ts +0 -131
- package/src/formatters/llama2.ts +0 -58
- package/src/formatters/llama3.ts +0 -55
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Llumiverse - Universal LLM Connectors for Node.js
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
[](https://badge.fury.io/js/%40llumiverse%2Fcore)
|
|
5
5
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ The following LLM platforms are supported in the current version:
|
|
|
14
14
|
| --- | :-: | :-: | :-: | :-: | :-: |
|
|
15
15
|
| AWS Bedrock | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
16
16
|
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
17
|
-
| Google Vertex AI | ✅ | ✅ |
|
|
17
|
+
| Google Vertex AI | ✅ | ✅ | ✅ | ✅ | By Request |
|
|
18
18
|
| Groq | ✅ | ✅ | ✅ | N/A | N/A |
|
|
19
19
|
| HuggingFace Inference Endpoints | ✅ | ✅ | N/A | N/A | N/A |
|
|
20
20
|
| IBM WatsonX | ✅ | ✅ | ✅ | N/A | By Request |
|
|
@@ -292,7 +292,7 @@ The `task_type` parameter is specific to the [textembedding-gecko model](https:/
|
|
|
292
292
|
## Contributing
|
|
293
293
|
|
|
294
294
|
Contributions are welcome!
|
|
295
|
-
Please see [CONTRIBUTING.md](https://github.com/
|
|
295
|
+
Please see [CONTRIBUTING.md](https://github.com/vertesia/llumiverse/blob/main/CONTRIBUTING.md) for more details.
|
|
296
296
|
|
|
297
297
|
|
|
298
298
|
## License
|
|
@@ -22,25 +22,46 @@ class DefaultCompletionStream {
|
|
|
22
22
|
const chunks = this.chunks;
|
|
23
23
|
this.driver.logger.debug(`[${this.driver.provider}] Streaming Execution of ${this.options.model} with prompt`, this.prompt);
|
|
24
24
|
const start = Date.now();
|
|
25
|
-
const stream = await this.driver.
|
|
25
|
+
const stream = await this.driver.requestTextCompletionStream(this.prompt, this.options);
|
|
26
|
+
let finish_reason = undefined;
|
|
27
|
+
let promptTokens = 0;
|
|
28
|
+
let resultTokens = undefined;
|
|
26
29
|
for await (const chunk of stream) {
|
|
27
30
|
if (chunk) {
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
if (typeof chunk === 'string') {
|
|
32
|
+
chunks.push(chunk);
|
|
33
|
+
yield chunk;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
if (chunk.finish_reason) { //Do not replace non-null values with null values
|
|
37
|
+
finish_reason = chunk.finish_reason; //Used to skip empty finish_reason chunks coming after "stop" or "length"
|
|
38
|
+
}
|
|
39
|
+
if (chunk.token_usage) {
|
|
40
|
+
//Tokens returned include prior parts of stream,
|
|
41
|
+
//so overwrite rather than accumulate
|
|
42
|
+
//Math.max used as some models report final token count at beginning of stream
|
|
43
|
+
promptTokens = Math.max(promptTokens, chunk.token_usage.prompt ?? 0);
|
|
44
|
+
resultTokens = Math.max(resultTokens ?? 0, chunk.token_usage.result ?? 0);
|
|
45
|
+
}
|
|
46
|
+
if (chunk.result) {
|
|
47
|
+
chunks.push(chunk.result);
|
|
48
|
+
yield chunk.result;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
30
51
|
}
|
|
31
52
|
}
|
|
32
53
|
const content = chunks.join('');
|
|
33
|
-
|
|
34
|
-
|
|
54
|
+
// Return undefined for the ExecutionTokenUsage object if there is nothing to fill it with.
|
|
55
|
+
// Allows for checking for truthyness on token_usage, rather than it's internals. For testing and downstream usage.
|
|
56
|
+
let tokens = resultTokens ?
|
|
57
|
+
{ prompt: promptTokens, result: resultTokens, total: resultTokens + promptTokens, } : undefined;
|
|
35
58
|
this.completion = {
|
|
36
59
|
result: content,
|
|
37
60
|
prompt: this.prompt,
|
|
38
61
|
execution_time: Date.now() - start,
|
|
39
|
-
token_usage:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
total: resultTokens + promptTokens,
|
|
43
|
-
}
|
|
62
|
+
token_usage: tokens,
|
|
63
|
+
finish_reason: finish_reason,
|
|
64
|
+
chunks: chunks.length,
|
|
44
65
|
};
|
|
45
66
|
this.driver.validateResult(this.completion, this.options);
|
|
46
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompletionStream.js","sourceRoot":"","sources":["../../src/CompletionStream.ts"],"names":[],"mappings":";;;AAGA,MAAa,uBAAuB;IAKb;IACR;IACA;IALX,MAAM,CAAW;IACjB,UAAU,CAAyC;IAEnD,YAAmB,MAA8C,EACtD,MAAe,EACf,OAAyB;QAFjB,WAAM,GAAN,MAAM,CAAwC;QACtD,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAkB;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QACzB,cAAc;QACd,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CACpB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,4BAA4B,IAAI,CAAC,OAAO,CAAC,KAAK,cAAc,EAAE,IAAI,CAAC,MAAM,CACpG,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"CompletionStream.js","sourceRoot":"","sources":["../../src/CompletionStream.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/Driver.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.AbstractDriver = void 0;
|
|
|
9
9
|
exports.createLogger = createLogger;
|
|
10
10
|
const CompletionStream_js_1 = require("./CompletionStream.js");
|
|
11
11
|
const index_js_1 = require("./formatters/index.js");
|
|
12
|
+
const types_js_1 = require("./types.js");
|
|
12
13
|
const validation_js_1 = require("./validation.js");
|
|
13
14
|
const ConsoleLogger = {
|
|
14
15
|
debug: console.debug,
|
|
@@ -34,13 +35,6 @@ function createLogger(logger) {
|
|
|
34
35
|
return NoopLogger;
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
function applyExecutionDefaults(options) {
|
|
38
|
-
return {
|
|
39
|
-
max_tokens: 2048,
|
|
40
|
-
temperature: 0.7,
|
|
41
|
-
...options
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
38
|
/**
|
|
45
39
|
* To be implemented by each driver
|
|
46
40
|
*/
|
|
@@ -83,7 +77,6 @@ class AbstractDriver {
|
|
|
83
77
|
}
|
|
84
78
|
}
|
|
85
79
|
async execute(segments, options) {
|
|
86
|
-
options = applyExecutionDefaults(options);
|
|
87
80
|
const prompt = await this.createPrompt(segments, options);
|
|
88
81
|
return this._execute(prompt, options);
|
|
89
82
|
}
|
|
@@ -91,8 +84,18 @@ class AbstractDriver {
|
|
|
91
84
|
this.logger.debug(`[${this.provider}] Executing prompt on ${options.model}`);
|
|
92
85
|
try {
|
|
93
86
|
const start = Date.now();
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
let result;
|
|
88
|
+
switch (options.output_modality) {
|
|
89
|
+
case types_js_1.Modalities.text:
|
|
90
|
+
result = await this.requestTextCompletion(prompt, options);
|
|
91
|
+
this.validateResult(result, options);
|
|
92
|
+
break;
|
|
93
|
+
case types_js_1.Modalities.image:
|
|
94
|
+
result = await this.requestImageGeneration(prompt, options);
|
|
95
|
+
break;
|
|
96
|
+
default:
|
|
97
|
+
throw new Error(`Unsupported modality: ${options['output_modality'] ?? "No modality specified"}`);
|
|
98
|
+
}
|
|
96
99
|
const execution_time = Date.now() - start;
|
|
97
100
|
return { ...result, prompt, execution_time };
|
|
98
101
|
}
|
|
@@ -103,10 +106,9 @@ class AbstractDriver {
|
|
|
103
106
|
}
|
|
104
107
|
// by default no stream is supported. we block and we return all at once
|
|
105
108
|
async stream(segments, options) {
|
|
106
|
-
options = applyExecutionDefaults(options);
|
|
107
109
|
const prompt = await this.createPrompt(segments, options);
|
|
108
110
|
const canStream = await this.canStream(options);
|
|
109
|
-
if (canStream) {
|
|
111
|
+
if (options.output_modality === types_js_1.Modalities.text && canStream) {
|
|
110
112
|
return new CompletionStream_js_1.DefaultCompletionStream(this, prompt, options);
|
|
111
113
|
}
|
|
112
114
|
else {
|
|
@@ -120,15 +122,7 @@ class AbstractDriver {
|
|
|
120
122
|
* @returns
|
|
121
123
|
*/
|
|
122
124
|
async formatPrompt(segments, opts) {
|
|
123
|
-
|
|
124
|
-
return (0, index_js_1.formatLlama2Prompt)(segments, opts.result_schema);
|
|
125
|
-
}
|
|
126
|
-
else if (/\bllama.?3\b/i.test(opts.model)) {
|
|
127
|
-
return (0, index_js_1.formatLlama3Prompt)(segments, opts.result_schema);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
return (0, index_js_1.formatTextPrompt)(segments, opts.result_schema);
|
|
131
|
-
}
|
|
125
|
+
return (0, index_js_1.formatTextPrompt)(segments, opts.result_schema);
|
|
132
126
|
}
|
|
133
127
|
async createPrompt(segments, opts) {
|
|
134
128
|
return await (opts.format ? opts.format(segments, opts.result_schema) : this.formatPrompt(segments, opts));
|
|
@@ -153,6 +147,10 @@ class AbstractDriver {
|
|
|
153
147
|
async listTrainableModels() {
|
|
154
148
|
return [];
|
|
155
149
|
}
|
|
150
|
+
async requestImageGeneration(_prompt, _options) {
|
|
151
|
+
throw new Error("Image generation not implemented.");
|
|
152
|
+
//Cannot be made abstract, as abstract methods are required in the derived class
|
|
153
|
+
}
|
|
156
154
|
}
|
|
157
155
|
exports.AbstractDriver = AbstractDriver;
|
|
158
156
|
//# sourceMappingURL=Driver.js.map
|
package/lib/cjs/Driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Driver.js","sourceRoot":"","sources":["../../src/Driver.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"Driver.js","sourceRoot":"","sources":["../../src/Driver.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/async.js
CHANGED
|
@@ -18,7 +18,7 @@ function oneAsyncIterator(value) {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* Given a ReadableStream of server
|
|
21
|
+
* Given a ReadableStream of server sent events, tran
|
|
22
22
|
*/
|
|
23
23
|
function transformSSEStream(stream, transform) {
|
|
24
24
|
// on node and bun the readablestream is an async iterable
|
|
@@ -26,7 +26,8 @@ function transformSSEStream(stream, transform) {
|
|
|
26
26
|
transform(event, controller) {
|
|
27
27
|
if (event.type === 'event' && event.data && event.data !== '[DONE]') {
|
|
28
28
|
try {
|
|
29
|
-
|
|
29
|
+
const result = transform(event.data) ?? '';
|
|
30
|
+
controller.enqueue(result);
|
|
30
31
|
}
|
|
31
32
|
catch (err) {
|
|
32
33
|
// double check for the last event whicb is not a JSON - at this time togetherai and mistralai returrns the string [DONE]
|
package/lib/cjs/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./claude.js"), exports);
|
|
18
17
|
__exportStar(require("./commons.js"), exports);
|
|
19
18
|
__exportStar(require("./generic.js"), exports);
|
|
20
|
-
__exportStar(require("./llama2.js"), exports);
|
|
21
|
-
__exportStar(require("./llama3.js"), exports);
|
|
22
19
|
__exportStar(require("./openai.js"), exports);
|
|
20
|
+
__exportStar(require("./nova.js"), exports);
|
|
23
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B"}
|
|
@@ -1,35 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.formatNovaPrompt = formatNovaPrompt;
|
|
4
4
|
const index_js_1 = require("../index.js");
|
|
5
|
-
|
|
5
|
+
//import { readStreamAsBase64 } from "../stream.js";
|
|
6
6
|
const commons_js_1 = require("./commons.js");
|
|
7
7
|
/**
|
|
8
|
-
* A formatter
|
|
8
|
+
* A formatter used by Bedrock to format prompts for nova related models
|
|
9
9
|
*/
|
|
10
|
-
async function
|
|
10
|
+
async function formatNovaPrompt(segments, schema) {
|
|
11
11
|
const system = [];
|
|
12
12
|
const safety = [];
|
|
13
13
|
const messages = [];
|
|
14
|
-
|
|
14
|
+
let negative = "";
|
|
15
|
+
let mask = "";
|
|
15
16
|
for (const segment of segments) {
|
|
16
17
|
const parts = [];
|
|
17
18
|
if (segment.files)
|
|
18
19
|
for (const f of segment.files) {
|
|
20
|
+
//TODO add video support
|
|
21
|
+
if (!f.mime_type?.startsWith('image')) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
19
24
|
const source = await f.getStream();
|
|
20
|
-
const data = await (0,
|
|
25
|
+
const data = await (0, index_js_1.readStreamAsBase64)(source);
|
|
26
|
+
const format = f.mime_type?.split('/')[1] || 'png';
|
|
21
27
|
parts.push({
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
image: {
|
|
29
|
+
format: format,
|
|
30
|
+
source: {
|
|
31
|
+
bytes: data
|
|
32
|
+
}
|
|
27
33
|
}
|
|
28
34
|
});
|
|
29
35
|
}
|
|
30
36
|
if (segment.content) {
|
|
31
37
|
parts.push({
|
|
32
|
-
type: "text",
|
|
33
38
|
text: segment.content
|
|
34
39
|
});
|
|
35
40
|
}
|
|
@@ -40,10 +45,17 @@ async function formatClaudePrompt(segments, schema) {
|
|
|
40
45
|
safety.push(segment.content);
|
|
41
46
|
}
|
|
42
47
|
else if (messages.length > 0 && messages[messages.length - 1].role === segment.role) {
|
|
48
|
+
//Maybe can remove for nova?
|
|
43
49
|
//concatenate messages of the same role (Claude requires alternative user and assistant roles)
|
|
44
50
|
messages[messages.length - 1].content.push(...parts);
|
|
45
51
|
}
|
|
46
|
-
else {
|
|
52
|
+
else if (segment.role === index_js_1.PromptRole.negative) {
|
|
53
|
+
negative = negative.concat(segment.content, ', ');
|
|
54
|
+
}
|
|
55
|
+
else if (segment.role === index_js_1.PromptRole.mask) {
|
|
56
|
+
mask = mask.concat(segment.content, ' ');
|
|
57
|
+
}
|
|
58
|
+
else if (segment.role !== index_js_1.PromptRole.tool) {
|
|
47
59
|
messages.push({
|
|
48
60
|
role: segment.role,
|
|
49
61
|
content: parts
|
|
@@ -60,44 +72,28 @@ async function formatClaudePrompt(segments, schema) {
|
|
|
60
72
|
if (!systemMessage) {
|
|
61
73
|
throw new Error('Prompt must contain at least one message');
|
|
62
74
|
}
|
|
63
|
-
messages.push({ content: [{
|
|
75
|
+
messages.push({ content: [{ text: systemMessage }], role: 'user' });
|
|
64
76
|
systemMessage = safety.join('\n');
|
|
65
77
|
}
|
|
66
78
|
else if (safety.length > 0) {
|
|
67
79
|
systemMessage = systemMessage + '\n\nIMPORTANT: ' + safety.join('\n');
|
|
68
80
|
}
|
|
69
|
-
/*
|
|
70
|
-
|
|
71
|
-
role: "user",
|
|
72
|
-
content: [{
|
|
73
|
-
type: "text",
|
|
74
|
-
text: getJSONSafetyNotice(schema)
|
|
75
|
-
}]
|
|
76
|
-
});
|
|
77
|
-
}*/
|
|
78
|
-
/*start Claude's message to amke sure it answers properly in JSON
|
|
79
|
-
if enabled, this requires to add the { to Claude's response*/
|
|
81
|
+
/*start Nova's message to amke sure it answers properly in JSON
|
|
82
|
+
if enabled, this requires to add the { to Nova's response*/
|
|
80
83
|
if (schema) {
|
|
81
84
|
messages.push({
|
|
82
85
|
role: "assistant",
|
|
83
86
|
content: [{
|
|
84
|
-
type: "text",
|
|
85
87
|
text: "{"
|
|
86
88
|
}]
|
|
87
89
|
});
|
|
88
90
|
}
|
|
89
91
|
// put system mesages first and safety last
|
|
90
92
|
return {
|
|
91
|
-
system: systemMessage,
|
|
92
|
-
messages
|
|
93
|
+
system: systemMessage ? [{ text: systemMessage }] : [{ text: "" }],
|
|
94
|
+
messages: messages,
|
|
95
|
+
negative: negative || undefined,
|
|
96
|
+
mask: mask || undefined,
|
|
93
97
|
};
|
|
94
98
|
}
|
|
95
|
-
|
|
96
|
-
// const prompt = genericColonSeparator(messages, schema, {
|
|
97
|
-
// user: "\nHuman",
|
|
98
|
-
// assistant: "\nAssistant",
|
|
99
|
-
// system: "\nHuman",
|
|
100
|
-
// });
|
|
101
|
-
// return "\n\n" + prompt + "\n\nAssistant:";
|
|
102
|
-
// }
|
|
103
|
-
//# sourceMappingURL=claude.js.map
|
|
99
|
+
//# sourceMappingURL=nova.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nova.js","sourceRoot":"","sources":["../../../src/formatters/nova.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ function formatOpenAILikeTextPrompt(segments) {
|
|
|
20
20
|
else if (msg.role === index_js_1.PromptRole.safety) {
|
|
21
21
|
safety.push({ content: "IMPORTANT: " + msg.content, role: "system" });
|
|
22
22
|
}
|
|
23
|
-
else {
|
|
23
|
+
else if (msg.role !== index_js_1.PromptRole.negative && msg.role !== index_js_1.PromptRole.mask && msg.role !== index_js_1.PromptRole.tool) {
|
|
24
24
|
user.push({
|
|
25
25
|
content: msg.content,
|
|
26
26
|
role: msg.role || 'user',
|
|
@@ -30,7 +30,7 @@ function formatOpenAILikeTextPrompt(segments) {
|
|
|
30
30
|
// put system mesages first and safety last
|
|
31
31
|
return system.concat(user).concat(safety);
|
|
32
32
|
}
|
|
33
|
-
async function formatOpenAILikeMultimodalPrompt(segments) {
|
|
33
|
+
async function formatOpenAILikeMultimodalPrompt(segments, opts) {
|
|
34
34
|
const system = [];
|
|
35
35
|
const safety = [];
|
|
36
36
|
const others = [];
|
|
@@ -42,8 +42,11 @@ async function formatOpenAILikeMultimodalPrompt(segments) {
|
|
|
42
42
|
const stream = await file.getStream();
|
|
43
43
|
const data = await (0, stream_js_1.readStreamAsBase64)(stream);
|
|
44
44
|
parts.push({
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
type: "image_url",
|
|
46
|
+
image_url: {
|
|
47
|
+
url: `data:${file.mime_type || "image/jpeg"};base64,${data}`,
|
|
48
|
+
//detail: "auto" //This is modified just before execution to "low" | "high" | "auto"
|
|
49
|
+
},
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
52
|
}
|
|
@@ -58,6 +61,14 @@ async function formatOpenAILikeMultimodalPrompt(segments) {
|
|
|
58
61
|
role: "system",
|
|
59
62
|
content: parts
|
|
60
63
|
});
|
|
64
|
+
if (opts.useToolForFormatting && opts.schema) {
|
|
65
|
+
system.forEach(s => {
|
|
66
|
+
s.content.forEach(c => {
|
|
67
|
+
if (c.type === "text")
|
|
68
|
+
c.text = "TOOL: " + c.text;
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
61
72
|
}
|
|
62
73
|
else if (msg.role === index_js_1.PromptRole.safety) {
|
|
63
74
|
const safetyMsg = {
|
|
@@ -70,14 +81,33 @@ async function formatOpenAILikeMultimodalPrompt(segments) {
|
|
|
70
81
|
});
|
|
71
82
|
system.push(safetyMsg);
|
|
72
83
|
}
|
|
73
|
-
else {
|
|
84
|
+
else if (msg.role === index_js_1.PromptRole.tool) {
|
|
85
|
+
if (!msg.tool_use_id) {
|
|
86
|
+
throw new Error("Tool use id is required for tool messages");
|
|
87
|
+
}
|
|
88
|
+
others.push({
|
|
89
|
+
role: "tool",
|
|
90
|
+
tool_call_id: msg.tool_use_id,
|
|
91
|
+
content: msg.content
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else if (msg.role !== index_js_1.PromptRole.negative && msg.role !== index_js_1.PromptRole.mask) {
|
|
74
95
|
others.push({
|
|
75
96
|
role: msg.role ?? 'user',
|
|
76
97
|
content: parts
|
|
77
98
|
});
|
|
78
99
|
}
|
|
79
100
|
}
|
|
101
|
+
if (opts.result_schema && !opts.useToolForFormatting) {
|
|
102
|
+
system.push({
|
|
103
|
+
role: "system",
|
|
104
|
+
content: [{
|
|
105
|
+
type: "text",
|
|
106
|
+
text: "IMPORTANT: only answer using JSON, and respecting the schema included below, between the <response_schema> tags. " + `<response_schema>${JSON.stringify(opts.result_schema)}</response_schema>`
|
|
107
|
+
}]
|
|
108
|
+
});
|
|
109
|
+
}
|
|
80
110
|
// put system mesages first and safety last
|
|
81
|
-
return system.concat(others).concat(safety);
|
|
111
|
+
return [].concat(system).concat(others).concat(safety);
|
|
82
112
|
}
|
|
83
113
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -18,4 +18,5 @@ __exportStar(require("./Driver.js"), exports);
|
|
|
18
18
|
__exportStar(require("./json.js"), exports);
|
|
19
19
|
__exportStar(require("./stream.js"), exports);
|
|
20
20
|
__exportStar(require("./types.js"), exports);
|
|
21
|
+
__exportStar(require("./options.js"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,6CAA2B;AAC3B,+CAA6B"}
|