@llumiverse/drivers 0.19.0 → 0.20.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.
Files changed (49) hide show
  1. package/lib/cjs/bedrock/converse.js +181 -123
  2. package/lib/cjs/bedrock/converse.js.map +1 -1
  3. package/lib/cjs/bedrock/index.js +152 -70
  4. package/lib/cjs/bedrock/index.js.map +1 -1
  5. package/lib/cjs/vertexai/index.js +1 -0
  6. package/lib/cjs/vertexai/index.js.map +1 -1
  7. package/lib/cjs/vertexai/models/claude.js +227 -118
  8. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  9. package/lib/cjs/vertexai/models/gemini.js +110 -70
  10. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  11. package/lib/cjs/vertexai/models/imagen.js +2 -2
  12. package/lib/cjs/vertexai/models/imagen.js.map +1 -1
  13. package/lib/cjs/watsonx/index.js +10 -10
  14. package/lib/cjs/watsonx/index.js.map +1 -1
  15. package/lib/esm/bedrock/converse.js +180 -122
  16. package/lib/esm/bedrock/converse.js.map +1 -1
  17. package/lib/esm/bedrock/index.js +153 -71
  18. package/lib/esm/bedrock/index.js.map +1 -1
  19. package/lib/esm/vertexai/index.js +1 -0
  20. package/lib/esm/vertexai/index.js.map +1 -1
  21. package/lib/esm/vertexai/models/claude.js +228 -119
  22. package/lib/esm/vertexai/models/claude.js.map +1 -1
  23. package/lib/esm/vertexai/models/gemini.js +109 -70
  24. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  25. package/lib/esm/vertexai/models/imagen.js +2 -2
  26. package/lib/esm/vertexai/models/imagen.js.map +1 -1
  27. package/lib/esm/watsonx/index.js +10 -10
  28. package/lib/esm/watsonx/index.js.map +1 -1
  29. package/lib/types/bedrock/converse.d.ts +2 -2
  30. package/lib/types/bedrock/converse.d.ts.map +1 -1
  31. package/lib/types/bedrock/index.d.ts +5 -5
  32. package/lib/types/bedrock/index.d.ts.map +1 -1
  33. package/lib/types/vertexai/index.d.ts +2 -3
  34. package/lib/types/vertexai/index.d.ts.map +1 -1
  35. package/lib/types/vertexai/models/claude.d.ts +5 -7
  36. package/lib/types/vertexai/models/claude.d.ts.map +1 -1
  37. package/lib/types/vertexai/models/gemini.d.ts +4 -2
  38. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  39. package/lib/types/vertexai/models.d.ts +2 -2
  40. package/lib/types/vertexai/models.d.ts.map +1 -1
  41. package/package.json +12 -12
  42. package/src/bedrock/converse.ts +194 -129
  43. package/src/bedrock/index.ts +177 -82
  44. package/src/vertexai/index.ts +3 -3
  45. package/src/vertexai/models/claude.ts +268 -138
  46. package/src/vertexai/models/gemini.ts +120 -77
  47. package/src/vertexai/models/imagen.ts +3 -3
  48. package/src/vertexai/models.ts +2 -2
  49. package/src/watsonx/index.ts +12 -12
@@ -6,13 +6,11 @@ exports.converseRemoveJSONprefill = converseRemoveJSONprefill;
6
6
  exports.converseJSONprefill = converseJSONprefill;
7
7
  exports.formatConversePrompt = formatConversePrompt;
8
8
  const core_1 = require("@llumiverse/core");
9
+ const core_2 = require("@llumiverse/core");
9
10
  const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
10
11
  const s3_js_1 = require("./s3.js");
11
- function getJSONSafetyNotice(schema) {
12
- return "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(schema, undefined, 2);
13
- }
14
12
  function roleConversion(role) {
15
- return role === core_1.PromptRole.assistant ? client_bedrock_runtime_1.ConversationRole.ASSISTANT : client_bedrock_runtime_1.ConversationRole.USER;
13
+ return role === core_2.PromptRole.assistant ? client_bedrock_runtime_1.ConversationRole.ASSISTANT : client_bedrock_runtime_1.ConversationRole.USER;
16
14
  }
