@effect/ai 0.14.0 → 0.15.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/AiInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiInput.js","names":["FileSystem","Path","Chunk","Context","Effect","Encoding","dual","Option","ParseResult","Predicate","Schema_","AiResponse","ToolCallId","WithResolved","AiRole","constDisableValidation","disableValidation","PartTypeId","Symbol","TextPart","TaggedClass","content","String","fromContent","ImageQuality","Literal","ImageUrlPart","url","quality","pipe","propertySignature","withConstructorDefault","base64ContentTypeRegex","Base64DataUrl","transformOrFail","annotations","title","description","Struct","data","Uint8ArrayFromSelf","contentType","decode","base64Url","_","ast","commaIndex","indexOf","fail","Type","header","slice","exec","decodeBase64","mapError","map","encode","base64","encodeBase64","succeed","ImagePart","image","fromPath","path","bindTo","bind","fs","readFile","ext","extname","startsWith","fromBlob","blob","promise","arrayBuffer","buffer","type","Uint8Array","asBase64","asDataUri","ToolCallPart","id","name","params","Unknown","ToolCallResolvedPart","toolCallId","value","isPart","u","hasProperty","Part","Union","MessageTypeId","Message","Class","role","parts","is","fromInput","input","user","of","fromIterable","fromResponse","response","isEmpty","none","some","part","_tag","fromWithResolved","toolParts","encoded","push","toolPartsChunk","unsafeFromArray","match","onNone","model","onSome","message","appendAll","make","options","isIterable","chunk","unsafeHead","empty","Schema","SchemaJson","parseJson","SystemInstruction","Tag","provideSystem","effect","provideService"],"sources":["../../src/AiInput.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AiInput.js","names":["dual","Predicate","Schema","AiResponse","InternalCommon","TypeId","Symbol","for","AiInput","Class","messages","Array","suspend","Message","FromJson","parseJson","MessageTypeId","UserMessage","TaggedClass","parts","UserMessagePart","userName","optional","String","AssistantMessage","AssistantMessagePart","ToolMessage","ToolMessagePart","Union","PartTypeId","TextPart","text","ImagePart","data","Uint8ArrayFromBase64","mediaType","ImageUrlPart","url","URL","FilePart","name","FileUrlPart","ReasoningPart","reasoningText","signature","RedactedReasoningPart","redactedText","ToolCallId","ToolCallPart","id","params","Unknown","constructor","props","options","ToolCallResultPart","result","is","u","hasProperty","isMessage","isPart","empty","make","input","isString","textPart","message","isIterable","from","isStructured","assistantMessages","fromResponse","toolPart","value","toolMessage","hasToolCallResults","toolParts","encodedResults","push","EXCLUDED_RESPONSE_PARTS","validResponseParts","part","includes","_tag","response","length","filter","map","concat","self","other"],"sources":["../../src/AiInput.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Context from "effect/Context";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
|
+
import * as JsonSchema from "effect/JSONSchema";
|
|
7
|
+
import * as Option from "effect/Option";
|
|
8
|
+
import * as Predicate from "effect/Predicate";
|
|
9
|
+
import * as Schema from "effect/Schema";
|
|
10
|
+
import * as AST from "effect/SchemaAST";
|
|
11
|
+
import * as Stream from "effect/Stream";
|
|
12
|
+
import { AiError } from "./AiError.js";
|
|
13
|
+
import * as AiInput from "./AiInput.js";
|
|
14
|
+
import * as AiResponse from "./AiResponse.js";
|
|
15
|
+
import { CurrentSpanTransformer } from "./AiTelemetry.js";
|
|
16
|
+
const constDisableValidation = {
|
|
17
|
+
disableValidation: true
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category Context
|
|
22
|
+
*/
|
|
23
|
+
export class AiLanguageModel extends /*#__PURE__*/Context.Tag("@effect/ai/AiLanguageModel")() {}
|
|
24
|
+
const constEmptyMap = /*#__PURE__*/new Map();
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category Constructors
|
|
28
|
+
*/
|
|
29
|
+
export const make = /*#__PURE__*/Effect.fnUntraced(function* (opts) {
|
|
30
|
+
const parentSpanTransformer = yield* Effect.serviceOption(CurrentSpanTransformer);
|
|
31
|
+
const getSpanTransformer = Effect.serviceOption(CurrentSpanTransformer).pipe(Effect.map(Option.orElse(() => parentSpanTransformer)));
|
|
32
|
+
const generateText = ({
|
|
33
|
+
concurrency,
|
|
34
|
+
toolChoice = "auto",
|
|
35
|
+
toolkit,
|
|
36
|
+
...options
|
|
37
|
+
}) => Effect.useSpan("AiLanguageModel.generateText", {
|
|
38
|
+
captureStackTrace: false,
|
|
39
|
+
attributes: {
|
|
40
|
+
concurrency,
|
|
41
|
+
toolChoice
|
|
42
|
+
}
|
|
43
|
+
}, Effect.fnUntraced(function* (span) {
|
|
44
|
+
const prompt = AiInput.make(options.prompt);
|
|
45
|
+
const system = Option.fromNullable(options.system);
|
|
46
|
+
const spanTransformer = yield* getSpanTransformer;
|
|
47
|
+
const modelOptions = {
|
|
48
|
+
prompt,
|
|
49
|
+
system,
|
|
50
|
+
tools: [],
|
|
51
|
+
toolChoice: "none",
|
|
52
|
+
span
|
|
53
|
+
};
|
|
54
|
+
if (Predicate.isUndefined(toolkit)) {
|
|
55
|
+
const response = yield* opts.generateText(modelOptions);
|
|
56
|
+
if (Option.isSome(spanTransformer)) {
|
|
57
|
+
spanTransformer.value({
|
|
58
|
+
...modelOptions,
|
|
59
|
+
response
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return response;
|
|
63
|
+
}
|
|
64
|
+
modelOptions.toolChoice = toolChoice;
|
|
65
|
+
const actualToolkit = Effect.isEffect(toolkit) ? yield* toolkit : toolkit;
|
|
66
|
+
for (const tool of actualToolkit.tools) {
|
|
67
|
+
modelOptions.tools.push(convertTool(tool));
|
|
68
|
+
}
|
|
69
|
+
const response = yield* opts.generateText(modelOptions);
|
|
70
|
+
if (Option.isSome(spanTransformer)) {
|
|
71
|
+
spanTransformer.value({
|
|
72
|
+
...modelOptions,
|
|
73
|
+
response
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return yield* resolveParts({
|
|
77
|
+
response,
|
|
78
|
+
toolkit: actualToolkit,
|
|
79
|
+
concurrency,
|
|
80
|
+
method: "generateText"
|
|
81
|
+
});
|
|
82
|
+
}, (effect, span) => Effect.withParentSpan(effect, span)));
|
|
83
|
+
const streamText = Effect.fnUntraced(function* ({
|
|
84
|
+
concurrency,
|
|
85
|
+
toolChoice = "auto",
|
|
86
|
+
toolkit,
|
|
87
|
+
...options
|
|
88
|
+
}) {
|
|
89
|
+
const span = yield* Effect.makeSpanScoped("AiLanguageModel.streamText", {
|
|
90
|
+
captureStackTrace: false,
|
|
91
|
+
attributes: {
|
|
92
|
+
concurrency,
|
|
93
|
+
toolChoice
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
const prompt = AiInput.make(options.prompt);
|
|
97
|
+
const system = Option.fromNullable(options.system);
|
|
98
|
+
const modelOptions = {
|
|
99
|
+
prompt,
|
|
100
|
+
system,
|
|
101
|
+
tools: [],
|
|
102
|
+
toolChoice: "none",
|
|
103
|
+
span
|
|
104
|
+
};
|
|
105
|
+
if (Predicate.isUndefined(toolkit)) {
|
|
106
|
+
return [opts.streamText(modelOptions), modelOptions];
|
|
107
|
+
}
|
|
108
|
+
modelOptions.toolChoice = toolChoice;
|
|
109
|
+
const actualToolkit = Effect.isEffect(toolkit) ? yield* toolkit : toolkit;
|
|
110
|
+
for (const tool of actualToolkit.tools) {
|
|
111
|
+
modelOptions.tools.push(convertTool(tool));
|
|
112
|
+
}
|
|
113
|
+
return [opts.streamText(modelOptions).pipe(Stream.mapEffect(response => resolveParts({
|
|
114
|
+
response,
|
|
115
|
+
toolkit: actualToolkit,
|
|
116
|
+
concurrency,
|
|
117
|
+
method: "streamText"
|
|
118
|
+
}), {
|
|
119
|
+
concurrency: "unbounded"
|
|
120
|
+
})), modelOptions];
|
|
121
|
+
}, Effect.flatMap(Effect.fnUntraced(function* ([stream, options]) {
|
|
122
|
+
const spanTransformer = yield* getSpanTransformer;
|
|
123
|
+
if (Option.isNone(spanTransformer)) {
|
|
124
|
+
return stream;
|
|
125
|
+
}
|
|
126
|
+
let lastResponse;
|
|
127
|
+
return stream.pipe(Stream.map(response => {
|
|
128
|
+
lastResponse = response;
|
|
129
|
+
return response;
|
|
130
|
+
}), Stream.ensuring(Effect.sync(() => {
|
|
131
|
+
spanTransformer.value({
|
|
132
|
+
...options,
|
|
133
|
+
response: lastResponse
|
|
134
|
+
});
|
|
135
|
+
})));
|
|
136
|
+
})), Stream.unwrapScoped);
|
|
137
|
+
const generateObject = options => {
|
|
138
|
+
const toolCallId = options.toolCallId ? options.toolCallId : "_tag" in options.schema ? options.schema._tag : "identifier" in options.schema ? options.schema.identifier : "generateObject";
|
|
139
|
+
return Effect.useSpan("AiLanguageModel.generateObject", {
|
|
140
|
+
captureStackTrace: false,
|
|
141
|
+
attributes: {
|
|
142
|
+
toolCallId
|
|
143
|
+
}
|
|
144
|
+
}, Effect.fnUntraced(function* (span) {
|
|
145
|
+
const prompt = AiInput.make(options.prompt);
|
|
146
|
+
const system = Option.fromNullable(options.system);
|
|
147
|
+
const spanTransformer = yield* getSpanTransformer;
|
|
148
|
+
const decode = Schema.decodeUnknown(options.schema);
|
|
149
|
+
const tool = convertStructured(toolCallId, options.schema);
|
|
150
|
+
const toolChoice = {
|
|
151
|
+
tool: tool.name
|
|
152
|
+
};
|
|
153
|
+
const modelOptions = {
|
|
154
|
+
prompt,
|
|
155
|
+
system,
|
|
156
|
+
tools: [tool],
|
|
157
|
+
toolChoice,
|
|
158
|
+
span
|
|
159
|
+
};
|
|
160
|
+
const response = yield* opts.generateText(modelOptions);
|
|
161
|
+
if (Option.isSome(spanTransformer)) {
|
|
162
|
+
spanTransformer.value({
|
|
163
|
+
...modelOptions,
|
|
164
|
+
response
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
const toolCallPart = response.parts.find(part => part._tag === "ToolCallPart" && part.name === toolCallId);
|
|
168
|
+
if (Predicate.isUndefined(toolCallPart)) {
|
|
169
|
+
return yield* new AiError({
|
|
170
|
+
module: "AiLanguageModel",
|
|
171
|
+
method: "generateObject",
|
|
172
|
+
description: `Tool call '${toolCallId}' not found in model response`
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return yield* Effect.matchEffect(decode(toolCallPart.params), {
|
|
176
|
+
onFailure: cause => new AiError({
|
|
177
|
+
module: "AiLanguageModel",
|
|
178
|
+
method: "generateObject",
|
|
179
|
+
description: `Failed to decode tool call '${toolCallId}' parameters`,
|
|
180
|
+
cause
|
|
181
|
+
}),
|
|
182
|
+
onSuccess: output => Effect.succeed(new AiResponse.WithStructuredOutput({
|
|
183
|
+
parts: response.parts,
|
|
184
|
+
id: toolCallPart.id,
|
|
185
|
+
name: toolCallPart.name,
|
|
186
|
+
value: output
|
|
187
|
+
}, constDisableValidation))
|
|
188
|
+
});
|
|
189
|
+
}, (effect, span) => Effect.withParentSpan(effect, span)));
|
|
190
|
+
};
|
|
191
|
+
return AiLanguageModel.of({
|
|
192
|
+
generateText,
|
|
193
|
+
streamText,
|
|
194
|
+
generateObject
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
const convertTool = tool => ({
|
|
198
|
+
name: tool.name,
|
|
199
|
+
description: tool.description ?? getDescription(tool.parametersSchema.ast),
|
|
200
|
+
parameters: makeJsonSchema(tool.parametersSchema.ast),
|
|
201
|
+
structured: false
|
|
202
|
+
});
|
|
203
|
+
const convertStructured = (name, schema) => ({
|
|
204
|
+
name,
|
|
205
|
+
description: getDescription(schema.ast),
|
|
206
|
+
parameters: makeJsonSchema(schema.ast),
|
|
207
|
+
structured: true
|
|
208
|
+
});
|
|
209
|
+
const makeJsonSchema = ast => {
|
|
210
|
+
const $defs = {};
|
|
211
|
+
const schema = JsonSchema.fromAST(ast, {
|
|
212
|
+
definitions: $defs,
|
|
213
|
+
topLevelReferenceStrategy: "skip"
|
|
214
|
+
});
|
|
215
|
+
if (Object.keys($defs).length === 0) return schema;
|
|
216
|
+
schema.$defs = $defs;
|
|
217
|
+
return schema;
|
|
218
|
+
};
|
|
219
|
+
const getDescription = ast => {
|
|
220
|
+
const annotations = ast._tag === "Transformation" ? {
|
|
221
|
+
...ast.to.annotations,
|
|
222
|
+
...ast.annotations
|
|
223
|
+
} : ast.annotations;
|
|
224
|
+
return AST.DescriptionAnnotationId in annotations ? annotations[AST.DescriptionAnnotationId] : "";
|
|
225
|
+
};
|
|
226
|
+
const resolveParts = options => Effect.gen(function* () {
|
|
227
|
+
const toolNames = [];
|
|
228
|
+
const toolParts = options.response.parts.filter(part => {
|
|
229
|
+
if (part._tag === "ToolCallPart") {
|
|
230
|
+
toolNames.push(part.name);
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
return false;
|
|
234
|
+
});
|
|
235
|
+
if (toolParts.length === 0) {
|
|
236
|
+
return new AiResponse.WithToolCallResults({
|
|
237
|
+
parts: options.response.parts,
|
|
238
|
+
results: constEmptyMap,
|
|
239
|
+
encodedResults: constEmptyMap
|
|
240
|
+
}, constDisableValidation);
|
|
241
|
+
}
|
|
242
|
+
yield* Effect.annotateCurrentSpan("toolCalls", toolNames);
|
|
243
|
+
const results = new Map();
|
|
244
|
+
const encodedResults = new Map();
|
|
245
|
+
yield* Effect.forEach(toolParts, part => {
|
|
246
|
+
const id = part.id;
|
|
247
|
+
const name = part.name;
|
|
248
|
+
const params = part.params;
|
|
249
|
+
const toolCall = options.toolkit.handle(name, params);
|
|
250
|
+
return Effect.map(toolCall, ({
|
|
251
|
+
encodedResult,
|
|
252
|
+
result
|
|
253
|
+
}) => {
|
|
254
|
+
results.set(id, result);
|
|
255
|
+
encodedResults.set(id, encodedResult);
|
|
256
|
+
});
|
|
257
|
+
}, {
|
|
258
|
+
concurrency: options.concurrency,
|
|
259
|
+
discard: true
|
|
260
|
+
});
|
|
261
|
+
return new AiResponse.WithToolCallResults({
|
|
262
|
+
parts: options.response.parts,
|
|
263
|
+
results,
|
|
264
|
+
encodedResults
|
|
265
|
+
}, constDisableValidation);
|
|
266
|
+
});
|
|
267
|
+
/**
|
|
268
|
+
* Generate text using a large language model for the specified `prompt`.
|
|
269
|
+
*
|
|
270
|
+
* If a `toolkit` is specified, the large language model will additionally
|
|
271
|
+
* be able to perform tool calls to augment its response.
|
|
272
|
+
*
|
|
273
|
+
* @since 1.0.0
|
|
274
|
+
* @category Functions
|
|
275
|
+
*/
|
|
276
|
+
export const generateText = /*#__PURE__*/Effect.serviceFunctionEffect(AiLanguageModel, _ => _.generateText);
|
|
277
|
+
/**
|
|
278
|
+
* Generate a structured object for the specified prompt and schema using a
|
|
279
|
+
* large language model.
|
|
280
|
+
*
|
|
281
|
+
* When using a `Schema` that does not have an `identifier` or `_tag`
|
|
282
|
+
* property, you must specify a `toolCallId` to properly associate the
|
|
283
|
+
* output of the model.
|
|
284
|
+
*
|
|
285
|
+
* @since 1.0.0
|
|
286
|
+
* @category Functions
|
|
287
|
+
*/
|
|
288
|
+
export const generateObject = /*#__PURE__*/Effect.serviceFunctionEffect(AiLanguageModel, _ => _.generateObject);
|
|
289
|
+
/**
|
|
290
|
+
* Generate text using a large language model for the specified `prompt`,
|
|
291
|
+
* streaming output from the model as soon as it is available.
|
|
292
|
+
*
|
|
293
|
+
* If a `toolkit` is specified, the large language model will additionally
|
|
294
|
+
* be able to perform tool calls to augment its response.
|
|
295
|
+
*
|
|
296
|
+
* @since 1.0.0
|
|
297
|
+
* @category Functions
|
|
298
|
+
*/
|
|
299
|
+
export const streamText = options => Stream.unwrap(AiLanguageModel.pipe(Effect.map(_ => _.streamText(options))));
|
|
300
|
+
//# sourceMappingURL=AiLanguageModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiLanguageModel.js","names":["Context","Effect","JsonSchema","Option","Predicate","Schema","AST","Stream","AiError","AiInput","AiResponse","CurrentSpanTransformer","constDisableValidation","disableValidation","AiLanguageModel","Tag","constEmptyMap","Map","make","fnUntraced","opts","parentSpanTransformer","serviceOption","getSpanTransformer","pipe","map","orElse","generateText","concurrency","toolChoice","toolkit","options","useSpan","captureStackTrace","attributes","span","prompt","system","fromNullable","spanTransformer","modelOptions","tools","isUndefined","response","isSome","value","actualToolkit","isEffect","tool","push","convertTool","resolveParts","method","effect","withParentSpan","streamText","makeSpanScoped","mapEffect","flatMap","stream","isNone","lastResponse","ensuring","sync","unwrapScoped","generateObject","toolCallId","schema","_tag","identifier","decode","decodeUnknown","convertStructured","name","toolCallPart","parts","find","part","module","description","matchEffect","params","onFailure","cause","onSuccess","output","succeed","WithStructuredOutput","id","of","getDescription","parametersSchema","ast","parameters","makeJsonSchema","structured","$defs","fromAST","definitions","topLevelReferenceStrategy","Object","keys","length","annotations","to","DescriptionAnnotationId","gen","toolNames","toolParts","filter","WithToolCallResults","results","encodedResults","annotateCurrentSpan","forEach","toolCall","handle","encodedResult","result","set","discard","serviceFunctionEffect","_","unwrap"],"sources":["../../src/AiLanguageModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/AiModel.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as GlobalValue from "effect/GlobalValue";
|
|
1
3
|
import * as Option from "effect/Option";
|
|
4
|
+
import * as Predicate from "effect/Predicate";
|
|
2
5
|
import * as InternalAiPlan from "./internal/aiPlan.js";
|
|
3
6
|
/**
|
|
4
7
|
* @since 1.0.0
|
|
@@ -14,17 +17,20 @@ const AiModelProto = {
|
|
|
14
17
|
...InternalAiPlan.PlanPrototype,
|
|
15
18
|
[TypeId]: TypeId
|
|
16
19
|
};
|
|
20
|
+
const contextCache = /*#__PURE__*/GlobalValue.globalValue("@effect/ai/AiModel/CachedContexts", () => new Map());
|
|
17
21
|
/**
|
|
18
22
|
* @since 1.0.0
|
|
19
23
|
* @category constructors
|
|
20
24
|
*/
|
|
21
25
|
export const make = options => {
|
|
22
26
|
const self = Object.create(AiModelProto);
|
|
23
|
-
self.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
self.buildContext = Effect.gen(function* () {
|
|
28
|
+
let context = contextCache.get(options.cacheKey);
|
|
29
|
+
if (Predicate.isUndefined(context)) {
|
|
30
|
+
context = yield* options.cachedContext;
|
|
31
|
+
}
|
|
32
|
+
return yield* options.updateRequestContext(context);
|
|
33
|
+
});
|
|
28
34
|
self.steps = [{
|
|
29
35
|
model: self,
|
|
30
36
|
check: Option.none(),
|
package/dist/esm/AiModel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiModel.js","names":["Option","InternalAiPlan","TypeId","Symbol","for","PlanTypeId","AiModelProto","PlanPrototype","make","options","self","Object","create","
|
|
1
|
+
{"version":3,"file":"AiModel.js","names":["Effect","GlobalValue","Option","Predicate","InternalAiPlan","TypeId","Symbol","for","PlanTypeId","AiModelProto","PlanPrototype","contextCache","globalValue","Map","make","options","self","Object","create","buildContext","gen","context","get","cacheKey","isUndefined","cachedContext","updateRequestContext","steps","model","check","none","schedule"],"sources":["../../src/AiModel.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AACjD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAG7C,OAAO,KAAKC,cAAc,MAAM,sBAAsB;AAEtD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,oBAAoB,CAAC;AAQrE;;;;AAIA,OAAO,MAAMC,UAAU,gBAAkBF,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;AA2BtE,MAAME,YAAY,GAAG;EACnB,GAAGL,cAAc,CAACM,aAAa;EAC/B,CAACL,MAAM,GAAGA;CACX;AAED,MAAMM,YAAY,gBAAGV,WAAW,CAACW,WAAW,CAC1C,mCAAmC,EACnC,MAAM,IAAIC,GAAG,EAAe,CAC7B;AAED;;;;AAIA,OAAO,MAAMC,IAAI,GAA4DC,OAwB5E,IAAuE;EACtE,MAAMC,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACT,YAAY,CAAC;EACxCO,IAAI,CAACG,YAAY,GAAGnB,MAAM,CAACoB,GAAG,CAAC,aAAS;IACtC,IAAIC,OAAO,GAAGV,YAAY,CAACW,GAAG,CAACP,OAAO,CAACQ,QAAQ,CAAC;IAChD,IAAIpB,SAAS,CAACqB,WAAW,CAACH,OAAO,CAAC,EAAE;MAClCA,OAAO,GAAG,OAAON,OAAO,CAACU,aAAa;IACxC;IACA,OAAO,OAAOV,OAAO,CAACW,oBAAoB,CAACL,OAAO,CAAC;EACrD,CAAC,CAAC;EACFL,IAAI,CAACW,KAAK,GAAG,CAAC;IACZC,KAAK,EAAEZ,IAAI;IACXa,KAAK,EAAE3B,MAAM,CAAC4B,IAAI,EAAE;IACpBC,QAAQ,EAAE7B,MAAM,CAAC4B,IAAI;GACtB,CAAC;EACF,OAAOd,IAAI;AACb,CAAC","ignoreList":[]}
|
package/dist/esm/AiPlan.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import * as Internal from "./internal/aiPlan.js";
|
|
2
2
|
/**
|
|
3
3
|
* @since 1.0.0
|
|
4
|
-
* @category
|
|
4
|
+
* @category Type Ids
|
|
5
5
|
*/
|
|
6
6
|
export const TypeId = Internal.TypeId;
|
|
7
7
|
/**
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @category constructors
|
|
10
10
|
*/
|
|
11
|
-
export const
|
|
11
|
+
export const make = function () {
|
|
12
|
+
let plan = Internal.make(arguments[0]);
|
|
13
|
+
for (let i = 1; i < arguments.length; i++) {
|
|
14
|
+
plan = withFallback(plan, arguments[i]);
|
|
15
|
+
}
|
|
16
|
+
return plan;
|
|
17
|
+
};
|
|
12
18
|
/**
|
|
13
19
|
* @since 1.0.0
|
|
14
20
|
* @category error handling
|
package/dist/esm/AiPlan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiPlan.js","names":["Internal","TypeId","
|
|
1
|
+
{"version":3,"file":"AiPlan.js","names":["Internal","TypeId","make","plan","arguments","i","length","withFallback","concatSteps"],"sources":["../../src/AiPlan.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AA0IpD;;;;AAIA,OAAO,MAAMC,IAAI,GAEa,SAAAA,CAAA;EAC5B,IAAIC,IAAI,GAAGH,QAAQ,CAACE,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,CAAC;EACtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,SAAS,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACzCF,IAAI,GAAGI,YAAY,CAACJ,IAAI,EAAEC,SAAS,CAACC,CAAC,CAAC,CAAC;EACzC;EACA,OAAOF,IAAI;AACb,CAAS;AAET;;;;AAIA,OAAO,MAAMI,YAAY,GA4BrBP,QAAQ,CAACO,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,WAAW,GAgBpBR,QAAQ,CAACQ,WAAW","ignoreList":[]}
|