@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/src/AiTelemetry.ts
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import * as Context from "effect/Context"
|
|
5
|
-
import { dual } from "effect/Function"
|
|
6
|
-
import * as Predicate from "effect/Predicate"
|
|
7
|
-
import * as String from "effect/String"
|
|
8
|
-
import type { Span } from "effect/Tracer"
|
|
9
|
-
import type { Simplify } from "effect/Types"
|
|
10
|
-
import type { AiLanguageModelOptions } from "./AiLanguageModel.js"
|
|
11
|
-
import type { AiResponse } from "./AiResponse.js"
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* The attributes used to describe telemetry in the context of Generative
|
|
15
|
-
* Artificial Intelligence (GenAI) Models requests and responses.
|
|
16
|
-
*
|
|
17
|
-
* {@see https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/}
|
|
18
|
-
*
|
|
19
|
-
* @since 1.0.0
|
|
20
|
-
* @category Models
|
|
21
|
-
*/
|
|
22
|
-
export type GenAITelemetryAttributes = Simplify<
|
|
23
|
-
& AttributesWithPrefix<BaseAttributes, "gen_ai">
|
|
24
|
-
& AttributesWithPrefix<OperationAttributes, "gen_ai.operation">
|
|
25
|
-
& AttributesWithPrefix<TokenAttributes, "gen_ai.token">
|
|
26
|
-
& AttributesWithPrefix<UsageAttributes, "gen_ai.usage">
|
|
27
|
-
& AttributesWithPrefix<RequestAttributes, "gen_ai.request">
|
|
28
|
-
& AttributesWithPrefix<ResponseAttributes, "gen_ai.response">
|
|
29
|
-
>
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* All telemetry attributes which are part of the GenAI specification.
|
|
33
|
-
*
|
|
34
|
-
* @since 1.0.0
|
|
35
|
-
* @category Models
|
|
36
|
-
*/
|
|
37
|
-
export type AllAttributes =
|
|
38
|
-
& BaseAttributes
|
|
39
|
-
& OperationAttributes
|
|
40
|
-
& TokenAttributes
|
|
41
|
-
& UsageAttributes
|
|
42
|
-
& RequestAttributes
|
|
43
|
-
& ResponseAttributes
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Telemetry attributes which are part of the GenAI specification and are
|
|
47
|
-
* namespaced by `gen_ai`.
|
|
48
|
-
*
|
|
49
|
-
* @since 1.0.0
|
|
50
|
-
* @category Models
|
|
51
|
-
*/
|
|
52
|
-
export interface BaseAttributes {
|
|
53
|
-
/**
|
|
54
|
-
* The Generative AI product as identified by the client or server
|
|
55
|
-
* instrumentation.
|
|
56
|
-
*/
|
|
57
|
-
readonly system?: (string & {}) | WellKnownSystem | null | undefined
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Telemetry attributes which are part of the GenAI specification and are
|
|
62
|
-
* namespaced by `gen_ai.operation`.
|
|
63
|
-
*
|
|
64
|
-
* @since 1.0.0
|
|
65
|
-
* @category Models
|
|
66
|
-
*/
|
|
67
|
-
export interface OperationAttributes {
|
|
68
|
-
readonly name?: (string & {}) | WellKnownOperationName | null | undefined
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Telemetry attributes which are part of the GenAI specification and are
|
|
73
|
-
* namespaced by `gen_ai.token`.
|
|
74
|
-
*
|
|
75
|
-
* @since 1.0.0
|
|
76
|
-
* @category Models
|
|
77
|
-
*/
|
|
78
|
-
export interface TokenAttributes {
|
|
79
|
-
readonly type?: string | null | undefined
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Telemetry attributes which are part of the GenAI specification and are
|
|
84
|
-
* namespaced by `gen_ai.usage`.
|
|
85
|
-
*
|
|
86
|
-
* @since 1.0.0
|
|
87
|
-
* @category Models
|
|
88
|
-
*/
|
|
89
|
-
export interface UsageAttributes {
|
|
90
|
-
readonly inputTokens?: number | null | undefined
|
|
91
|
-
readonly outputTokens?: number | null | undefined
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Telemetry attributes which are part of the GenAI specification and are
|
|
96
|
-
* namespaced by `gen_ai.request`.
|
|
97
|
-
*
|
|
98
|
-
* @since 1.0.0
|
|
99
|
-
* @category Models
|
|
100
|
-
*/
|
|
101
|
-
export interface RequestAttributes {
|
|
102
|
-
/**
|
|
103
|
-
* The name of the GenAI model a request is being made to.
|
|
104
|
-
*/
|
|
105
|
-
readonly model?: string | null | undefined
|
|
106
|
-
/**
|
|
107
|
-
* The temperature setting for the GenAI request.
|
|
108
|
-
*/
|
|
109
|
-
readonly temperature?: number | null | undefined
|
|
110
|
-
/**
|
|
111
|
-
* The temperature setting for the GenAI request.
|
|
112
|
-
*/
|
|
113
|
-
readonly topK?: number | null | undefined
|
|
114
|
-
/**
|
|
115
|
-
* The top_k sampling setting for the GenAI request.
|
|
116
|
-
*/
|
|
117
|
-
readonly topP?: number | null | undefined
|
|
118
|
-
/**
|
|
119
|
-
* The top_p sampling setting for the GenAI request.
|
|
120
|
-
*/
|
|
121
|
-
readonly maxTokens?: number | null | undefined
|
|
122
|
-
/**
|
|
123
|
-
* The encoding formats requested in an embeddings operation, if specified.
|
|
124
|
-
*/
|
|
125
|
-
readonly encodingFormats?: ReadonlyArray<string> | null | undefined
|
|
126
|
-
/**
|
|
127
|
-
* List of sequences that the model will use to stop generating further
|
|
128
|
-
* tokens.
|
|
129
|
-
*/
|
|
130
|
-
readonly stopSequences?: ReadonlyArray<string> | null | undefined
|
|
131
|
-
/**
|
|
132
|
-
* The frequency penalty setting for the GenAI request.
|
|
133
|
-
*/
|
|
134
|
-
readonly frequencyPenalty?: number | null | undefined
|
|
135
|
-
/**
|
|
136
|
-
* The presence penalty setting for the GenAI request.
|
|
137
|
-
*/
|
|
138
|
-
readonly presencePenalty?: number | null | undefined
|
|
139
|
-
/**
|
|
140
|
-
* The seed setting for the GenAI request. Requests with same seed value
|
|
141
|
-
* are more likely to return same result.
|
|
142
|
-
*/
|
|
143
|
-
readonly seed?: number | null | undefined
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Telemetry attributes which are part of the GenAI specification and are
|
|
148
|
-
* namespaced by `gen_ai.response`.
|
|
149
|
-
*
|
|
150
|
-
* @since 1.0.0
|
|
151
|
-
* @category Models
|
|
152
|
-
*/
|
|
153
|
-
export interface ResponseAttributes {
|
|
154
|
-
/**
|
|
155
|
-
* The unique identifier for the completion.
|
|
156
|
-
*/
|
|
157
|
-
readonly id?: string | null | undefined
|
|
158
|
-
/**
|
|
159
|
-
* The name of the model that generated the response.
|
|
160
|
-
*/
|
|
161
|
-
readonly model?: string | null | undefined
|
|
162
|
-
/**
|
|
163
|
-
* Array of reasons the model stopped generating tokens, corresponding to
|
|
164
|
-
* each generation received.
|
|
165
|
-
*/
|
|
166
|
-
readonly finishReasons?: ReadonlyArray<string> | null | undefined
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* The `gen_ai.operation.name` attribute has the following list of well-known
|
|
171
|
-
* values.
|
|
172
|
-
*
|
|
173
|
-
* If one of them applies, then the respective value **MUST** be used;
|
|
174
|
-
* otherwise, a custom value **MAY** be used.
|
|
175
|
-
*
|
|
176
|
-
* @since 1.0.0
|
|
177
|
-
* @category Models
|
|
178
|
-
*/
|
|
179
|
-
export type WellKnownOperationName = "chat" | "embeddings" | "text_completion"
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* The `gen_ai.system` attribute has the following list of well-known values.
|
|
183
|
-
*
|
|
184
|
-
* If one of them applies, then the respective value **MUST** be used;
|
|
185
|
-
* otherwise, a custom value **MAY** be used.
|
|
186
|
-
*
|
|
187
|
-
* @since 1.0.0
|
|
188
|
-
* @category Models
|
|
189
|
-
*/
|
|
190
|
-
export type WellKnownSystem =
|
|
191
|
-
| "anthropic"
|
|
192
|
-
| "aws.bedrock"
|
|
193
|
-
| "az.ai.inference"
|
|
194
|
-
| "az.ai.openai"
|
|
195
|
-
| "cohere"
|
|
196
|
-
| "deepseek"
|
|
197
|
-
| "gemini"
|
|
198
|
-
| "groq"
|
|
199
|
-
| "ibm.watsonx.ai"
|
|
200
|
-
| "mistral_ai"
|
|
201
|
-
| "openai"
|
|
202
|
-
| "perplexity"
|
|
203
|
-
| "vertex_ai"
|
|
204
|
-
| "xai"
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* @since 1.0.0
|
|
208
|
-
* @category Models
|
|
209
|
-
*/
|
|
210
|
-
export type AttributesWithPrefix<Attributes extends Record<string, any>, Prefix extends string> = {
|
|
211
|
-
[Name in keyof Attributes as `${Prefix}.${FormatAttributeName<Name>}`]: Attributes[Name]
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* @since 1.0.0
|
|
216
|
-
* @category Utility Types
|
|
217
|
-
*/
|
|
218
|
-
export type FormatAttributeName<T extends string | number | symbol> = T extends string ?
|
|
219
|
-
T extends `${infer First}${infer Rest}`
|
|
220
|
-
? `${First extends Uppercase<First> ? "_" : ""}${Lowercase<First>}${FormatAttributeName<Rest>}`
|
|
221
|
-
: T :
|
|
222
|
-
never
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* @since 1.0.0
|
|
226
|
-
* @category Utilities
|
|
227
|
-
*/
|
|
228
|
-
export const addSpanAttributes = (
|
|
229
|
-
keyPrefix: string,
|
|
230
|
-
transformKey: (key: string) => string
|
|
231
|
-
) =>
|
|
232
|
-
<Attributes extends Record<string, any>>(span: Span, attributes: Attributes): void => {
|
|
233
|
-
for (const [key, value] of Object.entries(attributes)) {
|
|
234
|
-
if (Predicate.isNotNullable(value)) {
|
|
235
|
-
span.attribute(`${keyPrefix}.${transformKey(key)}`, value)
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
const addSpanBaseAttributes = addSpanAttributes("gen_ai", String.camelToSnake)<BaseAttributes>
|
|
241
|
-
const addSpanOperationAttributes = addSpanAttributes("gen_ai.operation", String.camelToSnake)<OperationAttributes>
|
|
242
|
-
const addSpanRequestAttributes = addSpanAttributes("gen_ai.request", String.camelToSnake)<RequestAttributes>
|
|
243
|
-
const addSpanResponseAttributes = addSpanAttributes("gen_ai.response", String.camelToSnake)<ResponseAttributes>
|
|
244
|
-
const addSpanTokenAttributes = addSpanAttributes("gen_ai.token", String.camelToSnake)<TokenAttributes>
|
|
245
|
-
const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToSnake)<UsageAttributes>
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* @since 1.0.0
|
|
249
|
-
* @since Models
|
|
250
|
-
*/
|
|
251
|
-
export type GenAITelemetryAttributeOptions = BaseAttributes & {
|
|
252
|
-
readonly operation?: OperationAttributes | undefined
|
|
253
|
-
readonly request?: RequestAttributes | undefined
|
|
254
|
-
readonly response?: ResponseAttributes | undefined
|
|
255
|
-
readonly token?: TokenAttributes | undefined
|
|
256
|
-
readonly usage?: UsageAttributes | undefined
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* Applies the specified GenAI telemetry attributes to the provided `Span`.
|
|
261
|
-
*
|
|
262
|
-
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
263
|
-
*
|
|
264
|
-
* @since 1.0.0
|
|
265
|
-
* @since Utilities
|
|
266
|
-
*/
|
|
267
|
-
export const addGenAIAnnotations: {
|
|
268
|
-
/**
|
|
269
|
-
* Applies the specified GenAI telemetry attributes to the provided `Span`.
|
|
270
|
-
*
|
|
271
|
-
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
272
|
-
*
|
|
273
|
-
* @since 1.0.0
|
|
274
|
-
* @since Utilities
|
|
275
|
-
*/
|
|
276
|
-
(options: GenAITelemetryAttributeOptions): (span: Span) => void
|
|
277
|
-
/**
|
|
278
|
-
* Applies the specified GenAI telemetry attributes to the provided `Span`.
|
|
279
|
-
*
|
|
280
|
-
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
281
|
-
*
|
|
282
|
-
* @since 1.0.0
|
|
283
|
-
* @since Utilities
|
|
284
|
-
*/
|
|
285
|
-
(span: Span, options: GenAITelemetryAttributeOptions): void
|
|
286
|
-
} = dual<
|
|
287
|
-
/**
|
|
288
|
-
* Applies the specified GenAI telemetry attributes to the provided `Span`.
|
|
289
|
-
*
|
|
290
|
-
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
291
|
-
*
|
|
292
|
-
* @since 1.0.0
|
|
293
|
-
* @since Utilities
|
|
294
|
-
*/
|
|
295
|
-
(options: GenAITelemetryAttributeOptions) => (span: Span) => void,
|
|
296
|
-
/**
|
|
297
|
-
* Applies the specified GenAI telemetry attributes to the provided `Span`.
|
|
298
|
-
*
|
|
299
|
-
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
300
|
-
*
|
|
301
|
-
* @since 1.0.0
|
|
302
|
-
* @since Utilities
|
|
303
|
-
*/
|
|
304
|
-
(span: Span, options: GenAITelemetryAttributeOptions) => void
|
|
305
|
-
>(2, (span, options) => {
|
|
306
|
-
addSpanBaseAttributes(span, { system: options.system })
|
|
307
|
-
if (Predicate.isNotNullable(options.operation)) addSpanOperationAttributes(span, options.operation)
|
|
308
|
-
if (Predicate.isNotNullable(options.request)) addSpanRequestAttributes(span, options.request)
|
|
309
|
-
if (Predicate.isNotNullable(options.response)) addSpanResponseAttributes(span, options.response)
|
|
310
|
-
if (Predicate.isNotNullable(options.token)) addSpanTokenAttributes(span, options.token)
|
|
311
|
-
if (Predicate.isNotNullable(options.usage)) addSpanUsageAttributes(span, options.usage)
|
|
312
|
-
})
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* Represents a method which receives the elements of the request / response to
|
|
316
|
-
* a large language model and can be used to modify the span used to trace the
|
|
317
|
-
* API call.
|
|
318
|
-
*
|
|
319
|
-
* @since 1.0.0
|
|
320
|
-
* @category Models
|
|
321
|
-
*/
|
|
322
|
-
export interface SpanTransformer {
|
|
323
|
-
(options: AiLanguageModelOptions & { readonly response: AiResponse }): void
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* @since 1.0.0
|
|
328
|
-
* @category Context
|
|
329
|
-
*/
|
|
330
|
-
export class CurrentSpanTransformer extends Context.Tag("@effect/ai/AiTelemetry/CurrentSpanTransformer")<
|
|
331
|
-
CurrentSpanTransformer,
|
|
332
|
-
SpanTransformer
|
|
333
|
-
>() {}
|