17
15
  function mimeToImageType(mime) {
18
16
  if (mime.startsWith("image/")) {
@@ -32,32 +30,133 @@ function mimeToVideoType(mime) {
32
30
  }
33
31
  return "mp4";
34
32
  }
35
- async function readStreamAsString(stream) {
36
- const out = [];
37
- for await (const chunk of stream) {
38
- out.push(Buffer.from(chunk));
33
+ async function processFile(f, mode) {
34
+ const source = await f.getStream();
35
+ //Image file - "png" | "jpeg" | "gif" | "webp"
36
+ if (f.mime_type && f.mime_type.startsWith("image")) {
37
+ const imageBlock = {
38
+ image: {
39
+ format: mimeToImageType(f.mime_type),
40
+ source: { bytes: await (0, core_1.readStreamAsUint8Array)(source) },
41
+ }
42
+ };
43
+ return mode === 'content'
44
+ ? imageBlock
45
+ : imageBlock;
46
+ }
47
+ //Document file - "pdf | csv | doc | docx | xls | xlsx | html | txt | md"
48
+ else if (f.mime_type && (f.mime_type.startsWith("text") || f.mime_type?.startsWith("application"))) {
49
+ // Handle JSON files specially
50
+ if (f.mime_type === "application/json" || (f.name && f.name.endsWith('.json'))) {
51
+ const jsonContent = await (0, core_1.readStreamAsString)(source);
52
+ try {
53
+ const parsedJson = JSON.parse(jsonContent);
54
+ if (mode === 'tool') {
55
+ return { json: parsedJson };
56
+ }
57
+ else {
58
+ // ContentBlock doesn't support JSON, so treat as text
59
+ return { text: jsonContent };
60
+ }
61
+ }
62
+ catch (error) {
63
+ const textBlock = { text: jsonContent };
64
+ return mode === 'content'
65
+ ? textBlock
66
+ : textBlock;
67
+ }
68
+ }
69
+ else {
70
+ const documentBlock = {
71
+ document: {
72
+ format: mimeToDocType(f.mime_type),
73
+ name: f.name,
74
+ source: { bytes: await (0, core_1.readStreamAsUint8Array)(source) },
75
+ },
76
+ };
77
+ return mode === 'content'
78
+ ? documentBlock
79
+ : documentBlock;
80
+ }
81
+ }
82
+ //Video file - "mov | mkv | mp4 | webm | flv | mpeg | mpg | wmv | three_gp"
83
+ else if (f.mime_type && f.mime_type.startsWith("video")) {
84
+ let url_string = (await f.getURL()).toLowerCase();
85
+ let url_format = new URL(url_string);
86
+ if (url_format.hostname.endsWith("amazonaws.com") &&
87
+ (url_format.hostname.startsWith("s3.") || url_format.hostname.includes(".s3."))) {
88
+ //Convert to s3:// format
89
+ const parsedUrl = (0, s3_js_1.parseS3UrlToUri)(new URL(url_string));
90
+ url_string = parsedUrl;
91
+ url_format = new URL(parsedUrl);
92
+ }
93
+ const videoBlock = url_format.protocol === "s3:" ? {
94
+ video: {
95
+ format: mimeToVideoType(f.mime_type),
96
+ source: {
97
+ s3Location: {
98
+ uri: url_string, //S3 URL
99
+ //bucketOwner: We don't have this additional information.
100
+ }
101
+ },
102
+ },
103
+ } : {
104
+ video: {
105
+ format: mimeToVideoType(f.mime_type),
106
+ source: { bytes: await (0, core_1.readStreamAsUint8Array)(source) },
107
+ },
108
+ };
109
+ return mode === 'content'
110
+ ? videoBlock
111
+ : videoBlock;
112
+ }
113
+ //Fallback, send as text
114
+ else {
115
+ const textBlock = { text: await (0, core_1.readStreamAsString)(source) };
116
+ return mode === 'content'
117
+ ? textBlock
118
+ : textBlock;
119
+ }
120
+ }
121
+ async function processFileToContentBlock(f) {
122
+ try {
123
+ return processFile(f, 'content');
124
+ }
125
+ catch (error) {
126
+ throw new Error(`Failed to process file ${f.name} for prompt: ${error instanceof Error ? error.message : String(error)}`);
39
127
  }
40
- return Buffer.concat(out).toString();
41
128
  }
42
- async function readStreamAsUint8Array(stream) {
43
- const out = [];
44
- for await (const chunk of stream) {
45
- out.push(Buffer.from(chunk));
129
+ async function processFileToToolContentBlock(f) {
130
+ try {
131
+ return processFile(f, 'tool');
132
+ }
133
+ catch (error) {
134
+ throw new Error(`Failed to process file ${f.name} for tool response: ${error instanceof Error ? error.message : String(error)}`);
46
135
  }
47
- return Buffer.concat(out);
48
136
  }
49
137
  function converseConcatMessages(messages) {
50
- if (!messages)
138
+ if (!messages || messages.length === 0)
51
139
  return [];
52
- //Concatenate messages of the same role. Required to have alternative user and assistant roles
53
- for (let i = 0; i < messages.length - 1; i++) {
54
- if (messages[i].role === messages[i + 1].role) {
55
- messages[i].content = messages[i].content?.concat(...(messages[i + 1].content || []));
56
- messages.splice(i + 1, 1);
57
- i--;
140
+ const needsMerging = messages.some((message, i) => i < messages.length - 1 && message.role === messages[i + 1].role);
141
+ // If no merging needed, return original array
142
+ if (!needsMerging) {
143
+ return messages;
144
+ }
145
+ const result = [];
146
+ let currentMessage = { ...messages[0] };
147
+ for (let i = 1; i < messages.length; i++) {
148
+ if (currentMessage.role === messages[i].role) {
149
+ // Same role - concatenate content
150
+ currentMessage.content = (currentMessage.content || []).concat(...(messages[i].content || []));
151
+ }
152
+ else {
153
+ // Different role - push current and start new
154
+ result.push(currentMessage);
155
+ currentMessage = { ...messages[i] };
58
156
  }
59
157
  }
60
- return messages;
158
+ result.push(currentMessage);
159
+ return result;
61
160
  }
62
161
  function converseSystemToMessages(system) {
63
162
  return {
@@ -85,137 +184,96 @@ function converseJSONprefill(messages) {
85
184
  });
86
185
  return messages;
87
186
  }
88
- async function formatConversePrompt(segments, schema) {
187
+ // Used to ignore unsupported roles. Typically these are things like image specific roles.
188
+ const unsupportedRoles = [
189
+ core_2.PromptRole.negative,
190
+ core_2.PromptRole.mask,
191
+ ];
192
+ async function formatConversePrompt(segments, options) {
89
193
  //Non-const for concat
90
194
  let system = [];
91
195
  const safety = [];
92
196
  let messages = [];
93
197
  for (const segment of segments) {
94
- const parts = [];
95
- //Tool response
96
- if (segment.role === core_1.PromptRole.tool) {
97
- parts.push({
198
+ // Role dependent processing
199
+ if (segment.role === core_2.PromptRole.system) {
200
+ system.push({ text: segment.content });
201
+ }
202
+ else if (segment.role === core_2.PromptRole.tool) {
203
+ if (!segment.tool_use_id) {
204
+ throw new Error("Tool use ID is required for tool segments");
205
+ }
206
+ //Tool use results (i.e. the model has requested a tool and this it the answer to that request)
207
+ const toolContentBlocks = [];
208
+ //Text segments
209
+ if (segment.content) {
210
+ toolContentBlocks.push({ text: segment.content });
211
+ }
212
+ //Handle attached files
213
+ for (const file of segment.files ?? []) {
214
+ toolContentBlocks.push(await processFileToToolContentBlock(file));
215
+ }
216
+ messages.push({
98
217
  content: [{
99
218
  toolResult: {
100
219
  toolUseId: segment.tool_use_id,
101
- content: [{ text: segment.content }],
220
+ content: toolContentBlocks,
102
221
  }
103
222
  }],
104
- role: client_bedrock_runtime_1.ConversationRole.USER,
223
+ role: client_bedrock_runtime_1.ConversationRole.USER
105
224
  });
106
- messages = messages.concat(parts);
107
- continue;
108
225
  }
109
- //File segments
110
- if (segment.files) {
111
- for (const f of segment.files) {
112
- const source = await f.getStream();
113
- let content;
114
- //Image file - "png" | "jpeg" | "gif" | "webp"
115
- if (f.mime_type && f.mime_type.startsWith("image")) {
116
- content = [
117
- {
118
- image: {
119
- format: mimeToImageType(f.mime_type),
120
- source: { bytes: await readStreamAsUint8Array(source) },
121
- },
122
- },
123
- ];
124
- //Document file - "pdf | csv | doc | docx | xls | xlsx | html | txt | md"
125
- }
126
- else if (f.mime_type && (f.mime_type.startsWith("text") || f.mime_type?.startsWith("application"))) {
127
- content = [
128
- { text: f.name },
129
- {
130
- document: {
131
- format: mimeToDocType(f.mime_type),
132
- name: f.name,
133
- source: { bytes: await readStreamAsUint8Array(source) },
134
- },
135
- },
136
- ];
137
- //Video file - "mov | mkv | mp4 | webm | flv | mpeg | mpg | wmv | three_gp"
138
- }
139
- else if (f.mime_type && f.mime_type.startsWith("video")) {
140
- let url_string = (await f.getURL()).toLowerCase();
141
- let url_format = new URL(url_string);
142
- if (url_format.hostname.endsWith("amazonaws.com") &&
143
- (url_format.hostname.startsWith("s3.") || url_format.hostname.includes(".s3."))) {
144
- //Convert to s3:// format
145
- const parsedUrl = (0, s3_js_1.parseS3UrlToUri)(new URL(url_string));
146
- url_string = parsedUrl;
147
- url_format = new URL(parsedUrl);
148
- }
149
- if (url_format.protocol === "s3:") {
150
- //Use S3 bucket if available
151
- content = [
152
- {
153
- video: {
154
- format: mimeToVideoType(f.mime_type),
155
- source: {
156
- s3Location: {
157
- uri: url_string, //S3 URL
158
- //bucketOwner: We don't have this additional information.
159
- }
160
- },
161
- },
162
- },
163
- ];
164
- }
165
- else {
166
- content = [
167
- {
168
- video: {
169
- format: mimeToVideoType(f.mime_type),
170
- source: { bytes: await readStreamAsUint8Array(source) },
171
- },
172
- },
173
- ];
174
- }
175
- //Fallback, send string
226
+ else if (!unsupportedRoles.includes(segment.role)) {
227
+ //User, Assistant or safety roles
228
+ const contentBlocks = [];
229
+ //Text segments
230
+ if (segment.content) {
231
+ contentBlocks.push({ text: segment.content });
232
+ }
233
+ //Handle attached files
234
+ for (const file of segment.files ?? []) {
235
+ contentBlocks.push(await processFileToContentBlock(file));
236
+ }
237
+ //If there are no content blocks, skip this message
238
+ if (contentBlocks.length !== 0) {
239
+ const message = { content: contentBlocks, role: roleConversion(segment.role) };
240
+ if (segment.role === core_2.PromptRole.safety) {
241
+ safety.push(message);
176
242
  }
177
243
  else {
178
- content = [{ text: await readStreamAsString(source) }];
244
+ messages.push(message);
179
245
  }
180
- parts.push({
181
- content: content,
182
- role: roleConversion(segment.role),
183
- });
184
246
  }
185
247
  }
186
- //Text segments
187
- if (segment.content) {
188
- parts.push({
189
- content: [{ text: segment.content }],
190
- role: roleConversion(segment.role),
191
- });
192
- }
193
- if (segment.role === core_1.PromptRole.system) {
194
- system.push({ text: segment.content });
195
- }
196
- else if (segment.role === core_1.PromptRole.safety) {
197
- safety.push({ text: segment.content });
248
+ }
249
+ if (options.result_schema) {
250
+ let schemaText;
251
+ if (options.tools && options.tools.length > 0) {
252
+ schemaText = "When not calling tools, the answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema, undefined, 2);
198
253
  }
199
- else if (segment.role !== core_1.PromptRole.negative && segment.role !== core_1.PromptRole.mask) {
200
- //User or Assistant
201
- messages = messages.concat(parts);
254
+ else {
255
+ schemaText = "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema, undefined, 2);
202
256
  }
257
+ system.push({ text: "IMPORTANT: " + schemaText });
258
+ }
259
+ // Safety messages are user messages that should be included at the end.
260
+ if (safety.length > 0) {
261
+ messages = messages.concat(safety);
203
262
  }
204
263
  //Conversations must start with a user message
205
264
  //Use the system messages if none are provided
206
265
  if (messages.length === 0) {
207
266
  const systemMessage = converseSystemToMessages(system);
208
- if (systemMessage?.content && systemMessage.content[0].text) {
267
+ if (systemMessage?.content?.[0]?.text?.trim()) {
209
268
  messages.push(systemMessage);
210
269
  }
211
270
  else {
212
271
  throw new Error("Prompt must contain at least one message");
213
272
  }
214
- system = [];
273
+ system = undefined;
215
274
  }
216
- if (schema) {
217
- safety.push({ text: "IMPORTANT: " + getJSONSafetyNotice(schema) });
218
- system = system.concat(safety);
275
+ if (system && system.length === 0) {
276
+ system = undefined; // If no system messages, set to undefined
219
277
  }
220
278
  messages = converseConcatMessages(messages);
221
279
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"converse.js","sourceRoot":"","sources":["../../../src/bedrock/converse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converse.js","sourceRoot":"","sources":["../../../src/bedrock/converse.ts"],"names":[],"mappings":"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"}