@bedrockio/ai 0.8.2 → 0.8.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/CHANGELOG.md +9 -0
- package/dist/cjs/BaseClient.js +13 -3
- package/dist/esm/BaseClient.js +13 -3
- package/package.json +1 -1
- package/types/BaseClient.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
package/dist/cjs/BaseClient.js
CHANGED
|
@@ -160,9 +160,10 @@ class BaseClient {
|
|
|
160
160
|
if (output === 'json') {
|
|
161
161
|
system = [system, 'Output only valid JSON.'].join('\n\n');
|
|
162
162
|
}
|
|
163
|
+
const messages = this.normalizeMessages(options);
|
|
163
164
|
return {
|
|
164
165
|
system,
|
|
165
|
-
messages
|
|
166
|
+
messages,
|
|
166
167
|
};
|
|
167
168
|
}
|
|
168
169
|
normalizeTemplateOptions(options) {
|
|
@@ -175,14 +176,21 @@ class BaseClient {
|
|
|
175
176
|
template,
|
|
176
177
|
});
|
|
177
178
|
let system = '';
|
|
178
|
-
let messages = [];
|
|
179
|
+
let { messages = [] } = options;
|
|
180
|
+
// Templates may contain multiple roles, ie SYSTEM or USER, making them
|
|
181
|
+
// useful for one-off prompting. However in a multi-turn conversation
|
|
182
|
+
// the entire chat history will be passed, so do not inject user messages
|
|
183
|
+
// when they already exist in the options.
|
|
184
|
+
const hasUserMessages = messages.some((message) => {
|
|
185
|
+
return message.role === 'user';
|
|
186
|
+
});
|
|
179
187
|
for (let section of sections) {
|
|
180
188
|
const { title = 'system', content } = section;
|
|
181
189
|
const role = title.toLowerCase();
|
|
182
190
|
if (role === 'system') {
|
|
183
191
|
system += [system, content].join('\n');
|
|
184
192
|
}
|
|
185
|
-
else {
|
|
193
|
+
else if (!hasUserMessages) {
|
|
186
194
|
messages = [
|
|
187
195
|
...messages,
|
|
188
196
|
{
|
|
@@ -209,7 +217,9 @@ class BaseClient {
|
|
|
209
217
|
return input;
|
|
210
218
|
}
|
|
211
219
|
else {
|
|
220
|
+
const { messages = [] } = options;
|
|
212
221
|
return [
|
|
222
|
+
...messages,
|
|
213
223
|
{
|
|
214
224
|
role: 'user',
|
|
215
225
|
content: input || '',
|
package/dist/esm/BaseClient.js
CHANGED
|
@@ -158,9 +158,10 @@ export default class BaseClient {
|
|
|
158
158
|
if (output === 'json') {
|
|
159
159
|
system = [system, 'Output only valid JSON.'].join('\n\n');
|
|
160
160
|
}
|
|
161
|
+
const messages = this.normalizeMessages(options);
|
|
161
162
|
return {
|
|
162
163
|
system,
|
|
163
|
-
messages
|
|
164
|
+
messages,
|
|
164
165
|
};
|
|
165
166
|
}
|
|
166
167
|
normalizeTemplateOptions(options) {
|
|
@@ -173,14 +174,21 @@ export default class BaseClient {
|
|
|
173
174
|
template,
|
|
174
175
|
});
|
|
175
176
|
let system = '';
|
|
176
|
-
let messages = [];
|
|
177
|
+
let { messages = [] } = options;
|
|
178
|
+
// Templates may contain multiple roles, ie SYSTEM or USER, making them
|
|
179
|
+
// useful for one-off prompting. However in a multi-turn conversation
|
|
180
|
+
// the entire chat history will be passed, so do not inject user messages
|
|
181
|
+
// when they already exist in the options.
|
|
182
|
+
const hasUserMessages = messages.some((message) => {
|
|
183
|
+
return message.role === 'user';
|
|
184
|
+
});
|
|
177
185
|
for (let section of sections) {
|
|
178
186
|
const { title = 'system', content } = section;
|
|
179
187
|
const role = title.toLowerCase();
|
|
180
188
|
if (role === 'system') {
|
|
181
189
|
system += [system, content].join('\n');
|
|
182
190
|
}
|
|
183
|
-
else {
|
|
191
|
+
else if (!hasUserMessages) {
|
|
184
192
|
messages = [
|
|
185
193
|
...messages,
|
|
186
194
|
{
|
|
@@ -207,7 +215,9 @@ export default class BaseClient {
|
|
|
207
215
|
return input;
|
|
208
216
|
}
|
|
209
217
|
else {
|
|
218
|
+
const { messages = [] } = options;
|
|
210
219
|
return [
|
|
220
|
+
...messages,
|
|
211
221
|
{
|
|
212
222
|
role: 'user',
|
|
213
223
|
content: input || '',
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../src/BaseClient.js"],"names":[],"mappings":"AAKA;IACE,0BASC;IARC,aAIC;IACD,2BAEE;IAKJ;;;;;OAKG;IACH,gBAFW,aAAa,gBAgCvB;IAED;;;;;OAKG;IACH,gBAHW,aAAa,GAAG,aAAa,gCAsDvC;IAED;;;;OAIG;IACH,wBAFW,MAAM,OAIhB;IAID,8BAGC;IAED,8BAGC;IAED,qCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;OAEG;IACH,oDAIC;IAED;;OAEG;IACH,oDAIC;IAID;;OAEG;IACH,oCAOC;IAED;;;
|
|
1
|
+
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../src/BaseClient.js"],"names":[],"mappings":"AAKA;IACE,0BASC;IARC,aAIC;IACD,2BAEE;IAKJ;;;;;OAKG;IACH,gBAFW,aAAa,gBAgCvB;IAED;;;;;OAKG;IACH,gBAHW,aAAa,GAAG,aAAa,gCAsDvC;IAED;;;;OAIG;IACH,wBAFW,MAAM,OAIhB;IAID,8BAGC;IAED,8BAGC;IAED,qCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;OAEG;IACH,oDAIC;IAED;;OAEG;IACH,oDAIC;IAID;;OAEG;IACH,oCAOC;IAED;;;MAeC;IAED,4CAiDC;IAED,uCAoBC;IAED;;;MA4BC;IAED,uDAWC;IAED,kDAMC;CACF;;;;;WAIa,MAAM,GAAC,aAAa,EAAE;;;;YACtB,MAAM;;;;YACN,OAAO;;;;;;;;aAEP,MAAM,GAAG,MAAM;;;;;;;;;;;sBAOf,MAAM;;;UAKN,QAAQ,GAAG,MAAM,GAAG,WAAW;aAC/B,MAAM;;iCAvVa,sBAAsB"}
|