@rudderjs/ai 1.1.1 → 1.3.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 +129 -0
- package/boost/guidelines.md +32 -1
- package/dist/agent.d.ts +69 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +72 -1
- package/dist/agent.js.map +1 -1
- package/dist/audio.d.ts +12 -0
- package/dist/audio.d.ts.map +1 -1
- package/dist/audio.js +32 -15
- package/dist/audio.js.map +1 -1
- package/dist/fake.d.ts +23 -0
- package/dist/fake.d.ts.map +1 -1
- package/dist/fake.js +32 -0
- package/dist/fake.js.map +1 -1
- package/dist/image.d.ts +13 -0
- package/dist/image.d.ts.map +1 -1
- package/dist/image.js +39 -21
- package/dist/image.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic.d.ts +3 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +61 -10
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/google-cache-registry.d.ts +145 -0
- package/dist/providers/google-cache-registry.d.ts.map +1 -0
- package/dist/providers/google-cache-registry.js +209 -0
- package/dist/providers/google-cache-registry.js.map +1 -0
- package/dist/providers/google.d.ts +21 -2
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +90 -36
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/openai.d.ts +10 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +57 -6
- package/dist/providers/openai.js.map +1 -1
- package/dist/registry.d.ts +17 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +31 -0
- package/dist/registry.js.map +1 -1
- package/dist/server/provider.d.ts +8 -0
- package/dist/server/provider.d.ts.map +1 -1
- package/dist/server/provider.js +17 -1
- package/dist/server/provider.js.map +1 -1
- package/dist/transcription.d.ts +12 -0
- package/dist/transcription.d.ts.map +1 -1
- package/dist/transcription.js +31 -14
- package/dist/transcription.js.map +1 -1
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util/hash.d.ts +11 -0
- package/dist/util/hash.d.ts.map +1 -0
- package/dist/util/hash.js +23 -0
- package/dist/util/hash.js.map +1 -0
- package/package.json +1 -1
package/dist/audio.d.ts
CHANGED
|
@@ -6,6 +6,12 @@ type AudioFormat = 'mp3' | 'opus' | 'aac' | 'flac' | 'wav';
|
|
|
6
6
|
* @example
|
|
7
7
|
* const result = await AudioGenerator.of('Hello world').voice('alloy').generate()
|
|
8
8
|
* await AudioGenerator.of('Hello').format('wav').store('audio/greeting.wav')
|
|
9
|
+
*
|
|
10
|
+
* @example Failover across providers
|
|
11
|
+
* const result = await AudioGenerator.of('Hello')
|
|
12
|
+
* .model('openai/tts-1-hd')
|
|
13
|
+
* .failover('elevenlabs/eleven_multilingual_v2')
|
|
14
|
+
* .generate()
|
|
9
15
|
*/
|
|
10
16
|
export declare class AudioGenerator {
|
|
11
17
|
private readonly _text;
|
|
@@ -13,11 +19,17 @@ export declare class AudioGenerator {
|
|
|
13
19
|
private _voice?;
|
|
14
20
|
private _speed?;
|
|
15
21
|
private _format?;
|
|
22
|
+
private _failover;
|
|
16
23
|
private constructor();
|
|
17
24
|
/** Create an AudioGenerator for the given text */
|
|
18
25
|
static of(text: string): AudioGenerator;
|
|
19
26
|
/** Set the TTS model (e.g. 'openai/tts-1-hd') */
|
|
20
27
|
model(m: string): this;
|
|
28
|
+
/**
|
|
29
|
+
* Provider/model strings to try if the primary fails.
|
|
30
|
+
* Tried in order; the first to succeed wins.
|
|
31
|
+
*/
|
|
32
|
+
failover(...models: string[]): this;
|
|
21
33
|
/** Set the voice (e.g. 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer') */
|
|
22
34
|
voice(v: string): this;
|
|
23
35
|
/** Set playback speed (0.25 to 4.0) */
|
package/dist/audio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAE1D
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAE1D;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IAOL,OAAO,CAAC,QAAQ,CAAC,KAAK;IAN1C,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO;IAEP,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIvC,iDAAiD;IACjD,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtB;;;OAGG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAKnC,+EAA+E;IAC/E,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtB,uCAAuC;IACvC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtB,8BAA8B;IAC9B,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAK5B,yBAAyB;IACnB,QAAQ,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAwB7C,wDAAwD;IAClD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgB3C"}
|
package/dist/audio.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { AiRegistry } from './registry.js';
|
|
1
|
+
import { AiRegistry, tryWithFailover } from './registry.js';
|
|
2
2
|
/**
|
|
3
3
|
* Fluent builder for text-to-speech generation.
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
6
|
* const result = await AudioGenerator.of('Hello world').voice('alloy').generate()
|
|
7
7
|
* await AudioGenerator.of('Hello').format('wav').store('audio/greeting.wav')
|
|
8
|
+
*
|
|
9
|
+
* @example Failover across providers
|
|
10
|
+
* const result = await AudioGenerator.of('Hello')
|
|
11
|
+
* .model('openai/tts-1-hd')
|
|
12
|
+
* .failover('elevenlabs/eleven_multilingual_v2')
|
|
13
|
+
* .generate()
|
|
8
14
|
*/
|
|
9
15
|
export class AudioGenerator {
|
|
10
16
|
_text;
|
|
@@ -12,6 +18,7 @@ export class AudioGenerator {
|
|
|
12
18
|
_voice;
|
|
13
19
|
_speed;
|
|
14
20
|
_format;
|
|
21
|
+
_failover = [];
|
|
15
22
|
constructor(_text) {
|
|
16
23
|
this._text = _text;
|
|
17
24
|
}
|
|
@@ -24,6 +31,14 @@ export class AudioGenerator {
|
|
|
24
31
|
this._model = m;
|
|
25
32
|
return this;
|
|
26
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Provider/model strings to try if the primary fails.
|
|
36
|
+
* Tried in order; the first to succeed wins.
|
|
37
|
+
*/
|
|
38
|
+
failover(...models) {
|
|
39
|
+
this._failover = models;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
27
42
|
/** Set the voice (e.g. 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer') */
|
|
28
43
|
voice(v) {
|
|
29
44
|
this._voice = v;
|
|
@@ -41,20 +56,22 @@ export class AudioGenerator {
|
|
|
41
56
|
}
|
|
42
57
|
/** Generate the audio */
|
|
43
58
|
async generate() {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
`
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
const primary = this._model ?? AiRegistry.getDefault();
|
|
60
|
+
return tryWithFailover(primary, this._failover, async (modelString) => {
|
|
61
|
+
const [providerName, modelId] = AiRegistry.parseModelString(modelString);
|
|
62
|
+
const factory = AiRegistry.getFactory(providerName);
|
|
63
|
+
if (!factory.createTts) {
|
|
64
|
+
throw new Error(`[RudderJS AI] Provider "${providerName}" does not support text-to-speech. ` +
|
|
65
|
+
`Use a provider that implements createTts() (e.g. openai).`);
|
|
66
|
+
}
|
|
67
|
+
const adapter = factory.createTts(modelId);
|
|
68
|
+
return adapter.generate({
|
|
69
|
+
text: this._text,
|
|
70
|
+
model: modelId,
|
|
71
|
+
voice: this._voice,
|
|
72
|
+
speed: this._speed,
|
|
73
|
+
format: this._format,
|
|
74
|
+
});
|
|
58
75
|
});
|
|
59
76
|
}
|
|
60
77
|
/** Generate audio and store it via @rudderjs/storage */
|
package/dist/audio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAK3D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,cAAc;IAOY;IAN7B,MAAM,CAAS;IACf,MAAM,CAAS;IACf,MAAM,CAAS;IACf,OAAO,CAAc;IACrB,SAAS,GAAa,EAAE,CAAA;IAEhC,YAAqC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAEtD,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,IAAY;QACpB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,CAAS;QACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,GAAG,MAAgB;QAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,CAAS;QACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,CAAS;QACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,CAAc;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAA;QACtD,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YACpE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;YACxE,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAEnD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,2BAA2B,YAAY,qCAAqC;oBAC5E,2DAA2D,CAC5D,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC;gBACtB,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,MAAM,EAAE,IAAI,CAAC,OAAO;aACrB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEpC,IAAI,CAAC;YACH,iEAAiE;YACjE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,mBAA6B,CAAC,CAAA;YAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YAC3B,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,0EAA0E;gBAC1E,wCAAwC,CACzC,CAAA;QACH,CAAC;IACH,CAAC;CACF"}
|
package/dist/fake.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ export declare class AiFake {
|
|
|
54
54
|
private _response;
|
|
55
55
|
private _sequence;
|
|
56
56
|
private readonly _failures;
|
|
57
|
+
private _preventStray;
|
|
57
58
|
private _imageResponse;
|
|
58
59
|
private _ttsResponse;
|
|
59
60
|
private _sttResponse;
|
|
@@ -62,6 +63,28 @@ export declare class AiFake {
|
|
|
62
63
|
private _fileUploadResponse;
|
|
63
64
|
/** Set the text response the fake will return */
|
|
64
65
|
respondWith(text: string): void;
|
|
66
|
+
/**
|
|
67
|
+
* Strict mode — throw when the agent makes a prompt the fake doesn't have a
|
|
68
|
+
* scripted response for.
|
|
69
|
+
*
|
|
70
|
+
* Without this, an unscripted prompt silently falls back to the ambient
|
|
71
|
+
* `respondWith` default (`'fake response'` if untouched). That behavior
|
|
72
|
+
* makes tests pass even when they accidentally trigger an extra prompt the
|
|
73
|
+
* test never asserted on.
|
|
74
|
+
*
|
|
75
|
+
* Under strict mode, only entries from {@link respondWithSequence} count
|
|
76
|
+
* as valid responses; the ambient `respondWith` default is **not used**.
|
|
77
|
+
* Force a single-step script via `respondWithSequence([{ text: '...' }])`
|
|
78
|
+
* if you need an exact-one-prompt test that still returns content.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* const fake = AiFake.fake().preventStrayPrompts()
|
|
82
|
+
* fake.respondWithSequence([{ text: 'expected reply' }])
|
|
83
|
+
*
|
|
84
|
+
* await new ChatAgent().prompt('hello') // OK
|
|
85
|
+
* await new ChatAgent().prompt('again') // throws — no second script entry
|
|
86
|
+
*/
|
|
87
|
+
preventStrayPrompts(): this;
|
|
65
88
|
/**
|
|
66
89
|
* Script a multi-step provider response. Each entry in `steps` corresponds
|
|
67
90
|
* to one provider call (the Nth `generate`/`stream` invocation consumes
|
package/dist/fake.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake.d.ts","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,sBAAsB,EAMtB,sBAAsB,EAGtB,mBAAmB,EAGnB,mBAAmB,EAGnB,gBAAgB,EAChB,eAAe,EAGf,gBAAgB,EAGhB,QAAQ,EACR,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyD;IACpF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;IACzE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,mBAAmB,CAA2E;IAEtG,iDAAiD;IACjD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;IAK9C;;;;;;;;OAQG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAIjD,gDAAgD;IAChD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,oDAAoD;IACpD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,0DAA0D;IAC1D,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5C,8CAA8C;IAC9C,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAIlD,qDAAqD;IACrD,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI;IAI7D,sDAAsD;IACtD,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIrD,uEAAuE;IACvE,MAAM,CAAC,IAAI,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"fake.d.ts","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}
|
package/dist/fake.js
CHANGED
|
@@ -35,6 +35,7 @@ export class AiFake {
|
|
|
35
35
|
_response = 'fake response';
|
|
36
36
|
_sequence = [];
|
|
37
37
|
_failures = new Map();
|
|
38
|
+
_preventStray = false;
|
|
38
39
|
_imageResponse = 'ZmFrZS1pbWFnZQ=='; // base64 of 'fake-image'
|
|
39
40
|
_ttsResponse = Buffer.from('fake-audio');
|
|
40
41
|
_sttResponse = 'fake transcription';
|
|
@@ -45,6 +46,31 @@ export class AiFake {
|
|
|
45
46
|
respondWith(text) {
|
|
46
47
|
this._response = text;
|
|
47
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Strict mode — throw when the agent makes a prompt the fake doesn't have a
|
|
51
|
+
* scripted response for.
|
|
52
|
+
*
|
|
53
|
+
* Without this, an unscripted prompt silently falls back to the ambient
|
|
54
|
+
* `respondWith` default (`'fake response'` if untouched). That behavior
|
|
55
|
+
* makes tests pass even when they accidentally trigger an extra prompt the
|
|
56
|
+
* test never asserted on.
|
|
57
|
+
*
|
|
58
|
+
* Under strict mode, only entries from {@link respondWithSequence} count
|
|
59
|
+
* as valid responses; the ambient `respondWith` default is **not used**.
|
|
60
|
+
* Force a single-step script via `respondWithSequence([{ text: '...' }])`
|
|
61
|
+
* if you need an exact-one-prompt test that still returns content.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const fake = AiFake.fake().preventStrayPrompts()
|
|
65
|
+
* fake.respondWithSequence([{ text: 'expected reply' }])
|
|
66
|
+
*
|
|
67
|
+
* await new ChatAgent().prompt('hello') // OK
|
|
68
|
+
* await new ChatAgent().prompt('again') // throws — no second script entry
|
|
69
|
+
*/
|
|
70
|
+
preventStrayPrompts() {
|
|
71
|
+
this._preventStray = true;
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
48
74
|
/**
|
|
49
75
|
* Script a multi-step provider response. Each entry in `steps` corresponds
|
|
50
76
|
* to one provider call (the Nth `generate`/`stream` invocation consumes
|
|
@@ -102,6 +128,8 @@ export class AiFake {
|
|
|
102
128
|
/** Install the fake — replaces all registered providers with a mock */
|
|
103
129
|
static fake() {
|
|
104
130
|
const fake = new AiFake();
|
|
131
|
+
const strayError = (stepIndex) => new Error(`[RudderJS AI] Stray prompt: no scripted response at step ${stepIndex}. ` +
|
|
132
|
+
`Add an entry via respondWithSequence([...]) or remove preventStrayPrompts().`);
|
|
105
133
|
const adapter = {
|
|
106
134
|
async generate(opts) {
|
|
107
135
|
const stepIndex = fake.calls.length;
|
|
@@ -121,6 +149,8 @@ export class AiFake {
|
|
|
121
149
|
finishReason: next.finishReason ?? (next.toolCalls ? 'tool_calls' : 'stop'),
|
|
122
150
|
};
|
|
123
151
|
}
|
|
152
|
+
if (fake._preventStray)
|
|
153
|
+
throw strayError(stepIndex);
|
|
124
154
|
return {
|
|
125
155
|
message: { role: 'assistant', content: fake._response },
|
|
126
156
|
usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 },
|
|
@@ -148,6 +178,8 @@ export class AiFake {
|
|
|
148
178
|
};
|
|
149
179
|
return;
|
|
150
180
|
}
|
|
181
|
+
if (fake._preventStray)
|
|
182
|
+
throw strayError(stepIndex);
|
|
151
183
|
yield { type: 'text-delta', text: fake._response };
|
|
152
184
|
yield { type: 'finish', finishReason: 'stop', usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 } };
|
|
153
185
|
},
|
package/dist/fake.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}
|
package/dist/image.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ import type { ImageGenerationResult } from './types.js';
|
|
|
5
5
|
* @example
|
|
6
6
|
* const result = await ImageGenerator.of('A sunset over mountains').size('landscape').generate()
|
|
7
7
|
* const path = await ImageGenerator.of('A logo').model('openai/dall-e-3').store('images/logo.png')
|
|
8
|
+
*
|
|
9
|
+
* @example Failover across providers
|
|
10
|
+
* const result = await ImageGenerator.of('A donut')
|
|
11
|
+
* .model('openai/dall-e-3')
|
|
12
|
+
* .failover('google/imagen-3', 'azure/dall-e-3')
|
|
13
|
+
* .generate()
|
|
8
14
|
*/
|
|
9
15
|
export declare class ImageGenerator {
|
|
10
16
|
private readonly _prompt;
|
|
@@ -13,9 +19,16 @@ export declare class ImageGenerator {
|
|
|
13
19
|
private _quality;
|
|
14
20
|
private _style;
|
|
15
21
|
private _n;
|
|
22
|
+
private _failover;
|
|
16
23
|
private constructor();
|
|
17
24
|
static of(prompt: string): ImageGenerator;
|
|
18
25
|
model(model: string): this;
|
|
26
|
+
/**
|
|
27
|
+
* Provider/model strings to try if the primary fails.
|
|
28
|
+
* Tried in order; the first to succeed wins. Swallows individual errors,
|
|
29
|
+
* surfaces only the last one if every candidate fails.
|
|
30
|
+
*/
|
|
31
|
+
failover(...models: string[]): this;
|
|
19
32
|
size(size: string): this;
|
|
20
33
|
quality(quality: 'standard' | 'hd'): this;
|
|
21
34
|
style(style: 'natural' | 'vivid'): this;
|
package/dist/image.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0B,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE/E
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0B,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE/E;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IAQL,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO;IAEP,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAIzC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAKnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAKzC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI;IAKvC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhB,QAAQ,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAyBhD,iFAAiF;IAC3E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwB3C"}
|
package/dist/image.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { AiRegistry } from './registry.js';
|
|
1
|
+
import { AiRegistry, tryWithFailover } from './registry.js';
|
|
2
2
|
/**
|
|
3
3
|
* Fluent image generation facade.
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
6
|
* const result = await ImageGenerator.of('A sunset over mountains').size('landscape').generate()
|
|
7
7
|
* const path = await ImageGenerator.of('A logo').model('openai/dall-e-3').store('images/logo.png')
|
|
8
|
+
*
|
|
9
|
+
* @example Failover across providers
|
|
10
|
+
* const result = await ImageGenerator.of('A donut')
|
|
11
|
+
* .model('openai/dall-e-3')
|
|
12
|
+
* .failover('google/imagen-3', 'azure/dall-e-3')
|
|
13
|
+
* .generate()
|
|
8
14
|
*/
|
|
9
15
|
export class ImageGenerator {
|
|
10
16
|
_prompt;
|
|
@@ -13,6 +19,7 @@ export class ImageGenerator {
|
|
|
13
19
|
_quality;
|
|
14
20
|
_style;
|
|
15
21
|
_n;
|
|
22
|
+
_failover = [];
|
|
16
23
|
constructor(_prompt) {
|
|
17
24
|
this._prompt = _prompt;
|
|
18
25
|
}
|
|
@@ -23,6 +30,15 @@ export class ImageGenerator {
|
|
|
23
30
|
this._model = model;
|
|
24
31
|
return this;
|
|
25
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Provider/model strings to try if the primary fails.
|
|
35
|
+
* Tried in order; the first to succeed wins. Swallows individual errors,
|
|
36
|
+
* surfaces only the last one if every candidate fails.
|
|
37
|
+
*/
|
|
38
|
+
failover(...models) {
|
|
39
|
+
this._failover = models;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
26
42
|
size(size) {
|
|
27
43
|
this._size = size;
|
|
28
44
|
return this;
|
|
@@ -40,26 +56,28 @@ export class ImageGenerator {
|
|
|
40
56
|
return this;
|
|
41
57
|
}
|
|
42
58
|
async generate() {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
const primary = this._model ?? AiRegistry.getDefault();
|
|
60
|
+
return tryWithFailover(primary, this._failover, async (modelStr) => {
|
|
61
|
+
const [providerName, modelName] = AiRegistry.parseModelString(modelStr);
|
|
62
|
+
const factory = AiRegistry.getFactory(providerName);
|
|
63
|
+
if (!factory.createImage) {
|
|
64
|
+
throw new Error(`[RudderJS AI] Provider "${providerName}" does not support image generation.`);
|
|
65
|
+
}
|
|
66
|
+
const adapter = factory.createImage(modelName);
|
|
67
|
+
const options = {
|
|
68
|
+
prompt: this._prompt,
|
|
69
|
+
model: modelStr,
|
|
70
|
+
};
|
|
71
|
+
if (this._size !== undefined)
|
|
72
|
+
options.size = this._size;
|
|
73
|
+
if (this._quality !== undefined)
|
|
74
|
+
options.quality = this._quality;
|
|
75
|
+
if (this._style !== undefined)
|
|
76
|
+
options.style = this._style;
|
|
77
|
+
if (this._n !== undefined)
|
|
78
|
+
options.n = this._n;
|
|
79
|
+
return adapter.generate(options);
|
|
80
|
+
});
|
|
63
81
|
}
|
|
64
82
|
/** Generate and store the first image to storage. Requires @rudderjs/storage. */
|
|
65
83
|
async store(path) {
|
package/dist/image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DocumentAttachment as Document, ImageAttachment as Image, getMessageText, attachmentsToContentParts } from './attachment.js';
|
|
2
|
-
export type { AgentPromptOptions, Attachment, AiMessage, ContentPart, AiConfig, AiModelConfig, AiProviderConfig, AiMiddleware, AgentResponse, AgentStep, AgentStreamResponse, AnyTool, BeforeToolCallResult, ClientTool, ConversationStore, ConversationStoreMeta, FinishReason, HasMiddleware, HasMemory, HasStructuredOutput, HasTools, MiddlewareConfigResult, MiddlewareContext, PrepareStepResult, ProviderAdapter, ProviderFactory, ProviderRequestOptions, ProviderResponse, ServerTool, StopCondition, Tool, StreamChunk, TokenUsage, ToolCall, ToolCallContext, ToolChoice, ToolDefinitionOptions, ToolDefinitionSchema, ToolExecuteFn, ToolNeedsApproval, ToolResult, EmbeddingAdapter, EmbeddingResult, ImageGenerationAdapter, ImageGenerationOptions, ImageGenerationResult, TextToSpeechAdapter, TextToSpeechOptions, TextToSpeechResult, SpeechToTextAdapter, SpeechToTextOptions, SpeechToTextResult, RerankingAdapter, RerankingOptions, RerankingResult, FileAdapter, FileUploadOptions, FileUploadResult, FileListResult, FileContent, } from './types.js';
|
|
2
|
+
export type { AgentPromptOptions, Attachment, AiMessage, ContentPart, AiConfig, AiModelConfig, AiProviderConfig, AiMiddleware, AgentResponse, AgentStep, AgentStreamResponse, AnyTool, BeforeToolCallResult, CacheableConfig, CacheableMarkers, ClientTool, ConversationStore, ConversationStoreMeta, FinishReason, HasMiddleware, HasMemory, HasStructuredOutput, HasTools, MiddlewareConfigResult, MiddlewareContext, PrepareStepResult, ProviderAdapter, ProviderFactory, ProviderRequestOptions, ProviderResponse, ServerTool, StopCondition, Tool, StreamChunk, TokenUsage, ToolCall, ToolCallContext, ToolChoice, ToolDefinitionOptions, ToolDefinitionSchema, ToolExecuteFn, ToolNeedsApproval, ToolResult, EmbeddingAdapter, EmbeddingResult, ImageGenerationAdapter, ImageGenerationOptions, ImageGenerationResult, TextToSpeechAdapter, TextToSpeechOptions, TextToSpeechResult, SpeechToTextAdapter, SpeechToTextOptions, SpeechToTextResult, RerankingAdapter, RerankingOptions, RerankingResult, FileAdapter, FileUploadOptions, FileUploadResult, FileListResult, FileContent, } from './types.js';
|
|
3
3
|
export { AiRegistry } from './registry.js';
|
|
4
4
|
export { AnthropicProvider, type AnthropicConfig } from './providers/anthropic.js';
|
|
5
5
|
export { OpenAIProvider, OpenAIAdapter, type OpenAIConfig } from './providers/openai.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,cAAc;AACd,OAAO,EAAE,kBAAkB,IAAI,QAAQ,EAAE,eAAe,IAAI,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,cAAc;AACd,OAAO,EAAE,kBAAkB,IAAI,QAAQ,EAAE,eAAe,IAAI,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAoErI,WAAW;AACX,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAwB,MAAM,0BAA0B,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAsB,MAAM,wBAAwB,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAA0B,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAA;AAEnE,QAAQ;AACR,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAErJ,oBAAoB;AACpB,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAA;AAExD,eAAe;AACf,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,SAAS;AACT,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAEhC,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExE,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE3E,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,oBAAoB;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,UAAU;AACV,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -10,4 +10,7 @@ export declare class AnthropicProvider implements ProviderFactory {
|
|
|
10
10
|
create(model: string): ProviderAdapter;
|
|
11
11
|
createFiles(): FileAdapter;
|
|
12
12
|
}
|
|
13
|
+
export declare function applyCacheToSystem(system: string | undefined, enabled: boolean): unknown;
|
|
14
|
+
export declare function applyCacheToTools(tools: unknown[], enabled: boolean): unknown[];
|
|
15
|
+
export declare function applyCacheToMessages(messages: unknown[], cacheCount: number | undefined): unknown[];
|
|
13
16
|
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,WAAW,EAYZ,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;AAED,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,eAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAInC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAItC,WAAW,IAAI,WAAW;CAG3B"}
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,WAAW,EAYZ,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;AAED,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,eAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAInC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAItC,WAAW,IAAI,WAAW;CAG3B;AA+LD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAKxF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAK/E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,CAqBnG"}
|
|
@@ -34,21 +34,24 @@ class AnthropicAdapter {
|
|
|
34
34
|
async generate(options) {
|
|
35
35
|
const client = await this.getClient();
|
|
36
36
|
const { system, messages } = splitSystemMessages(options.messages);
|
|
37
|
+
const cache = options.cache;
|
|
37
38
|
const params = {
|
|
38
39
|
model: this.model,
|
|
39
|
-
messages: toAnthropicMessages(messages),
|
|
40
|
+
messages: applyCacheToMessages(toAnthropicMessages(messages), cache?.messages),
|
|
40
41
|
max_tokens: options.maxTokens ?? 4096,
|
|
41
42
|
};
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
const sys = applyCacheToSystem(system, cache?.instructions === true);
|
|
44
|
+
if (sys !== undefined)
|
|
45
|
+
params['system'] = sys;
|
|
44
46
|
if (options.temperature !== undefined)
|
|
45
47
|
params['temperature'] = options.temperature;
|
|
46
48
|
if (options.topP !== undefined)
|
|
47
49
|
params['top_p'] = options.topP;
|
|
48
50
|
if (options.stop)
|
|
49
51
|
params['stop_sequences'] = options.stop;
|
|
50
|
-
if (options.tools?.length)
|
|
51
|
-
params['tools'] = toAnthropicTools(options.tools);
|
|
52
|
+
if (options.tools?.length) {
|
|
53
|
+
params['tools'] = applyCacheToTools(toAnthropicTools(options.tools), cache?.tools === true);
|
|
54
|
+
}
|
|
52
55
|
if (options.toolChoice)
|
|
53
56
|
params['tool_choice'] = toAnthropicToolChoice(options.toolChoice);
|
|
54
57
|
const response = await client.messages.create(params, options.signal ? { signal: options.signal } : undefined);
|
|
@@ -57,22 +60,25 @@ class AnthropicAdapter {
|
|
|
57
60
|
async *stream(options) {
|
|
58
61
|
const client = await this.getClient();
|
|
59
62
|
const { system, messages } = splitSystemMessages(options.messages);
|
|
63
|
+
const cache = options.cache;
|
|
60
64
|
const params = {
|
|
61
65
|
model: this.model,
|
|
62
|
-
messages: toAnthropicMessages(messages),
|
|
66
|
+
messages: applyCacheToMessages(toAnthropicMessages(messages), cache?.messages),
|
|
63
67
|
max_tokens: options.maxTokens ?? 4096,
|
|
64
68
|
stream: true,
|
|
65
69
|
};
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
const sys = applyCacheToSystem(system, cache?.instructions === true);
|
|
71
|
+
if (sys !== undefined)
|
|
72
|
+
params['system'] = sys;
|
|
68
73
|
if (options.temperature !== undefined)
|
|
69
74
|
params['temperature'] = options.temperature;
|
|
70
75
|
if (options.topP !== undefined)
|
|
71
76
|
params['top_p'] = options.topP;
|
|
72
77
|
if (options.stop)
|
|
73
78
|
params['stop_sequences'] = options.stop;
|
|
74
|
-
if (options.tools?.length)
|
|
75
|
-
params['tools'] = toAnthropicTools(options.tools);
|
|
79
|
+
if (options.tools?.length) {
|
|
80
|
+
params['tools'] = applyCacheToTools(toAnthropicTools(options.tools), cache?.tools === true);
|
|
81
|
+
}
|
|
76
82
|
if (options.toolChoice)
|
|
77
83
|
params['tool_choice'] = toAnthropicToolChoice(options.toolChoice);
|
|
78
84
|
const stream = await client.messages.stream(params, options.signal ? { signal: options.signal } : undefined);
|
|
@@ -186,6 +192,51 @@ function toAnthropicTools(tools) {
|
|
|
186
192
|
input_schema: t.parameters,
|
|
187
193
|
}));
|
|
188
194
|
}
|
|
195
|
+
// ─── Prompt-cache markers ────────────────────────────────
|
|
196
|
+
//
|
|
197
|
+
// Anthropic exposes ephemeral prompt caching via `cache_control` on
|
|
198
|
+
// individual content blocks. The marker goes on the *last* block of each
|
|
199
|
+
// region you want to cache; everything up to (and including) that block is
|
|
200
|
+
// cached. Up to 4 cache breakpoints per request — we currently emit at
|
|
201
|
+
// most 3 (system, tools, messages[N]) so we stay well under the limit.
|
|
202
|
+
//
|
|
203
|
+
// Spec: https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
|
|
204
|
+
const CACHE_CONTROL = { cache_control: { type: 'ephemeral' } };
|
|
205
|
+
export function applyCacheToSystem(system, enabled) {
|
|
206
|
+
if (!system)
|
|
207
|
+
return undefined;
|
|
208
|
+
if (!enabled)
|
|
209
|
+
return system;
|
|
210
|
+
// String-form system can't carry cache_control; convert to a single text block.
|
|
211
|
+
return [{ type: 'text', text: system, ...CACHE_CONTROL }];
|
|
212
|
+
}
|
|
213
|
+
export function applyCacheToTools(tools, enabled) {
|
|
214
|
+
if (!enabled || tools.length === 0)
|
|
215
|
+
return tools;
|
|
216
|
+
return tools.map((t, i) => i === tools.length - 1 ? { ...t, ...CACHE_CONTROL } : t);
|
|
217
|
+
}
|
|
218
|
+
export function applyCacheToMessages(messages, cacheCount) {
|
|
219
|
+
if (!cacheCount || cacheCount <= 0 || messages.length === 0)
|
|
220
|
+
return messages;
|
|
221
|
+
// Cache the first N messages — mark cache_control on the last content block
|
|
222
|
+
// of message at index N-1 (or the last actual message if N exceeds length).
|
|
223
|
+
const idx = Math.min(cacheCount - 1, messages.length - 1);
|
|
224
|
+
return messages.map((m, i) => {
|
|
225
|
+
if (i !== idx)
|
|
226
|
+
return m;
|
|
227
|
+
const msg = m;
|
|
228
|
+
if (typeof msg.content === 'string') {
|
|
229
|
+
// Convert string content to a single text block so we can attach cache_control.
|
|
230
|
+
return { ...msg, content: [{ type: 'text', text: msg.content, ...CACHE_CONTROL }] };
|
|
231
|
+
}
|
|
232
|
+
if (Array.isArray(msg.content) && msg.content.length > 0) {
|
|
233
|
+
const blocks = msg.content;
|
|
234
|
+
const newBlocks = blocks.map((b, j) => j === blocks.length - 1 ? { ...b, ...CACHE_CONTROL } : b);
|
|
235
|
+
return { ...msg, content: newBlocks };
|
|
236
|
+
}
|
|
237
|
+
return m;
|
|
238
|
+
});
|
|
239
|
+
}
|
|
189
240
|
function toAnthropicToolChoice(choice) {
|
|
190
241
|
if (choice === 'auto')
|
|
191
242
|
return { type: 'auto' };
|