@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/Tokenizer.d.ts
CHANGED
|
@@ -1,36 +1,154 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* The `Tokenizer` module provides tokenization and text truncation capabilities
|
|
3
|
+
* for large language model text processing workflows.
|
|
4
|
+
*
|
|
5
|
+
* This module offers services for converting text into tokens and truncating
|
|
6
|
+
* prompts based on token limits, essential for managing context length
|
|
7
|
+
* constraints in large language models.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { Tokenizer, Prompt } from "@effect/ai"
|
|
12
|
+
* import { Effect } from "effect"
|
|
13
|
+
*
|
|
14
|
+
* const tokenizeText = Effect.gen(function* () {
|
|
15
|
+
* const tokenizer = yield* Tokenizer.Tokenizer
|
|
16
|
+
* const tokens = yield* tokenizer.tokenize("Hello, world!")
|
|
17
|
+
* console.log(`Token count: ${tokens.length}`)
|
|
18
|
+
* return tokens
|
|
19
|
+
* })
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { Tokenizer, Prompt } from "@effect/ai"
|
|
25
|
+
* import { Effect } from "effect"
|
|
26
|
+
*
|
|
27
|
+
* // Truncate a prompt to fit within token limits
|
|
28
|
+
* const truncatePrompt = Effect.gen(function* () {
|
|
29
|
+
* const tokenizer = yield* Tokenizer.Tokenizer
|
|
30
|
+
* const longPrompt = "This is a very long prompt..."
|
|
31
|
+
* const truncated = yield* tokenizer.truncate(longPrompt, 100)
|
|
32
|
+
* return truncated
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
2
36
|
* @since 1.0.0
|
|
3
37
|
*/
|
|
4
38
|
import * as Context from "effect/Context";
|
|
5
39
|
import * as Effect from "effect/Effect";
|
|
6
|
-
import type
|
|
7
|
-
import * as
|
|
8
|
-
declare const Tokenizer_base: Context.TagClass<Tokenizer, "@effect/ai/Tokenizer",
|
|
40
|
+
import type * as AiError from "./AiError.js";
|
|
41
|
+
import * as Prompt from "./Prompt.js";
|
|
42
|
+
declare const Tokenizer_base: Context.TagClass<Tokenizer, "@effect/ai/Tokenizer", Service>;
|
|
9
43
|
/**
|
|
44
|
+
* The `Tokenizer` service tag for dependency injection.
|
|
45
|
+
*
|
|
46
|
+
* This tag provides access to tokenization functionality throughout your
|
|
47
|
+
* application, enabling token counting and prompt truncation capabilities.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* import { Tokenizer } from "@effect/ai"
|
|
52
|
+
* import { Effect } from "effect"
|
|
53
|
+
*
|
|
54
|
+
* const useTokenizer = Effect.gen(function* () {
|
|
55
|
+
* const tokenizer = yield* Tokenizer.Tokenizer
|
|
56
|
+
* const tokens = yield* tokenizer.tokenize("Hello, world!")
|
|
57
|
+
* return tokens.length
|
|
58
|
+
* })
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
10
61
|
* @since 1.0.0
|
|
11
|
-
* @category
|
|
62
|
+
* @category Context
|
|
12
63
|
*/
|
|
13
64
|
export declare class Tokenizer extends Tokenizer_base {
|
|
14
65
|
}
|
|
15
66
|
/**
|
|
67
|
+
* Tokenizer service interface providing text tokenization and truncation
|
|
68
|
+
* operations.
|
|
69
|
+
*
|
|
70
|
+
* This interface defines the core operations for converting text to tokens and
|
|
71
|
+
* managing content length within token limits for AI model compatibility.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* import { Tokenizer, Prompt } from "@effect/ai"
|
|
76
|
+
* import { Effect } from "effect"
|
|
77
|
+
*
|
|
78
|
+
* const customTokenizer: Tokenizer.Service = {
|
|
79
|
+
* tokenize: (input) =>
|
|
80
|
+
* Effect.succeed(input.toString().split(' ').map((_, i) => i)),
|
|
81
|
+
* truncate: (input, maxTokens) =>
|
|
82
|
+
* Effect.succeed(Prompt.make(input.toString().slice(0, maxTokens * 5)))
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
16
86
|
* @since 1.0.0
|
|
87
|
+
* @category Models
|
|
17
88
|
*/
|
|
18
|
-
export
|
|
89
|
+
export interface Service {
|
|
19
90
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @category Models
|
|
91
|
+
* Converts text input into an array of token numbers.
|
|
22
92
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
93
|
+
readonly tokenize: (
|
|
94
|
+
/**
|
|
95
|
+
* The text input to tokenize.
|
|
96
|
+
*/
|
|
97
|
+
input: Prompt.RawInput) => Effect.Effect<Array<number>, AiError.AiError>;
|
|
98
|
+
/**
|
|
99
|
+
* Truncates text input to fit within the specified token limit.
|
|
100
|
+
*/
|
|
101
|
+
readonly truncate: (
|
|
102
|
+
/**
|
|
103
|
+
* The text input to truncate.
|
|
104
|
+
*/
|
|
105
|
+
input: Prompt.RawInput,
|
|
106
|
+
/**
|
|
107
|
+
* Maximum number of tokens to retain.
|
|
108
|
+
*/
|
|
109
|
+
tokens: number) => Effect.Effect<Prompt.Prompt, AiError.AiError>;
|
|
27
110
|
}
|
|
28
111
|
/**
|
|
112
|
+
* Creates a Tokenizer service implementation from tokenization options.
|
|
113
|
+
*
|
|
114
|
+
* This function constructs a complete Tokenizer service by providing a
|
|
115
|
+
* tokenization function. The service handles both tokenization and
|
|
116
|
+
* truncation operations using the provided tokenizer.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* import { Tokenizer, Prompt } from "@effect/ai"
|
|
121
|
+
* import { Effect } from "effect"
|
|
122
|
+
*
|
|
123
|
+
* // Simple word-based tokenizer
|
|
124
|
+
* const wordTokenizer = Tokenizer.make({
|
|
125
|
+
* tokenize: (prompt) =>
|
|
126
|
+
* Effect.succeed(
|
|
127
|
+
* prompt.content
|
|
128
|
+
* .flatMap(msg =>
|
|
129
|
+
* typeof msg.content === "string"
|
|
130
|
+
* ? msg.content.split(' ')
|
|
131
|
+
* : msg.content.flatMap(part =>
|
|
132
|
+
* part.type === "text" ? part.text.split(' ') : []
|
|
133
|
+
* )
|
|
134
|
+
* )
|
|
135
|
+
* .map((_, index) => index)
|
|
136
|
+
* )
|
|
137
|
+
* })
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
29
140
|
* @since 1.0.0
|
|
30
141
|
* @category Constructors
|
|
31
142
|
*/
|
|
32
143
|
export declare const make: (options: {
|
|
33
|
-
|
|
34
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Function to tokenize a prompt into an array of token numbers.
|
|
146
|
+
*/
|
|
147
|
+
readonly tokenize: (
|
|
148
|
+
/**
|
|
149
|
+
* The prompt to tokenize.
|
|
150
|
+
*/
|
|
151
|
+
content: Prompt.Prompt) => Effect.Effect<Array<number>, AiError.AiError>;
|
|
152
|
+
}) => Service;
|
|
35
153
|
export {};
|
|
36
154
|
//# sourceMappingURL=Tokenizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAU,SAAQ,cAG5B;CAAG;AAEN;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,QAAQ,KACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,QAAQ;IACtB;;OAEG;IACH,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS;IAC5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,KACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD,KAAG,OAQA,CAAA"}
|