@effect/ai-openai 0.11.0 → 0.11.2
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/OpenAiEmbeddings/package.json +6 -0
- package/OpenAiTelemetry/package.json +6 -0
- package/dist/cjs/Generated.js +1910 -316
- package/dist/cjs/Generated.js.map +1 -1
- package/dist/cjs/OpenAiClient.js +88 -60
- package/dist/cjs/OpenAiClient.js.map +1 -1
- package/dist/cjs/OpenAiCompletions.js +82 -6
- package/dist/cjs/OpenAiCompletions.js.map +1 -1
- package/dist/cjs/OpenAiEmbeddings.js +95 -0
- package/dist/cjs/OpenAiEmbeddings.js.map +1 -0
- package/dist/cjs/OpenAiTelemetry.js +39 -0
- package/dist/cjs/OpenAiTelemetry.js.map +1 -0
- package/dist/cjs/index.js +5 -1
- package/dist/dts/Generated.d.ts +2789 -517
- package/dist/dts/Generated.d.ts.map +1 -1
- package/dist/dts/OpenAiClient.d.ts +15 -1
- package/dist/dts/OpenAiClient.d.ts.map +1 -1
- package/dist/dts/OpenAiCompletions.d.ts +8 -2
- package/dist/dts/OpenAiCompletions.d.ts.map +1 -1
- package/dist/dts/OpenAiConfig.d.ts +12 -1
- package/dist/dts/OpenAiConfig.d.ts.map +1 -1
- package/dist/dts/OpenAiEmbeddings.d.ts +51 -0
- package/dist/dts/OpenAiEmbeddings.d.ts.map +1 -0
- package/dist/dts/OpenAiTelemetry.d.ts +107 -0
- package/dist/dts/OpenAiTelemetry.d.ts.map +1 -0
- package/dist/dts/index.d.ts +8 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Generated.js +1612 -311
- package/dist/esm/Generated.js.map +1 -1
- package/dist/esm/OpenAiClient.js +88 -60
- package/dist/esm/OpenAiClient.js.map +1 -1
- package/dist/esm/OpenAiCompletions.js +82 -6
- package/dist/esm/OpenAiCompletions.js.map +1 -1
- package/dist/esm/OpenAiEmbeddings.js +83 -0
- package/dist/esm/OpenAiEmbeddings.js.map +1 -0
- package/dist/esm/OpenAiTelemetry.js +30 -0
- package/dist/esm/OpenAiTelemetry.js.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +22 -6
- package/src/Generated.ts +1892 -398
- package/src/OpenAiClient.ts +118 -67
- package/src/OpenAiCompletions.ts +108 -14
- package/src/OpenAiEmbeddings.ts +149 -0
- package/src/OpenAiTelemetry.ts +159 -0
- package/src/index.ts +10 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as AiTelemetry from "@effect/ai/AiTelemetry"
|
|
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
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The attributes used to describe telemetry in the context of Generative
|
|
13
|
+
* Artificial Intelligence (GenAI) Models requests and responses.
|
|
14
|
+
*
|
|
15
|
+
* {@see https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/}
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category models
|
|
19
|
+
*/
|
|
20
|
+
export type OpenAiTelemetryAttributes = Simplify<
|
|
21
|
+
& AiTelemetry.GenAITelemetryAttributes
|
|
22
|
+
& AiTelemetry.GenAI.AttributesWithPrefix<OpenAiTelemetry.RequestAttributes, "gen_ai.openai.request">
|
|
23
|
+
& AiTelemetry.GenAI.AttributesWithPrefix<OpenAiTelemetry.ResponseAttributes, "gen_ai.openai.request">
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
export declare namespace OpenAiTelemetry {
|
|
30
|
+
/**
|
|
31
|
+
* All telemetry attributes which are part of the GenAI specification,
|
|
32
|
+
* including the OpenAi-specific attributes.
|
|
33
|
+
*
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
* @category models
|
|
36
|
+
*/
|
|
37
|
+
export type AllAttributes = AiTelemetry.GenAI.AllAttributes & RequestAttributes & ResponseAttributes
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Telemetry attributes which are part of the GenAI specification and are
|
|
41
|
+
* namespaced by `gen_ai.openai.request`.
|
|
42
|
+
*
|
|
43
|
+
* @since 1.0.0
|
|
44
|
+
* @category models
|
|
45
|
+
*/
|
|
46
|
+
export interface RequestAttributes {
|
|
47
|
+
/**
|
|
48
|
+
* The response format that is requested.
|
|
49
|
+
*/
|
|
50
|
+
readonly responseFormat?: (string & {}) | WellKnownResponseFormat | null | undefined
|
|
51
|
+
/**
|
|
52
|
+
* The service tier requested. May be a specific tier, `default`, or `auto`.
|
|
53
|
+
*/
|
|
54
|
+
readonly serviceTier?: (string & {}) | WellKnownServiceTier | null | undefined
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Telemetry attributes which are part of the GenAI specification and are
|
|
59
|
+
* namespaced by `gen_ai.openai.response`.
|
|
60
|
+
*
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
* @category models
|
|
63
|
+
*/
|
|
64
|
+
export interface ResponseAttributes {
|
|
65
|
+
/**
|
|
66
|
+
* The service tier used for the response.
|
|
67
|
+
*/
|
|
68
|
+
readonly serviceTier?: string | null | undefined
|
|
69
|
+
/**
|
|
70
|
+
* A fingerprint to track any eventual change in the Generative AI
|
|
71
|
+
* environment.
|
|
72
|
+
*/
|
|
73
|
+
readonly systemFingerprint?: string | null | undefined
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The `gen_ai.openai.request.response_format` attribute has the following
|
|
78
|
+
* list of well-known values.
|
|
79
|
+
*
|
|
80
|
+
* If one of them applies, then the respective value **MUST** be used;
|
|
81
|
+
* otherwise, a custom value **MAY** be used.
|
|
82
|
+
*
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
* @category models
|
|
85
|
+
*/
|
|
86
|
+
export type WellKnownResponseFormat = "json_object" | "json_schema" | "text"
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The `gen_ai.openai.request.service_tier` attribute has the following
|
|
90
|
+
* list of well-known values.
|
|
91
|
+
*
|
|
92
|
+
* If one of them applies, then the respective value **MUST** be used;
|
|
93
|
+
* otherwise, a custom value **MAY** be used.
|
|
94
|
+
*
|
|
95
|
+
* @since 1.0.0
|
|
96
|
+
* @category models
|
|
97
|
+
*/
|
|
98
|
+
export type WellKnownServiceTier = "auto" | "default"
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @since 1.0.0
|
|
103
|
+
* @since models
|
|
104
|
+
*/
|
|
105
|
+
export type OpenAiTelemetryAttributeOptions = AiTelemetry.GenAITelemetryAttributeOptions & {
|
|
106
|
+
openai?: {
|
|
107
|
+
request?: OpenAiTelemetry.RequestAttributes | undefined
|
|
108
|
+
response?: OpenAiTelemetry.ResponseAttributes | undefined
|
|
109
|
+
} | undefined
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const addOpenAiRequestAttributes = AiTelemetry.addSpanAttributes("gen_ai.openai.request", String.camelToSnake)<
|
|
113
|
+
OpenAiTelemetry.RequestAttributes
|
|
114
|
+
>
|
|
115
|
+
const addOpenAiResponseAttributes = AiTelemetry.addSpanAttributes("gen_ai.openai.response", String.camelToSnake)<
|
|
116
|
+
OpenAiTelemetry.ResponseAttributes
|
|
117
|
+
>
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Applies the specified OpenAi GenAI telemetry attributes to the provided
|
|
121
|
+
* `Span`.
|
|
122
|
+
*
|
|
123
|
+
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
124
|
+
*
|
|
125
|
+
* @since 1.0.0
|
|
126
|
+
* @since utilities
|
|
127
|
+
*/
|
|
128
|
+
export const addGenAIAnnotations = dual<
|
|
129
|
+
/**
|
|
130
|
+
* Applies the specified OpenAi GenAI telemetry attributes to the provided
|
|
131
|
+
* `Span`.
|
|
132
|
+
*
|
|
133
|
+
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
134
|
+
*
|
|
135
|
+
* @since 1.0.0
|
|
136
|
+
* @since utilities
|
|
137
|
+
*/
|
|
138
|
+
(options: OpenAiTelemetryAttributeOptions) => (span: Span) => void,
|
|
139
|
+
/**
|
|
140
|
+
* Applies the specified OpenAi GenAI telemetry attributes to the provided
|
|
141
|
+
* `Span`.
|
|
142
|
+
*
|
|
143
|
+
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
144
|
+
*
|
|
145
|
+
* @since 1.0.0
|
|
146
|
+
* @since utilities
|
|
147
|
+
*/
|
|
148
|
+
(span: Span, options: OpenAiTelemetryAttributeOptions) => void
|
|
149
|
+
>(2, (span, options) => {
|
|
150
|
+
AiTelemetry.addGenAIAnnotations(span, options)
|
|
151
|
+
if (Predicate.isNotNullable(options.openai)) {
|
|
152
|
+
if (Predicate.isNotNullable(options.openai.request)) {
|
|
153
|
+
addOpenAiRequestAttributes(span, options.openai.request)
|
|
154
|
+
}
|
|
155
|
+
if (Predicate.isNotNullable(options.openai.response)) {
|
|
156
|
+
addOpenAiResponseAttributes(span, options.openai.response)
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
})
|
package/src/index.ts
CHANGED
|
@@ -18,6 +18,16 @@ export * as OpenAiCompletions from "./OpenAiCompletions.js"
|
|
|
18
18
|
*/
|
|
19
19
|
export * as OpenAiConfig from "./OpenAiConfig.js"
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
*/
|
|
24
|
+
export * as OpenAiEmbeddings from "./OpenAiEmbeddings.js"
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
export * as OpenAiTelemetry from "./OpenAiTelemetry.js"
|
|
30
|
+
|
|
21
31
|
/**
|
|
22
32
|
* @since 1.0.0
|
|
23
33
|
*/
|