@effect/ai 0.26.0 → 0.27.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/Chat/package.json +6 -0
- package/EmbeddingModel/package.json +6 -0
- package/IdGenerator/package.json +6 -0
- package/LanguageModel/package.json +6 -0
- package/Model/package.json +6 -0
- package/Prompt/package.json +6 -0
- package/Response/package.json +6 -0
- package/Telemetry/package.json +6 -0
- package/Tool/package.json +6 -0
- package/Toolkit/package.json +6 -0
- package/dist/cjs/AiError.js +575 -11
- package/dist/cjs/AiError.js.map +1 -1
- package/dist/cjs/Chat.js +302 -0
- package/dist/cjs/Chat.js.map +1 -0
- package/dist/cjs/EmbeddingModel.js +184 -0
- package/dist/cjs/EmbeddingModel.js.map +1 -0
- package/dist/cjs/IdGenerator.js +255 -0
- package/dist/cjs/IdGenerator.js.map +1 -0
- package/dist/cjs/LanguageModel.js +584 -0
- package/dist/cjs/LanguageModel.js.map +1 -0
- package/dist/cjs/McpServer.js +12 -4
- package/dist/cjs/McpServer.js.map +1 -1
- package/dist/cjs/Model.js +118 -0
- package/dist/cjs/Model.js.map +1 -0
- package/dist/cjs/Prompt.js +649 -0
- package/dist/cjs/Prompt.js.map +1 -0
- package/dist/cjs/Response.js +635 -0
- package/dist/cjs/Response.js.map +1 -0
- package/dist/cjs/Telemetry.js +176 -0
- package/dist/cjs/Telemetry.js.map +1 -0
- package/dist/cjs/Tokenizer.js +87 -8
- package/dist/cjs/Tokenizer.js.map +1 -1
- package/dist/cjs/Tool.js +556 -0
- package/dist/cjs/Tool.js.map +1 -0
- package/dist/cjs/Toolkit.js +279 -0
- package/dist/cjs/Toolkit.js.map +1 -0
- package/dist/cjs/index.js +21 -19
- package/dist/dts/AiError.d.ts +577 -9
- package/dist/dts/AiError.d.ts.map +1 -1
- package/dist/dts/Chat.d.ts +356 -0
- package/dist/dts/Chat.d.ts.map +1 -0
- package/dist/dts/EmbeddingModel.d.ts +153 -0
- package/dist/dts/EmbeddingModel.d.ts.map +1 -0
- package/dist/dts/IdGenerator.d.ts +272 -0
- package/dist/dts/IdGenerator.d.ts.map +1 -0
- package/dist/dts/LanguageModel.d.ts +458 -0
- package/dist/dts/LanguageModel.d.ts.map +1 -0
- package/dist/dts/McpSchema.d.ts +25 -25
- package/dist/dts/McpServer.d.ts +6 -4
- package/dist/dts/McpServer.d.ts.map +1 -1
- package/dist/dts/Model.d.ts +124 -0
- package/dist/dts/Model.d.ts.map +1 -0
- package/dist/dts/Prompt.d.ts +1119 -0
- package/dist/dts/Prompt.d.ts.map +1 -0
- package/dist/dts/Response.d.ts +1519 -0
- package/dist/dts/Response.d.ts.map +1 -0
- package/dist/dts/Telemetry.d.ts +520 -0
- package/dist/dts/Telemetry.d.ts.map +1 -0
- package/dist/dts/Tokenizer.d.ts +131 -13
- package/dist/dts/Tokenizer.d.ts.map +1 -1
- package/dist/dts/Tool.d.ts +876 -0
- package/dist/dts/Tool.d.ts.map +1 -0
- package/dist/dts/Toolkit.d.ts +310 -0
- package/dist/dts/Toolkit.d.ts.map +1 -0
- package/dist/dts/index.d.ts +498 -13
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/AiError.js +570 -10
- package/dist/esm/AiError.js.map +1 -1
- package/dist/esm/Chat.js +291 -0
- package/dist/esm/Chat.js.map +1 -0
- package/dist/esm/EmbeddingModel.js +173 -0
- package/dist/esm/EmbeddingModel.js.map +1 -0
- package/dist/esm/IdGenerator.js +245 -0
- package/dist/esm/IdGenerator.js.map +1 -0
- package/dist/esm/LanguageModel.js +572 -0
- package/dist/esm/LanguageModel.js.map +1 -0
- package/dist/esm/McpServer.js +12 -4
- package/dist/esm/McpServer.js.map +1 -1
- package/dist/esm/Model.js +108 -0
- package/dist/esm/Model.js.map +1 -0
- package/dist/esm/Prompt.js +633 -0
- package/dist/esm/Prompt.js.map +1 -0
- package/dist/esm/Response.js +619 -0
- package/dist/esm/Response.js.map +1 -0
- package/dist/esm/Telemetry.js +166 -0
- package/dist/esm/Telemetry.js.map +1 -0
- package/dist/esm/Tokenizer.js +87 -8
- package/dist/esm/Tokenizer.js.map +1 -1
- package/dist/esm/Tool.js +534 -0
- package/dist/esm/Tool.js.map +1 -0
- package/dist/esm/Toolkit.js +269 -0
- package/dist/esm/Toolkit.js.map +1 -0
- package/dist/esm/index.js +498 -13
- package/dist/esm/index.js.map +1 -1
- package/package.json +76 -68
- package/src/AiError.ts +739 -9
- package/src/Chat.ts +546 -0
- package/src/EmbeddingModel.ts +311 -0
- package/src/IdGenerator.ts +320 -0
- package/src/LanguageModel.ts +1074 -0
- package/src/McpServer.ts +337 -194
- package/src/Model.ts +155 -0
- package/src/Prompt.ts +1616 -0
- package/src/Response.ts +2131 -0
- package/src/Telemetry.ts +655 -0
- package/src/Tokenizer.ts +145 -24
- package/src/Tool.ts +1267 -0
- package/src/Toolkit.ts +516 -0
- package/src/index.ts +499 -13
- package/AiChat/package.json +0 -6
- package/AiEmbeddingModel/package.json +0 -6
- package/AiInput/package.json +0 -6
- package/AiLanguageModel/package.json +0 -6
- package/AiModel/package.json +0 -6
- package/AiResponse/package.json +0 -6
- package/AiTelemetry/package.json +0 -6
- package/AiTool/package.json +0 -6
- package/AiToolkit/package.json +0 -6
- package/dist/cjs/AiChat.js +0 -122
- package/dist/cjs/AiChat.js.map +0 -1
- package/dist/cjs/AiEmbeddingModel.js +0 -109
- package/dist/cjs/AiEmbeddingModel.js.map +0 -1
- package/dist/cjs/AiInput.js +0 -458
- package/dist/cjs/AiInput.js.map +0 -1
- package/dist/cjs/AiLanguageModel.js +0 -351
- package/dist/cjs/AiLanguageModel.js.map +0 -1
- package/dist/cjs/AiModel.js +0 -37
- package/dist/cjs/AiModel.js.map +0 -1
- package/dist/cjs/AiResponse.js +0 -681
- package/dist/cjs/AiResponse.js.map +0 -1
- package/dist/cjs/AiTelemetry.js +0 -58
- package/dist/cjs/AiTelemetry.js.map +0 -1
- package/dist/cjs/AiTool.js +0 -150
- package/dist/cjs/AiTool.js.map +0 -1
- package/dist/cjs/AiToolkit.js +0 -157
- package/dist/cjs/AiToolkit.js.map +0 -1
- package/dist/cjs/internal/common.js +0 -21
- package/dist/cjs/internal/common.js.map +0 -1
- package/dist/dts/AiChat.d.ts +0 -101
- package/dist/dts/AiChat.d.ts.map +0 -1
- package/dist/dts/AiEmbeddingModel.d.ts +0 -65
- package/dist/dts/AiEmbeddingModel.d.ts.map +0 -1
- package/dist/dts/AiInput.d.ts +0 -590
- package/dist/dts/AiInput.d.ts.map +0 -1
- package/dist/dts/AiLanguageModel.d.ts +0 -302
- package/dist/dts/AiLanguageModel.d.ts.map +0 -1
- package/dist/dts/AiModel.d.ts +0 -25
- package/dist/dts/AiModel.d.ts.map +0 -1
- package/dist/dts/AiResponse.d.ts +0 -863
- package/dist/dts/AiResponse.d.ts.map +0 -1
- package/dist/dts/AiTelemetry.d.ts +0 -242
- package/dist/dts/AiTelemetry.d.ts.map +0 -1
- package/dist/dts/AiTool.d.ts +0 -334
- package/dist/dts/AiTool.d.ts.map +0 -1
- package/dist/dts/AiToolkit.d.ts +0 -96
- package/dist/dts/AiToolkit.d.ts.map +0 -1
- package/dist/dts/internal/common.d.ts +0 -2
- package/dist/dts/internal/common.d.ts.map +0 -1
- package/dist/esm/AiChat.js +0 -111
- package/dist/esm/AiChat.js.map +0 -1
- package/dist/esm/AiEmbeddingModel.js +0 -98
- package/dist/esm/AiEmbeddingModel.js.map +0 -1
- package/dist/esm/AiInput.js +0 -433
- package/dist/esm/AiInput.js.map +0 -1
- package/dist/esm/AiLanguageModel.js +0 -340
- package/dist/esm/AiLanguageModel.js.map +0 -1
- package/dist/esm/AiModel.js +0 -29
- package/dist/esm/AiModel.js.map +0 -1
- package/dist/esm/AiResponse.js +0 -657
- package/dist/esm/AiResponse.js.map +0 -1
- package/dist/esm/AiTelemetry.js +0 -48
- package/dist/esm/AiTelemetry.js.map +0 -1
- package/dist/esm/AiTool.js +0 -134
- package/dist/esm/AiTool.js.map +0 -1
- package/dist/esm/AiToolkit.js +0 -147
- package/dist/esm/AiToolkit.js.map +0 -1
- package/dist/esm/internal/common.js +0 -14
- package/dist/esm/internal/common.js.map +0 -1
- package/src/AiChat.ts +0 -251
- package/src/AiEmbeddingModel.ts +0 -169
- package/src/AiInput.ts +0 -602
- package/src/AiLanguageModel.ts +0 -685
- package/src/AiModel.ts +0 -53
- package/src/AiResponse.ts +0 -986
- package/src/AiTelemetry.ts +0 -333
- package/src/AiTool.ts +0 -579
- package/src/AiToolkit.ts +0 -265
- package/src/internal/common.ts +0 -12
package/dist/dts/AiToolkit.d.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import * as Context from "effect/Context";
|
|
5
|
-
import * as Effect from "effect/Effect";
|
|
6
|
-
import type { Inspectable } from "effect/Inspectable";
|
|
7
|
-
import * as Layer from "effect/Layer";
|
|
8
|
-
import type { Pipeable } from "effect/Pipeable";
|
|
9
|
-
import type * as Scope from "effect/Scope";
|
|
10
|
-
import * as AiTool from "./AiTool.js";
|
|
11
|
-
/**
|
|
12
|
-
* @since 1.0.0
|
|
13
|
-
* @category Type Ids
|
|
14
|
-
*/
|
|
15
|
-
export declare const TypeId: unique symbol;
|
|
16
|
-
/**
|
|
17
|
-
* @since 1.0.0
|
|
18
|
-
* @category Type Ids
|
|
19
|
-
*/
|
|
20
|
-
export type TypeId = typeof TypeId;
|
|
21
|
-
/**
|
|
22
|
-
* An `AiToolkit` represents a set of tools that a large language model can
|
|
23
|
-
* use to augment its response.
|
|
24
|
-
*
|
|
25
|
-
* @since 1.0.0
|
|
26
|
-
* @category Models
|
|
27
|
-
*/
|
|
28
|
-
export interface AiToolkit<in out Tools extends AiTool.Any> extends Effect.Effect<ToHandler<Tools>, never, AiTool.ToHandler<Tools>>, Inspectable, Pipeable {
|
|
29
|
-
new (_: never): {};
|
|
30
|
-
readonly [TypeId]: TypeId;
|
|
31
|
-
/**
|
|
32
|
-
* A map containing the tools that are part of this toolkit.
|
|
33
|
-
*/
|
|
34
|
-
readonly tools: AiTool.ByName<Tools>;
|
|
35
|
-
/**
|
|
36
|
-
* Converts this toolkit into a `Context` object containing the handlers for
|
|
37
|
-
* all tools in the toolkit.
|
|
38
|
-
*/
|
|
39
|
-
toContext<Handlers extends HandlersFrom<Tools>, EX = never, RX = never>(build: Handlers | Effect.Effect<Handlers, EX, RX>): Effect.Effect<Context.Context<AiTool.ToHandler<Tools>>, EX, RX>;
|
|
40
|
-
/**
|
|
41
|
-
* Converts this toolkit into a `Layer` containing the handlers for all tools
|
|
42
|
-
* in the toolkit.
|
|
43
|
-
*/
|
|
44
|
-
toLayer<Handlers extends HandlersFrom<Tools>, EX = never, RX = never>(build: Handlers | Effect.Effect<Handlers, EX, RX>): Layer.Layer<AiTool.ToHandler<Tools>, EX, Exclude<RX, Scope.Scope>>;
|
|
45
|
-
of<Handlers extends HandlersFrom<Tools>>(handlers: Handlers): Handlers;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* @since 1.0.0
|
|
49
|
-
* @category Models
|
|
50
|
-
*/
|
|
51
|
-
export interface Any {
|
|
52
|
-
readonly [TypeId]: TypeId;
|
|
53
|
-
readonly tools: Record<string, AiTool.Any>;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Represents an `AiToolkit` which has been augmented with a handler function
|
|
57
|
-
* for resolving tool call requests.
|
|
58
|
-
*
|
|
59
|
-
* @since 1.0.0
|
|
60
|
-
* @category Models
|
|
61
|
-
*/
|
|
62
|
-
export interface ToHandler<in out Tool extends AiTool.Any> {
|
|
63
|
-
readonly tools: ReadonlyArray<Tool>;
|
|
64
|
-
readonly handle: (toolName: AiTool.Name<Tool>, toolParams: AiTool.Parameters<Tool>) => AiTool.HandlerEffect<Tool>;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* A utility mapped type which associates tool names with their handlers.
|
|
68
|
-
*
|
|
69
|
-
* @since 1.0.0
|
|
70
|
-
* @category Utility Types
|
|
71
|
-
*/
|
|
72
|
-
export type HandlersFrom<Tools extends AiTool.Any> = {
|
|
73
|
-
[Tool in Tools as Tool["name"]]: (params: AiTool.Parameters<Tool>) => AiTool.HandlerEffect<Tool>;
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* A utility type which returns the tools in an `AiToolkit`.
|
|
77
|
-
*
|
|
78
|
-
* @since 1.0.0
|
|
79
|
-
* @category Utility Types
|
|
80
|
-
*/
|
|
81
|
-
export type Tools<Toolkit> = Toolkit extends AiToolkit<infer Tool> ? string extends Tool["name"] ? never : Tool : never;
|
|
82
|
-
/**
|
|
83
|
-
* Constructs a new `AiToolkit` from the specified tools.
|
|
84
|
-
*
|
|
85
|
-
* @since 1.0.0
|
|
86
|
-
* @category Constructors
|
|
87
|
-
*/
|
|
88
|
-
export declare const make: <const Tools extends ReadonlyArray<AiTool.Any>>(...tools: Tools) => AiToolkit<Tools[number]>;
|
|
89
|
-
/**
|
|
90
|
-
* Merges this toolkit with one or more other toolkits.
|
|
91
|
-
*
|
|
92
|
-
* @since 1.0.0
|
|
93
|
-
* @category Merging
|
|
94
|
-
*/
|
|
95
|
-
export declare const merge: <const Toolkits extends ReadonlyArray<Any>>(...toolkits: Toolkits) => AiToolkit<Tools<Toolkits[number]>>;
|
|
96
|
-
//# sourceMappingURL=AiToolkit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AiToolkit.d.ts","sourceRoot":"","sources":["../../src/AiToolkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/internal/common.ts"],"names":[],"mappings":""}
|
package/dist/esm/AiChat.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import * as Channel from "effect/Channel";
|
|
5
|
-
import * as Context from "effect/Context";
|
|
6
|
-
import * as Effect from "effect/Effect";
|
|
7
|
-
import * as Ref from "effect/Ref";
|
|
8
|
-
import * as Schema from "effect/Schema";
|
|
9
|
-
import * as Stream from "effect/Stream";
|
|
10
|
-
import * as AiInput from "./AiInput.js";
|
|
11
|
-
import * as AiLanguageModel from "./AiLanguageModel.js";
|
|
12
|
-
import * as AiResponse from "./AiResponse.js";
|
|
13
|
-
/**
|
|
14
|
-
* @since 1.0.0
|
|
15
|
-
* @category Context
|
|
16
|
-
*/
|
|
17
|
-
export class AiChat extends /*#__PURE__*/Context.Tag("@effect/ai/AiChat")() {}
|
|
18
|
-
/**
|
|
19
|
-
* @since 1.0.0
|
|
20
|
-
* @category Constructors
|
|
21
|
-
*/
|
|
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));
|
|
28
|
-
const semaphore = yield* Effect.makeSemaphore(1);
|
|
29
|
-
const system = options.system;
|
|
30
|
-
return AiChat.of({
|
|
31
|
-
history,
|
|
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", {
|
|
47
|
-
captureStackTrace: false
|
|
48
|
-
}));
|
|
49
|
-
},
|
|
50
|
-
streamText(options) {
|
|
51
|
-
return Stream.suspend(() => {
|
|
52
|
-
let combined = AiResponse.empty;
|
|
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);
|
|
59
|
-
return chunk;
|
|
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", {
|
|
62
|
-
captureStackTrace: false
|
|
63
|
-
}));
|
|
64
|
-
},
|
|
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({
|
|
70
|
-
...options,
|
|
71
|
-
system,
|
|
72
|
-
prompt: input
|
|
73
|
-
}).pipe(Effect.flatMap(response => {
|
|
74
|
-
const modelInput = AiInput.make(response);
|
|
75
|
-
return Effect.as(Ref.set(history, AiInput.concat(input, modelInput)), response);
|
|
76
|
-
}));
|
|
77
|
-
}), provideContext, semaphore.withPermits(1), Effect.withSpan("AiChat.generateObject", {
|
|
78
|
-
attributes: {
|
|
79
|
-
toolCallId: "toolCallId" in options ? options.toolCallId : "_tag" in options.schema ? options.schema._tag : options.schema.identifier ?? "generateObject"
|
|
80
|
-
},
|
|
81
|
-
captureStackTrace: false
|
|
82
|
-
}));
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
/**
|
|
87
|
-
* @since 1.0.0
|
|
88
|
-
* @category Constructors
|
|
89
|
-
*/
|
|
90
|
-
export const empty = /*#__PURE__*/fromPrompt({
|
|
91
|
-
prompt: []
|
|
92
|
-
});
|
|
93
|
-
const decodeUnknown = /*#__PURE__*/Schema.decodeUnknown(AiInput.AiInput);
|
|
94
|
-
/**
|
|
95
|
-
* @since 1.0.0
|
|
96
|
-
* @category Constructors
|
|
97
|
-
*/
|
|
98
|
-
export const fromExport = (data, options) => Effect.flatMap(decodeUnknown(data), prompt => fromPrompt({
|
|
99
|
-
...options,
|
|
100
|
-
prompt
|
|
101
|
-
}));
|
|
102
|
-
const decodeJson = /*#__PURE__*/Schema.decode(AiInput.FromJson);
|
|
103
|
-
/**
|
|
104
|
-
* @since 1.0.0
|
|
105
|
-
* @category Constructors
|
|
106
|
-
*/
|
|
107
|
-
export const fromJson = (data, options) => Effect.flatMap(decodeJson(data), prompt => fromPrompt({
|
|
108
|
-
...options,
|
|
109
|
-
prompt
|
|
110
|
-
}));
|
|
111
|
-
//# sourceMappingURL=AiChat.js.map
|
package/dist/esm/AiChat.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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","export","get","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":"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","ignoreList":[]}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import { dataLoader } from "@effect/experimental/RequestResolver";
|
|
5
|
-
import * as Context from "effect/Context";
|
|
6
|
-
import * as Effect from "effect/Effect";
|
|
7
|
-
import { identity } from "effect/Function";
|
|
8
|
-
import * as Option from "effect/Option";
|
|
9
|
-
import * as Request from "effect/Request";
|
|
10
|
-
import * as RequestResolver from "effect/RequestResolver";
|
|
11
|
-
import * as Schema from "effect/Schema";
|
|
12
|
-
import { AiError } from "./AiError.js";
|
|
13
|
-
/**
|
|
14
|
-
* @since 1.0.0
|
|
15
|
-
* @category Context
|
|
16
|
-
*/
|
|
17
|
-
export class AiEmbeddingModel extends /*#__PURE__*/Context.Tag("@effect/ai/AiEmbeddingModel")() {}
|
|
18
|
-
class EmbeddingRequest extends /*#__PURE__*/Schema.TaggedRequest("@effect/ai/AiEmbeddingModel/Request")("EmbeddingRequest", {
|
|
19
|
-
failure: AiError,
|
|
20
|
-
success: /*#__PURE__*/Schema.mutable(/*#__PURE__*/Schema.Array(Schema.Number)),
|
|
21
|
-
payload: {
|
|
22
|
-
input: Schema.String
|
|
23
|
-
}
|
|
24
|
-
}) {}
|
|
25
|
-
const makeBatchedResolver = embedMany => RequestResolver.makeBatched(requests => embedMany(requests.map(request => request.input)).pipe(Effect.flatMap(Effect.forEach(({
|
|
26
|
-
embeddings,
|
|
27
|
-
index
|
|
28
|
-
}) => Request.succeed(requests[index], embeddings), {
|
|
29
|
-
discard: true
|
|
30
|
-
})), Effect.catchAll(error => Effect.forEach(requests, request => Request.fail(request, error), {
|
|
31
|
-
discard: true
|
|
32
|
-
}))));
|
|
33
|
-
/**
|
|
34
|
-
* @since 1.0.0
|
|
35
|
-
* @category Constructors
|
|
36
|
-
*/
|
|
37
|
-
export const make = options => Effect.gen(function* () {
|
|
38
|
-
const cache = yield* Option.fromNullable(options.cache).pipe(Effect.flatMap(config => Request.makeCache(config)), Effect.optionFromOptional);
|
|
39
|
-
const resolver = makeBatchedResolver(options.embedMany).pipe(options.maxBatchSize ? RequestResolver.batchN(options.maxBatchSize) : identity);
|
|
40
|
-
function embed(input) {
|
|
41
|
-
const request = Effect.request(new EmbeddingRequest({
|
|
42
|
-
input
|
|
43
|
-
}), resolver);
|
|
44
|
-
return Option.match(cache, {
|
|
45
|
-
onNone: () => request,
|
|
46
|
-
onSome: cache => request.pipe(Effect.withRequestCaching(true), Effect.withRequestCache(cache))
|
|
47
|
-
}).pipe(Effect.withSpan("AiEmbeddingModel.embed", {
|
|
48
|
-
captureStackTrace: false
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
function embedMany(inputs, options) {
|
|
52
|
-
return Effect.forEach(inputs, embed, {
|
|
53
|
-
batching: true,
|
|
54
|
-
concurrency: options?.concurrency
|
|
55
|
-
}).pipe(Effect.withSpan("AiEmbeddingModel.embedMany", {
|
|
56
|
-
captureStackTrace: false
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
return AiEmbeddingModel.of({
|
|
60
|
-
embed,
|
|
61
|
-
embedMany
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
/**
|
|
65
|
-
* Creates an `Embeddings` service which will aggregate all `embed` requests
|
|
66
|
-
* received during the specified `window` (up to a maximum of `maxBatchSize`
|
|
67
|
-
* requests, if specified) and execute them as a single batch.
|
|
68
|
-
*
|
|
69
|
-
* @since 1.0.0
|
|
70
|
-
* @category Constructors
|
|
71
|
-
*/
|
|
72
|
-
export const makeDataLoader = options => Effect.gen(function* () {
|
|
73
|
-
const resolver = makeBatchedResolver(options.embedMany);
|
|
74
|
-
const resolverDelayed = yield* dataLoader(resolver, {
|
|
75
|
-
window: options.window,
|
|
76
|
-
maxBatchSize: options.maxBatchSize
|
|
77
|
-
});
|
|
78
|
-
function embed(input) {
|
|
79
|
-
return Effect.request(new EmbeddingRequest({
|
|
80
|
-
input
|
|
81
|
-
}), resolverDelayed).pipe(Effect.withSpan("AiEmbeddingModel.embed", {
|
|
82
|
-
captureStackTrace: false
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
function embedMany(inputs, options) {
|
|
86
|
-
return Effect.forEach(inputs, embed, {
|
|
87
|
-
batching: true,
|
|
88
|
-
concurrency: options?.concurrency
|
|
89
|
-
}).pipe(Effect.withSpan("AiEmbeddingModel.embedMany", {
|
|
90
|
-
captureStackTrace: false
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
return AiEmbeddingModel.of({
|
|
94
|
-
embed,
|
|
95
|
-
embedMany
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
//# sourceMappingURL=AiEmbeddingModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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","inputs","batching","concurrency","of","makeDataLoader","resolverDelayed","window"],"sources":["../../src/AiEmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|