@effect/ai 0.14.1 → 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/AiEmbeddingModel/package.json +6 -0
- package/AiLanguageModel/package.json +6 -0
- package/AiTool/package.json +6 -0
- package/dist/cjs/AiChat.js +65 -86
- package/dist/cjs/AiChat.js.map +1 -1
- package/dist/cjs/{Embeddings.js → AiEmbeddingModel.js} +12 -12
- package/dist/cjs/AiEmbeddingModel.js.map +1 -0
- package/dist/cjs/AiError.js +8 -1
- package/dist/cjs/AiError.js.map +1 -1
- package/dist/cjs/AiInput.js +335 -248
- package/dist/cjs/AiInput.js.map +1 -1
- package/dist/cjs/AiLanguageModel.js +311 -0
- package/dist/cjs/AiLanguageModel.js.map +1 -0
- package/dist/cjs/AiModel.js +11 -5
- package/dist/cjs/AiModel.js.map +1 -1
- package/dist/cjs/AiPlan.js +10 -3
- package/dist/cjs/AiPlan.js.map +1 -1
- package/dist/cjs/AiResponse.js +481 -165
- package/dist/cjs/AiResponse.js.map +1 -1
- package/dist/cjs/AiTelemetry.js +10 -3
- package/dist/cjs/AiTelemetry.js.map +1 -1
- package/dist/cjs/AiTool.js +93 -0
- package/dist/cjs/AiTool.js.map +1 -0
- package/dist/cjs/AiToolkit.js +121 -98
- package/dist/cjs/AiToolkit.js.map +1 -1
- package/dist/cjs/Tokenizer.js +14 -16
- package/dist/cjs/Tokenizer.js.map +1 -1
- package/dist/cjs/index.js +7 -9
- package/dist/cjs/internal/aiPlan.js +6 -9
- package/dist/cjs/internal/aiPlan.js.map +1 -1
- package/dist/cjs/internal/common.js +22 -0
- package/dist/cjs/internal/common.js.map +1 -0
- package/dist/dts/AiChat.d.ts +58 -44
- package/dist/dts/AiChat.d.ts.map +1 -1
- package/dist/dts/{Embeddings.d.ts → AiEmbeddingModel.d.ts} +13 -14
- package/dist/dts/AiEmbeddingModel.d.ts.map +1 -0
- package/dist/dts/AiError.d.ts +4 -3
- package/dist/dts/AiError.d.ts.map +1 -1
- package/dist/dts/AiInput.d.ts +441 -146
- package/dist/dts/AiInput.d.ts.map +1 -1
- package/dist/dts/AiLanguageModel.d.ts +263 -0
- package/dist/dts/AiLanguageModel.d.ts.map +1 -0
- package/dist/dts/AiModel.d.ts +21 -20
- package/dist/dts/AiModel.d.ts.map +1 -1
- package/dist/dts/AiPlan.d.ts +90 -26
- package/dist/dts/AiPlan.d.ts.map +1 -1
- package/dist/dts/AiResponse.d.ts +711 -100
- package/dist/dts/AiResponse.d.ts.map +1 -1
- package/dist/dts/AiTelemetry.d.ts +175 -157
- package/dist/dts/AiTelemetry.d.ts.map +1 -1
- package/dist/dts/AiTool.d.ts +288 -0
- package/dist/dts/AiTool.d.ts.map +1 -0
- package/dist/dts/AiToolkit.d.ts +50 -111
- package/dist/dts/AiToolkit.d.ts.map +1 -1
- package/dist/dts/Tokenizer.d.ts +8 -6
- package/dist/dts/Tokenizer.d.ts.map +1 -1
- package/dist/dts/index.d.ts +8 -12
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/common.d.ts +2 -0
- package/dist/dts/internal/common.d.ts.map +1 -0
- package/dist/esm/AiChat.js +62 -83
- package/dist/esm/AiChat.js.map +1 -1
- package/dist/esm/{Embeddings.js → AiEmbeddingModel.js} +10 -10
- package/dist/esm/AiEmbeddingModel.js.map +1 -0
- package/dist/esm/AiError.js +8 -1
- package/dist/esm/AiError.js.map +1 -1
- package/dist/esm/AiInput.js +316 -238
- package/dist/esm/AiInput.js.map +1 -1
- package/dist/esm/AiLanguageModel.js +300 -0
- package/dist/esm/AiLanguageModel.js.map +1 -0
- package/dist/esm/AiModel.js +11 -5
- package/dist/esm/AiModel.js.map +1 -1
- package/dist/esm/AiPlan.js +8 -2
- package/dist/esm/AiPlan.js.map +1 -1
- package/dist/esm/AiResponse.js +467 -162
- package/dist/esm/AiResponse.js.map +1 -1
- package/dist/esm/AiTelemetry.js +8 -2
- package/dist/esm/AiTelemetry.js.map +1 -1
- package/dist/esm/AiTool.js +82 -0
- package/dist/esm/AiTool.js.map +1 -0
- package/dist/esm/AiToolkit.js +118 -96
- package/dist/esm/AiToolkit.js.map +1 -1
- package/dist/esm/Tokenizer.js +14 -16
- package/dist/esm/Tokenizer.js.map +1 -1
- package/dist/esm/index.js +8 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/aiPlan.js +4 -7
- package/dist/esm/internal/aiPlan.js.map +1 -1
- package/dist/esm/internal/common.js +14 -0
- package/dist/esm/internal/common.js.map +1 -0
- package/package.json +28 -36
- package/src/AiChat.ts +182 -207
- package/src/{Embeddings.ts → AiEmbeddingModel.ts} +19 -18
- package/src/AiError.ts +8 -1
- package/src/AiInput.ts +434 -313
- package/src/AiLanguageModel.ts +569 -0
- package/src/AiModel.ts +47 -29
- package/src/AiPlan.ts +102 -30
- package/src/AiResponse.ts +743 -187
- package/src/AiTelemetry.ts +214 -197
- package/src/AiTool.ts +496 -0
- package/src/AiToolkit.ts +200 -240
- package/src/Tokenizer.ts +18 -22
- package/src/index.ts +9 -14
- package/src/internal/aiPlan.ts +12 -14
- package/src/internal/common.ts +12 -0
- package/AiModels/package.json +0 -6
- package/AiRole/package.json +0 -6
- package/Completions/package.json +0 -6
- package/Embeddings/package.json +0 -6
- package/dist/cjs/AiModels.js +0 -54
- package/dist/cjs/AiModels.js.map +0 -1
- package/dist/cjs/AiRole.js +0 -106
- package/dist/cjs/AiRole.js.map +0 -1
- package/dist/cjs/Completions.js +0 -256
- package/dist/cjs/Completions.js.map +0 -1
- package/dist/cjs/Embeddings.js.map +0 -1
- package/dist/dts/AiModels.d.ts +0 -34
- package/dist/dts/AiModels.d.ts.map +0 -1
- package/dist/dts/AiRole.d.ts +0 -111
- package/dist/dts/AiRole.d.ts.map +0 -1
- package/dist/dts/Completions.d.ts +0 -128
- package/dist/dts/Completions.d.ts.map +0 -1
- package/dist/dts/Embeddings.d.ts.map +0 -1
- package/dist/esm/AiModels.js +0 -44
- package/dist/esm/AiModels.js.map +0 -1
- package/dist/esm/AiRole.js +0 -93
- package/dist/esm/AiRole.js.map +0 -1
- package/dist/esm/Completions.js +0 -245
- package/dist/esm/Completions.js.map +0 -1
- package/dist/esm/Embeddings.js.map +0 -1
- package/src/AiModels.ts +0 -77
- package/src/AiRole.ts +0 -122
- package/src/Completions.ts +0 -434
package/dist/esm/AiChat.js
CHANGED
|
@@ -2,110 +2,81 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Channel from "effect/Channel";
|
|
5
|
-
import * as
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Ref from "effect/Ref";
|
|
8
8
|
import * as Schema from "effect/Schema";
|
|
9
9
|
import * as Stream from "effect/Stream";
|
|
10
10
|
import * as AiInput from "./AiInput.js";
|
|
11
|
-
import
|
|
12
|
-
import
|
|
11
|
+
import * as AiLanguageModel from "./AiLanguageModel.js";
|
|
12
|
+
import * as AiResponse from "./AiResponse.js";
|
|
13
13
|
/**
|
|
14
14
|
* @since 1.0.0
|
|
15
|
-
* @category
|
|
15
|
+
* @category Context
|
|
16
16
|
*/
|
|
17
|
-
export class AiChat extends /*#__PURE__*/
|
|
17
|
+
export class AiChat extends /*#__PURE__*/Context.Tag("@effect/ai/AiChat")() {}
|
|
18
18
|
/**
|
|
19
19
|
* @since 1.0.0
|
|
20
|
-
* @category
|
|
20
|
+
* @category Constructors
|
|
21
21
|
*/
|
|
22
|
-
export const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
22
|
+
export const fromPrompt = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
23
|
+
const languageModel = yield* AiLanguageModel.AiLanguageModel;
|
|
24
|
+
const context = yield* Effect.context();
|
|
25
|
+
const provideContext = effect => Effect.mapInputContext(effect, input => Context.merge(context, input));
|
|
26
|
+
const provideContextStream = stream => Stream.mapInputContext(stream, input => Context.merge(context, input));
|
|
27
|
+
const history = yield* Ref.make(AiInput.make(options.prompt));
|
|
25
28
|
const semaphore = yield* Effect.makeSemaphore(1);
|
|
29
|
+
const system = options.system;
|
|
26
30
|
return AiChat.of({
|
|
27
31
|
history: Ref.get(history),
|
|
28
|
-
export: Ref.get(history).pipe(Effect.flatMap(Schema.encode(AiInput.
|
|
29
|
-
exportJson: Ref.get(history).pipe(Effect.flatMap(Schema.encode(AiInput.
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
return Ref.get(history).pipe(Effect.flatMap(
|
|
33
|
-
const
|
|
34
|
-
return
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
input
|
|
41
|
-
},
|
|
32
|
+
export: Ref.get(history).pipe(Effect.flatMap(Schema.encode(AiInput.AiInput)), Effect.orDie),
|
|
33
|
+
exportJson: Ref.get(history).pipe(Effect.flatMap(Schema.encode(AiInput.FromJson)), Effect.orDie),
|
|
34
|
+
generateText(options) {
|
|
35
|
+
const newInput = AiInput.make(options.prompt);
|
|
36
|
+
return Ref.get(history).pipe(Effect.flatMap(oldInput => {
|
|
37
|
+
const input = AiInput.concat(oldInput, newInput);
|
|
38
|
+
return languageModel.generateText({
|
|
39
|
+
...options,
|
|
40
|
+
system,
|
|
41
|
+
prompt: input
|
|
42
|
+
}).pipe(Effect.tap(response => {
|
|
43
|
+
const modelInput = AiInput.make(response);
|
|
44
|
+
return Ref.set(history, AiInput.concat(input, modelInput));
|
|
45
|
+
}), provideContext);
|
|
46
|
+
}), semaphore.withPermits(1), Effect.withSpan("AiChat.generateText", {
|
|
42
47
|
captureStackTrace: false
|
|
43
48
|
}));
|
|
44
49
|
},
|
|
45
|
-
|
|
50
|
+
streamText(options) {
|
|
46
51
|
return Stream.suspend(() => {
|
|
47
52
|
let combined = AiResponse.empty;
|
|
48
|
-
return Stream.fromChannel(Channel.acquireUseRelease(semaphore.take(1).pipe(Effect.zipRight(Ref.get(history)), Effect.map(
|
|
49
|
-
|
|
53
|
+
return Stream.fromChannel(Channel.acquireUseRelease(semaphore.take(1).pipe(Effect.zipRight(Ref.get(history)), Effect.map(history => AiInput.concat(history, AiInput.make(options.prompt)))), parts => languageModel.streamText({
|
|
54
|
+
...options,
|
|
55
|
+
system,
|
|
56
|
+
prompt: parts
|
|
57
|
+
}).pipe(Stream.map(chunk => {
|
|
58
|
+
combined = AiResponse.merge(combined, chunk);
|
|
50
59
|
return chunk;
|
|
51
|
-
}), Stream.toChannel), parts => Effect.zipRight(Ref.set(history,
|
|
52
|
-
}).pipe(Stream.withSpan("AiChat.
|
|
53
|
-
attributes: {
|
|
54
|
-
input
|
|
55
|
-
},
|
|
60
|
+
}), Stream.toChannel), parts => Effect.zipRight(Ref.set(history, AiInput.concat(parts, AiInput.make(combined))), semaphore.release(1))));
|
|
61
|
+
}).pipe(provideContextStream, Stream.withSpan("AiChat.streamText", {
|
|
56
62
|
captureStackTrace: false
|
|
57
63
|
}));
|
|
58
64
|
},
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
return Ref.get(history).pipe(Effect.flatMap(
|
|
62
|
-
const
|
|
63
|
-
return
|
|
65
|
+
generateObject(options) {
|
|
66
|
+
const newInput = AiInput.make(options.prompt);
|
|
67
|
+
return Ref.get(history).pipe(Effect.flatMap(oldInput => {
|
|
68
|
+
const input = AiInput.concat(oldInput, newInput);
|
|
69
|
+
return languageModel.generateObject({
|
|
64
70
|
...options,
|
|
65
|
-
|
|
71
|
+
system,
|
|
72
|
+
prompt: input
|
|
66
73
|
}).pipe(Effect.flatMap(response => {
|
|
67
|
-
const
|
|
68
|
-
return Effect.as(Ref.set(history,
|
|
74
|
+
const modelInput = AiInput.make(response);
|
|
75
|
+
return Effect.as(Ref.set(history, AiInput.concat(input, modelInput)), response);
|
|
69
76
|
}));
|
|
70
|
-
}), semaphore.withPermits(1), Effect.withSpan("AiChat.
|
|
77
|
+
}), provideContext, semaphore.withPermits(1), Effect.withSpan("AiChat.generateObject", {
|
|
71
78
|
attributes: {
|
|
72
|
-
|
|
73
|
-
schema: "toolCallId" in options ? options.toolCallId : "_tag" in options.schema ? options.schema._tag : options.schema.identifier
|
|
74
|
-
},
|
|
75
|
-
captureStackTrace: false
|
|
76
|
-
}));
|
|
77
|
-
},
|
|
78
|
-
toolkit(options) {
|
|
79
|
-
const newParts = AiInput.make(options.input);
|
|
80
|
-
return Ref.get(history).pipe(Effect.flatMap(parts => {
|
|
81
|
-
const allParts = Chunk.appendAll(parts, newParts);
|
|
82
|
-
return completions.toolkit({
|
|
83
|
-
...options,
|
|
84
|
-
input: allParts
|
|
85
|
-
}).pipe(Effect.tap(response => {
|
|
86
|
-
const responseParts = AiInput.make(response);
|
|
87
|
-
return Ref.set(history, Chunk.appendAll(allParts, responseParts));
|
|
88
|
-
}));
|
|
89
|
-
}), semaphore.withPermits(1), Effect.withSpan("AiChat.toolkit", {
|
|
90
|
-
attributes: {
|
|
91
|
-
input: options.input
|
|
92
|
-
},
|
|
93
|
-
captureStackTrace: false
|
|
94
|
-
}));
|
|
95
|
-
},
|
|
96
|
-
toolkitStream(options) {
|
|
97
|
-
return Stream.suspend(() => {
|
|
98
|
-
let combined = WithResolved.empty;
|
|
99
|
-
return Stream.fromChannel(Channel.acquireUseRelease(semaphore.take(1).pipe(Effect.zipRight(Ref.get(history)), Effect.map(Chunk.appendAll(AiInput.make(options.input)))), parts => completions.toolkitStream({
|
|
100
|
-
...options,
|
|
101
|
-
input: parts
|
|
102
|
-
}).pipe(Stream.map(chunk => {
|
|
103
|
-
combined = combined.concat(chunk);
|
|
104
|
-
return chunk;
|
|
105
|
-
}), Stream.toChannel), parts => Effect.zipRight(Ref.set(history, Chunk.appendAll(parts, AiInput.make(combined))), semaphore.release(1))));
|
|
106
|
-
}).pipe(Stream.withSpan("AiChat.toolkitStream", {
|
|
107
|
-
attributes: {
|
|
108
|
-
input: options.input
|
|
79
|
+
toolCallId: "toolCallId" in options ? options.toolCallId : "_tag" in options.schema ? options.schema._tag : options.schema.identifier ?? "generateObject"
|
|
109
80
|
},
|
|
110
81
|
captureStackTrace: false
|
|
111
82
|
}));
|
|
@@ -114,17 +85,25 @@ export const fromInput = /*#__PURE__*/Effect.fnUntraced(function* (input) {
|
|
|
114
85
|
});
|
|
115
86
|
/**
|
|
116
87
|
* @since 1.0.0
|
|
117
|
-
* @category
|
|
88
|
+
* @category Constructors
|
|
118
89
|
*/
|
|
119
|
-
export const empty = /*#__PURE__*/
|
|
90
|
+
export const empty = /*#__PURE__*/fromPrompt({
|
|
91
|
+
prompt: []
|
|
92
|
+
});
|
|
93
|
+
const decodeUnknown = /*#__PURE__*/Schema.decodeUnknown(AiInput.AiInput);
|
|
120
94
|
/**
|
|
121
95
|
* @since 1.0.0
|
|
122
|
-
* @category
|
|
96
|
+
* @category Constructors
|
|
123
97
|
*/
|
|
124
|
-
export const fromExport = data =>
|
|
98
|
+
export const fromExport = data => Effect.flatMap(decodeUnknown(data), prompt => fromPrompt({
|
|
99
|
+
prompt
|
|
100
|
+
}));
|
|
101
|
+
const decodeJson = /*#__PURE__*/Schema.decode(AiInput.FromJson);
|
|
125
102
|
/**
|
|
126
103
|
* @since 1.0.0
|
|
127
|
-
* @category
|
|
104
|
+
* @category Constructors
|
|
128
105
|
*/
|
|
129
|
-
export const fromJson = data =>
|
|
106
|
+
export const fromJson = data => Effect.flatMap(decodeJson(data), prompt => fromPrompt({
|
|
107
|
+
prompt
|
|
108
|
+
}));
|
|
130
109
|
//# sourceMappingURL=AiChat.js.map
|
package/dist/esm/AiChat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiChat.js","names":["Channel","
|
|
1
|
+
{"version":3,"file":"AiChat.js","names":["Channel","Context","Effect","Ref","Schema","Stream","AiInput","AiLanguageModel","AiResponse","AiChat","Tag","fromPrompt","fnUntraced","options","languageModel","context","provideContext","effect","mapInputContext","input","merge","provideContextStream","stream","history","make","prompt","semaphore","makeSemaphore","system","of","get","export","pipe","flatMap","encode","orDie","exportJson","FromJson","generateText","newInput","oldInput","concat","tap","response","modelInput","set","withPermits","withSpan","captureStackTrace","streamText","suspend","combined","empty","fromChannel","acquireUseRelease","take","zipRight","map","parts","chunk","toChannel","release","generateObject","as","attributes","toolCallId","schema","_tag","identifier","decodeUnknown","fromExport","data","decodeJson","decode","fromJson"],"sources":["../../src/AiChat.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,GAAG,MAAM,YAAY;AACjC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AACvD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAG7C;;;;AAIA,OAAM,MAAOC,MAAO,sBAAQR,OAAO,CAACS,GAAG,CAAC,mBAAmB,CAAC,EAGzD;AA4EH;;;;AAIA,OAAO,MAAMC,UAAU,gBAAGT,MAAM,CAACU,UAAU,CAAC,WAAUC,OAGrD;EACC,MAAMC,aAAa,GAAG,OAAOP,eAAe,CAACA,eAAe;EAC5D,MAAMQ,OAAO,GAAG,OAAOb,MAAM,CAACa,OAAO,EAAS;EAC9C,MAAMC,cAAc,GAAaC,MAA8B,IAC7Df,MAAM,CAACgB,eAAe,CAACD,MAAM,EAAGE,KAAK,IAAKlB,OAAO,CAACmB,KAAK,CAACL,OAAO,EAAEI,KAAK,CAAC,CAAC;EAC1E,MAAME,oBAAoB,GAAaC,MAA8B,IACnEjB,MAAM,CAACa,eAAe,CAACI,MAAM,EAAGH,KAAK,IAAKlB,OAAO,CAACmB,KAAK,CAACL,OAAO,EAAEI,KAAK,CAAC,CAAC;EAC1E,MAAMI,OAAO,GAAG,OAAOpB,GAAG,CAACqB,IAAI,CAAkBlB,OAAO,CAACkB,IAAI,CAACX,OAAO,CAACY,MAAM,CAAC,CAAC;EAC9E,MAAMC,SAAS,GAAG,OAAOxB,MAAM,CAACyB,aAAa,CAAC,CAAC,CAAC;EAChD,MAAMC,MAAM,GAAGf,OAAO,CAACe,MAAM;EAE7B,OAAOnB,MAAM,CAACoB,EAAE,CAAC;IACfN,OAAO,EAAEpB,GAAG,CAAC2B,GAAG,CAACP,OAAO,CAAC;IACzBQ,MAAM,EAAE5B,GAAG,CAAC2B,GAAG,CAACP,OAAO,CAAC,CAACS,IAAI,CAC3B9B,MAAM,CAAC+B,OAAO,CAAC7B,MAAM,CAAC8B,MAAM,CAAC5B,OAAO,CAACA,OAAO,CAAC,CAAC,EAC9CJ,MAAM,CAACiC,KAAK,CACb;IACDC,UAAU,EAAEjC,GAAG,CAAC2B,GAAG,CAACP,OAAO,CAAC,CAACS,IAAI,CAC/B9B,MAAM,CAAC+B,OAAO,CAAC7B,MAAM,CAAC8B,MAAM,CAAC5B,OAAO,CAAC+B,QAAQ,CAAC,CAAC,EAC/CnC,MAAM,CAACiC,KAAK,CACb;IACDG,YAAYA,CAACzB,OAAO;MAClB,MAAM0B,QAAQ,GAAGjC,OAAO,CAACkB,IAAI,CAACX,OAAO,CAACY,MAAM,CAAC;MAC7C,OAAOtB,GAAG,CAAC2B,GAAG,CAACP,OAAO,CAAC,CAACS,IAAI,CAC1B9B,MAAM,CAAC+B,OAAO,CAAEO,QAAQ,IAAI;QAC1B,MAAMrB,KAAK,GAAGb,OAAO,CAACmC,MAAM,CAACD,QAAQ,EAAED,QAAQ,CAAC;QAChD,OAAOzB,aAAa,CAACwB,YAAY,CAAC;UAChC,GAAGzB,OAAO;UACVe,MAAM;UACNH,MAAM,EAAEN;SACT,CAAC,CAACa,IAAI,CACL9B,MAAM,CAACwC,GAAG,CAAEC,QAAQ,IAAI;UACtB,MAAMC,UAAU,GAAGtC,OAAO,CAACkB,IAAI,CAACmB,QAAQ,CAAC;UACzC,OAAOxC,GAAG,CAAC0C,GAAG,CAACtB,OAAO,EAAEjB,OAAO,CAACmC,MAAM,CAACtB,KAAK,EAAEyB,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,EACF5B,cAAc,CACf;MACH,CAAC,CAAC,EACFU,SAAS,CAACoB,WAAW,CAAC,CAAC,CAAC,EACxB5C,MAAM,CAAC6C,QAAQ,CAAC,qBAAqB,EAAE;QAAEC,iBAAiB,EAAE;MAAK,CAAE,CAAC,CACrE;IACH,CAAC;IACDC,UAAUA,CAACpC,OAAO;MAChB,OAAOR,MAAM,CAAC6C,OAAO,CAAC,MAAK;QACzB,IAAIC,QAAQ,GAAG3C,UAAU,CAAC4C,KAAK;QAC/B,OAAO/C,MAAM,CAACgD,WAAW,CAACrD,OAAO,CAACsD,iBAAiB,CACjD5B,SAAS,CAAC6B,IAAI,CAAC,CAAC,CAAC,CAACvB,IAAI,CACpB9B,MAAM,CAACsD,QAAQ,CAACrD,GAAG,CAAC2B,GAAG,CAACP,OAAO,CAAC,CAAC,EACjCrB,MAAM,CAACuD,GAAG,CAAElC,OAAO,IAAKjB,OAAO,CAACmC,MAAM,CAAClB,OAAO,EAAEjB,OAAO,CAACkB,IAAI,CAACX,OAAO,CAACY,MAAM,CAAC,CAAC,CAAC,CAC/E,EACAiC,KAAK,IACJ5C,aAAa,CAACmC,UAAU,CAAC;UACvB,GAAGpC,OAAO;UACVe,MAAM;UACNH,MAAM,EAAEiC;SACT,CAAC,CAAC1B,IAAI,CACL3B,MAAM,CAACoD,GAAG,CAAEE,KAAK,IAAI;UACnBR,QAAQ,GAAG3C,UAAU,CAACY,KAAK,CAAC+B,QAAQ,EAAEQ,KAAK,CAAC;UAC5C,OAAOA,KAAK;QACd,CAAC,CAAC,EACFtD,MAAM,CAACuD,SAAS,CACjB,EACFF,KAAK,IACJxD,MAAM,CAACsD,QAAQ,CACbrD,GAAG,CAAC0C,GAAG,CAACtB,OAAO,EAAEjB,OAAO,CAACmC,MAAM,CAACiB,KAAK,EAAEpD,OAAO,CAACkB,IAAI,CAAC2B,QAAQ,CAAC,CAAC,CAAC,EAC/DzB,SAAS,CAACmC,OAAO,CAAC,CAAC,CAAC,CACrB,CACJ,CAAC;MACJ,CAAC,CAAC,CAAC7B,IAAI,CACLX,oBAAoB,EACpBhB,MAAM,CAAC0C,QAAQ,CAAC,mBAAmB,EAAE;QACnCC,iBAAiB,EAAE;OACpB,CAAC,CACI;IACV,CAAC;IACDc,cAAcA,CAACjD,OAAO;MACpB,MAAM0B,QAAQ,GAAGjC,OAAO,CAACkB,IAAI,CAACX,OAAO,CAACY,MAAM,CAAC;MAC7C,OAAOtB,GAAG,CAAC2B,GAAG,CAACP,OAAO,CAAC,CAACS,IAAI,CAC1B9B,MAAM,CAAC+B,OAAO,CAAEO,QAAQ,IAAI;QAC1B,MAAMrB,KAAK,GAAGb,OAAO,CAACmC,MAAM,CAACD,QAAQ,EAAED,QAAQ,CAAC;QAChD,OAAOzB,aAAa,CAACgD,cAAc,CAAC;UAClC,GAAGjD,OAAO;UACVe,MAAM;UACNH,MAAM,EAAEN;SACF,CAAC,CAACa,IAAI,CACZ9B,MAAM,CAAC+B,OAAO,CAAEU,QAAQ,IAAI;UAC1B,MAAMC,UAAU,GAAGtC,OAAO,CAACkB,IAAI,CAACmB,QAAQ,CAAC;UACzC,OAAOzC,MAAM,CAAC6D,EAAE,CACd5D,GAAG,CAAC0C,GAAG,CAACtB,OAAO,EAAEjB,OAAO,CAACmC,MAAM,CAACtB,KAAK,EAAEyB,UAAU,CAAC,CAAC,EACnDD,QAAQ,CACT;QACH,CAAC,CAAC,CACH;MACH,CAAC,CAAC,EACF3B,cAAc,EACdU,SAAS,CAACoB,WAAW,CAAC,CAAC,CAAC,EACxB5C,MAAM,CAAC6C,QAAQ,CAAC,uBAAuB,EAAE;QACvCiB,UAAU,EAAE;UACVC,UAAU,EAAE,YAAY,IAAIpD,OAAO,GAC/BA,OAAO,CAACoD,UAAU,GAClB,MAAM,IAAIpD,OAAO,CAACqD,MAAM,GACxBrD,OAAO,CAACqD,MAAM,CAACC,IAAI,GAClBtD,OAAO,CAACqD,MAAc,CAACE,UAAU,IAAI;SAC3C;QACDpB,iBAAiB,EAAE;OACpB,CAAC,CACI;IACV;GACD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMI,KAAK,gBAA0EzC,UAAU,CAAC;EAAEc,MAAM,EAAE;AAAE,CAAE,CAAC;AAEtH,MAAM4C,aAAa,gBAAGjE,MAAM,CAACiE,aAAa,CAAC/D,OAAO,CAACA,OAAO,CAAC;AAE3D;;;;AAIA,OAAO,MAAMgE,UAAU,GAAIC,IAAa,IACtCrE,MAAM,CAAC+B,OAAO,CAACoC,aAAa,CAACE,IAAI,CAAC,EAAG9C,MAAM,IAAKd,UAAU,CAAC;EAAEc;AAAM,CAAE,CAAC,CAAC;AAEzE,MAAM+C,UAAU,gBAAGpE,MAAM,CAACqE,MAAM,CAACnE,OAAO,CAAC+B,QAAQ,CAAC;AAElD;;;;AAIA,OAAO,MAAMqC,QAAQ,GAAIH,IAAY,IACnCrE,MAAM,CAAC+B,OAAO,CAACuC,UAAU,CAACD,IAAI,CAAC,EAAG9C,MAAM,IAAKd,UAAU,CAAC;EAAEc;AAAM,CAAE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -12,10 +12,10 @@ import * as Schema from "effect/Schema";
|
|
|
12
12
|
import { AiError } from "./AiError.js";
|
|
13
13
|
/**
|
|
14
14
|
* @since 1.0.0
|
|
15
|
-
* @category
|
|
15
|
+
* @category Context
|
|
16
16
|
*/
|
|
17
|
-
export class
|
|
18
|
-
class EmbeddingRequest extends /*#__PURE__*/Schema.TaggedRequest()("EmbeddingRequest", {
|
|
17
|
+
export class AiEmbeddingModel extends /*#__PURE__*/Context.Tag("@effect/ai/AiEmbeddingModel")() {}
|
|
18
|
+
class EmbeddingRequest extends /*#__PURE__*/Schema.TaggedRequest("@effect/ai/AiEmbeddingModel/Request")("EmbeddingRequest", {
|
|
19
19
|
failure: AiError,
|
|
20
20
|
success: /*#__PURE__*/Schema.mutable( /*#__PURE__*/Schema.Array(Schema.Number)),
|
|
21
21
|
payload: {
|
|
@@ -32,7 +32,7 @@ const makeBatchedResolver = embedMany => RequestResolver.makeBatched(requests =>
|
|
|
32
32
|
}))));
|
|
33
33
|
/**
|
|
34
34
|
* @since 1.0.0
|
|
35
|
-
* @category
|
|
35
|
+
* @category Constructors
|
|
36
36
|
*/
|
|
37
37
|
export const make = options => Effect.gen(function* () {
|
|
38
38
|
const cache = yield* Option.fromNullable(options.cache).pipe(Effect.flatMap(config => Request.makeCache(config)), Effect.optionFromOptional);
|
|
@@ -44,11 +44,11 @@ export const make = options => Effect.gen(function* () {
|
|
|
44
44
|
return Option.match(cache, {
|
|
45
45
|
onNone: () => request,
|
|
46
46
|
onSome: cache => request.pipe(Effect.withRequestCaching(true), Effect.withRequestCache(cache))
|
|
47
|
-
}).pipe(Effect.withSpan("
|
|
47
|
+
}).pipe(Effect.withSpan("AiEmbeddingModel.embed", {
|
|
48
48
|
captureStackTrace: false
|
|
49
49
|
}));
|
|
50
50
|
}
|
|
51
|
-
return
|
|
51
|
+
return AiEmbeddingModel.of({
|
|
52
52
|
embed
|
|
53
53
|
});
|
|
54
54
|
});
|
|
@@ -58,7 +58,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
58
58
|
* requests, if specified) and execute them as a single batch.
|
|
59
59
|
*
|
|
60
60
|
* @since 1.0.0
|
|
61
|
-
* @category
|
|
61
|
+
* @category Constructors
|
|
62
62
|
*/
|
|
63
63
|
export const makeDataLoader = options => Effect.gen(function* () {
|
|
64
64
|
const resolver = makeBatchedResolver(options.embedMany);
|
|
@@ -69,12 +69,12 @@ export const makeDataLoader = options => Effect.gen(function* () {
|
|
|
69
69
|
function embed(input) {
|
|
70
70
|
return Effect.request(new EmbeddingRequest({
|
|
71
71
|
input
|
|
72
|
-
}), resolverDelayed).pipe(Effect.withSpan("
|
|
72
|
+
}), resolverDelayed).pipe(Effect.withSpan("AiEmbeddingModel.embed", {
|
|
73
73
|
captureStackTrace: false
|
|
74
74
|
}));
|
|
75
75
|
}
|
|
76
|
-
return
|
|
76
|
+
return AiEmbeddingModel.of({
|
|
77
77
|
embed
|
|
78
78
|
});
|
|
79
79
|
});
|
|
80
|
-
//# sourceMappingURL=
|
|
80
|
+
//# sourceMappingURL=AiEmbeddingModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiEmbeddingModel.js","names":["dataLoader","Context","Effect","identity","Option","Request","RequestResolver","Schema","AiError","AiEmbeddingModel","Tag","EmbeddingRequest","TaggedRequest","failure","success","mutable","Array","Number","payload","input","String","makeBatchedResolver","embedMany","makeBatched","requests","map","request","pipe","flatMap","forEach","embeddings","index","succeed","discard","catchAll","error","fail","make","options","gen","cache","fromNullable","config","makeCache","optionFromOptional","resolver","maxBatchSize","batchN","embed","match","onNone","onSome","withRequestCaching","withRequestCache","withSpan","captureStackTrace","of","makeDataLoader","resolverDelayed","window"],"sources":["../../src/AiEmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/AiError.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Predicate from "effect/Predicate";
|
|
4
5
|
import * as Schema from "effect/Schema";
|
|
5
6
|
/**
|
|
6
7
|
* @since 1.0.0
|
|
7
8
|
* @category type ids
|
|
8
9
|
*/
|
|
9
|
-
export const TypeId = /*#__PURE__*/Symbol("@effect/ai/AiError");
|
|
10
|
+
export const TypeId = /*#__PURE__*/Symbol.for("@effect/ai/AiError");
|
|
10
11
|
/**
|
|
11
12
|
* @since 1.0.0
|
|
12
13
|
* @category errors
|
|
@@ -17,6 +18,12 @@ export class AiError extends /*#__PURE__*/Schema.TaggedError("@effect/ai/AiError
|
|
|
17
18
|
description: Schema.String,
|
|
18
19
|
cause: /*#__PURE__*/Schema.optional(Schema.Defect)
|
|
19
20
|
}) {
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
*/
|
|
24
|
+
static is(u) {
|
|
25
|
+
return Predicate.hasProperty(u, TypeId);
|
|
26
|
+
}
|
|
20
27
|
/**
|
|
21
28
|
* @since 1.0.0
|
|
22
29
|
*/
|
package/dist/esm/AiError.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiError.js","names":["Schema","TypeId","Symbol","AiError","TaggedError","module","String","method","description","cause","optional","Defect","message"],"sources":["../../src/AiError.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AiError.js","names":["Predicate","Schema","TypeId","Symbol","for","AiError","TaggedError","module","String","method","description","cause","optional","Defect","is","u","hasProperty","message"],"sources":["../../src/AiError.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,oBAAoB,CAAC;AAQrE;;;;AAIA,OAAM,MAAOC,OAAQ,sBAAQJ,MAAM,CAACK,WAAW,CAAU,oBAAoB,CAAC,CAAC,SAAS,EAAE;EACxFC,MAAM,EAAEN,MAAM,CAACO,MAAM;EACrBC,MAAM,EAAER,MAAM,CAACO,MAAM;EACrBE,WAAW,EAAET,MAAM,CAACO,MAAM;EAC1BG,KAAK,eAAEV,MAAM,CAACW,QAAQ,CAACX,MAAM,CAACY,MAAM;CACrC,CAAC;EACA;;;EAGA,OAAOC,EAAEA,CAACC,CAAU;IAClB,OAAOf,SAAS,CAACgB,WAAW,CAACD,CAAC,EAAEb,MAAM,CAAC;EACzC;EACA;;;EAGS,CAACA,MAAM,IAAYA,MAAM;EAClC;;;EAGA,IAAIe,OAAOA,CAAA;IACT,OAAO,GAAG,IAAI,CAACV,MAAM,IAAI,IAAI,CAACE,MAAM,KAAK,IAAI,CAACC,WAAW,EAAE;EAC7D","ignoreList":[]}
|