@effect/ai-openai 0.13.2 → 0.13.3

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.
Files changed (36) hide show
  1. package/dist/cjs/OpenAiClient.js +3 -2
  2. package/dist/cjs/OpenAiClient.js.map +1 -1
  3. package/dist/cjs/OpenAiCompletions.js +62 -7
  4. package/dist/cjs/OpenAiCompletions.js.map +1 -1
  5. package/dist/cjs/OpenAiConfig.js.map +1 -1
  6. package/dist/cjs/OpenAiEmbeddings.js +94 -18
  7. package/dist/cjs/OpenAiEmbeddings.js.map +1 -1
  8. package/dist/cjs/OpenAiTokenizer.js +9 -5
  9. package/dist/cjs/OpenAiTokenizer.js.map +1 -1
  10. package/dist/dts/Generated.d.ts +203 -603
  11. package/dist/dts/Generated.d.ts.map +1 -1
  12. package/dist/dts/OpenAiClient.d.ts +3 -2
  13. package/dist/dts/OpenAiClient.d.ts.map +1 -1
  14. package/dist/dts/OpenAiCompletions.d.ts +51 -1
  15. package/dist/dts/OpenAiCompletions.d.ts.map +1 -1
  16. package/dist/dts/OpenAiConfig.d.ts +2 -4
  17. package/dist/dts/OpenAiConfig.d.ts.map +1 -1
  18. package/dist/dts/OpenAiEmbeddings.d.ts +63 -8
  19. package/dist/dts/OpenAiEmbeddings.d.ts.map +1 -1
  20. package/dist/dts/OpenAiTokenizer.d.ts +7 -0
  21. package/dist/dts/OpenAiTokenizer.d.ts.map +1 -1
  22. package/dist/esm/OpenAiClient.js +3 -2
  23. package/dist/esm/OpenAiClient.js.map +1 -1
  24. package/dist/esm/OpenAiCompletions.js +59 -6
  25. package/dist/esm/OpenAiCompletions.js.map +1 -1
  26. package/dist/esm/OpenAiConfig.js.map +1 -1
  27. package/dist/esm/OpenAiEmbeddings.js +91 -16
  28. package/dist/esm/OpenAiEmbeddings.js.map +1 -1
  29. package/dist/esm/OpenAiTokenizer.js +8 -5
  30. package/dist/esm/OpenAiTokenizer.js.map +1 -1
  31. package/package.json +5 -5
  32. package/src/OpenAiClient.ts +9 -3
  33. package/src/OpenAiCompletions.ts +206 -93
  34. package/src/OpenAiConfig.ts +2 -13
  35. package/src/OpenAiEmbeddings.ts +165 -38
  36. package/src/OpenAiTokenizer.ts +8 -5
@@ -2,21 +2,63 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import { AiError } from "@effect/ai/AiError";
5
+ import * as AiModel from "@effect/ai/AiModel";
5
6
  import * as AiResponse from "@effect/ai/AiResponse";
6
7
  import * as AiRole from "@effect/ai/AiRole";
7
8
  import * as Completions from "@effect/ai/Completions";
9
+ import * as Tokenizer from "@effect/ai/Tokenizer";
8
10
  import * as Arr from "effect/Array";
11
+ import * as Context from "effect/Context";
9
12
  import * as Effect from "effect/Effect";
13
+ import { dual } from "effect/Function";
10
14
  import * as Layer from "effect/Layer";
11
15
  import * as Predicate from "effect/Predicate";
12
16
  import * as Stream from "effect/Stream";
13
17
  import { OpenAiClient } from "./OpenAiClient.js";
14
- import { OpenAiConfig } from "./OpenAiConfig.js";
15
18
  import { addGenAIAnnotations } from "./OpenAiTelemetry.js";
16
19
  import * as OpenAiTokenizer from "./OpenAiTokenizer.js";
17
- const make = options => Effect.gen(function* () {
20
+ // =============================================================================
21
+ // Configuration
22
+ // =============================================================================
23
+ /**
24
+ * @since 1.0.0
25
+ * @category tags
26
+ */
27
+ export class Config extends /*#__PURE__*/Context.Tag("@effect/ai-openai/OpenAiCompletions/Config")() {
28
+ /**
29
+ * @since 1.0.0
30
+ */
31
+ static getOrUndefined = /*#__PURE__*/Effect.map( /*#__PURE__*/Effect.context(), context => context.unsafeMap.get(Config.key));
32
+ }
33
+ // =============================================================================
34
+ // OpenAi Completions
35
+ // =============================================================================
36
+ const modelCacheKey = /*#__PURE__*/Symbol.for("@effect/ai-openai/OpenAiCompletions/AiModel");
37
+ /**
38
+ * @since 1.0.0
39
+ * @category ai models
40
+ */
41
+ export const model = (model, config) => AiModel.make({
42
+ model,
43
+ cacheKey: modelCacheKey,
44
+ requires: OpenAiClient,
45
+ provides: Effect.map(make({
46
+ model,
47
+ config
48
+ }), completions => Context.make(Completions.Completions, completions)),
49
+ updateContext: context => {
50
+ const innerConfig = context.unsafeMap.get(Config.key);
51
+ return Context.mergeAll(context, Context.make(Config, {
52
+ model,
53
+ ...config,
54
+ ...innerConfig
55
+ }), Context.make(Tokenizer.Tokenizer, OpenAiTokenizer.make({
56
+ model: innerConfig?.model ?? model
57
+ })));
58
+ }
59
+ });
60
+ const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
18
61
  const client = yield* OpenAiClient;
19
- const config = yield* OpenAiConfig.getOrUndefined;
20
62
  const makeRequest = ({
21
63
  input,
22
64
  required,
@@ -26,8 +68,8 @@ const make = options => Effect.gen(function* () {
26
68
  const useStructured = tools.length === 1 && tools[0].structured;
27
69
  return Effect.map(Effect.context(), context => ({
28
70
  model: options.model,
29
- ...config,
30
- ...context.unsafeMap.get(OpenAiConfig.key),
71
+ ...options.config,
72
+ ...context.unsafeMap.get(Config.key),
31
73
  messages: makeMessages(input, system),
32
74
  response_format: useStructured ? {
33
75
  type: "json_schema",
@@ -87,12 +129,23 @@ const make = options => Effect.gen(function* () {
87
129
  * @since 1.0.0
88
130
  * @category layers
89
131
  */
90
- export const layerCompletions = options => Layer.effect(Completions.Completions, make(options));
132
+ export const layerCompletions = options => Layer.effect(Completions.Completions, make({
133
+ model: options.model,
134
+ config: options.config
135
+ }));
91
136
  /**
92
137
  * @since 1.0.0
93
138
  * @category layers
94
139
  */
95
140
  export const layer = options => Layer.merge(layerCompletions(options), OpenAiTokenizer.layer(options));
141
+ /**
142
+ * @since 1.0.0
143
+ * @category configuration
144
+ */
145
+ export const withConfigOverride = /*#__PURE__*/dual(2, (self, overrides) => Effect.flatMap(Config.getOrUndefined, config => Effect.provideService(self, Config, {
146
+ ...config,
147
+ ...overrides
148
+ })));
96
149
  const makeMessages = (input, system) => {
97
150
  const messages = system._tag === "Some" ? [makeSystemMessage(system.value)] : [];
98
151
  for (const message of input) {
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiCompletions.js","names":["AiError","AiResponse","AiRole","Completions","Arr","Effect","Layer","Predicate","Stream","OpenAiClient","OpenAiConfig","addGenAIAnnotations","OpenAiTokenizer","make","options","gen","client","config","getOrUndefined","makeRequest","input","required","system","tools","useStructured","length","structured","map","context","model","unsafeMap","get","key","messages","makeMessages","response_format","type","json_schema","strict","name","description","schema","parameters","undefined","tool","function","tool_choice","create","span","pipe","tap","request","annotateRequest","flatMap","createChatCompletion","response","annotateChatResponse","makeResponse","catchAll","cause","fail","module","method","stream","unwrap","annotateStreamResponse","void","asAiResponse","layerCompletions","effect","layer","merge","_tag","makeSystemMessage","value","message","push","convertMessage","formatRole","role","safeName","parts","toolCalls","flushContent","content","flushToolCalls","tool_calls","part","id","arguments","JSON","stringify","params","tool_call_id","toolCallId","makeContentPart","image_url","url","asDataUri","detail","quality","text","structuredTool","head","choices","mapError","choice","empty","withToolCallsJson","res","fromText","toolCall","succeed","replace","operation","temperature","topP","top_p","maxTokens","max_tokens","stopSequences","ensure","stop","filter","isNotNullable","frequencyPenalty","frequency_penalty","presencePenalty","presence_penalty","seed","openai","responseFormat","serviceTier","service_tier","finishReasons","finish_reason","usage","inputTokens","prompt_tokens","outputTokens","completion_tokens","systemFingerprint","system_fingerprint","find"],"sources":["../../src/OpenAiCompletions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OpenAiCompletions.js","names":["AiError","AiModel","AiResponse","AiRole","Completions","Tokenizer","Arr","Context","Effect","dual","Layer","Predicate","Stream","OpenAiClient","addGenAIAnnotations","OpenAiTokenizer","Config","Tag","getOrUndefined","map","context","unsafeMap","get","key","modelCacheKey","Symbol","for","model","config","make","cacheKey","requires","provides","completions","updateContext","innerConfig","mergeAll","fnUntraced","options","client","makeRequest","input","required","system","tools","useStructured","length","structured","messages","makeMessages","response_format","type","json_schema","strict","name","description","schema","parameters","undefined","tool","function","tool_choice","create","span","pipe","tap","request","annotateRequest","flatMap","createChatCompletion","response","annotateChatResponse","makeResponse","catchAll","cause","fail","module","method","stream","unwrap","annotateStreamResponse","void","asAiResponse","layerCompletions","effect","layer","merge","withConfigOverride","self","overrides","provideService","_tag","makeSystemMessage","value","message","push","convertMessage","formatRole","role","safeName","parts","toolCalls","flushContent","content","flushToolCalls","tool_calls","part","id","arguments","JSON","stringify","params","tool_call_id","toolCallId","makeContentPart","image_url","url","asDataUri","detail","quality","text","structuredTool","head","choices","mapError","choice","empty","withToolCallsJson","res","fromText","toolCall","succeed","replace","operation","temperature","topP","top_p","maxTokens","max_tokens","stopSequences","ensure","stop","filter","isNotNullable","frequencyPenalty","frequency_penalty","presencePenalty","presence_penalty","seed","openai","responseFormat","serviceTier","service_tier","finishReasons","finish_reason","usage","inputTokens","prompt_tokens","outputTokens","completion_tokens","systemFingerprint","system_fingerprint","find"],"sources":["../../src/OpenAiCompletions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiConfig.js","names":["Context","Effect","dual","OpenAiConfig","Tag","getOrUndefined","map","context","unsafeMap","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../../src/OpenAiConfig.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAItC;;;;AAIA,OAAM,MAAOC,YAAa,sBAAQH,OAAO,CAACI,GAAG,CAAC,gCAAgC,CAAC,EAG5E;EACD;;;EAGA,OAAgBC,cAAc,gBAA2DJ,MAAM,CAACK,GAAG,eACjGL,MAAM,CAACM,OAAO,EAAS,EACtBA,OAAO,IAAKA,OAAO,CAACC,SAAS,CAACC,GAAG,CAACN,YAAY,CAACO,GAAG,CAAC,CACrD;;AA0BH;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAc5BT,IAAI,CAeN,CAAC,EACD,CAACU,IAAI,EAAEC,eAAe,KACpBZ,MAAM,CAACa,OAAO,CACZX,YAAY,CAACE,cAAc,EAC1BU,MAAM,IAAKd,MAAM,CAACe,cAAc,CAACJ,IAAI,EAAET,YAAY,EAAE;EAAE,GAAGY,MAAM;EAAEF;AAAe,CAAE,CAAC,CACtF,CACJ","ignoreList":[]}
1
+ {"version":3,"file":"OpenAiConfig.js","names":["Context","Effect","dual","OpenAiConfig","Tag","getOrUndefined","map","context","unsafeMap","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../../src/OpenAiConfig.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAEtC;;;;AAIA,OAAM,MAAOC,YAAa,sBAAQH,OAAO,CAACI,GAAG,CAAC,gCAAgC,CAAC,EAG5E;EACD;;;EAGA,OAAgBC,cAAc,gBAA2DJ,MAAM,CAACK,GAAG,eACjGL,MAAM,CAACM,OAAO,EAAS,EACtBA,OAAO,IAAKA,OAAO,CAACC,SAAS,CAACC,GAAG,CAACN,YAAY,CAACO,GAAG,CAAC,CACrD;;AAiBH;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAc5BT,IAAI,CAeN,CAAC,EACD,CAACU,IAAI,EAAEC,eAAe,KACpBZ,MAAM,CAACa,OAAO,CACZX,YAAY,CAACE,cAAc,EAC1BU,MAAM,IAAKd,MAAM,CAACe,cAAc,CAACJ,IAAI,EAAET,YAAY,EAAE;EAAE,GAAGY,MAAM;EAAEF;AAAe,CAAE,CAAC,CACtF,CACJ","ignoreList":[]}
@@ -2,26 +2,65 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import { AiError } from "@effect/ai/AiError";
5
+ import * as AiModel from "@effect/ai/AiModel";
5
6
  import * as Embeddings from "@effect/ai/Embeddings";
7
+ import * as Tokenizer from "@effect/ai/Tokenizer";
6
8
  import * as Context from "effect/Context";
7
9
  import * as Effect from "effect/Effect";
10
+ import { dual } from "effect/Function";
8
11
  import * as Layer from "effect/Layer";
12
+ import * as Struct from "effect/Struct";
9
13
  import { OpenAiClient } from "./OpenAiClient.js";
14
+ import * as OpenAiTokenizer from "./OpenAiTokenizer.js";
15
+ // =============================================================================
16
+ // Configuration
17
+ // =============================================================================
10
18
  /**
11
19
  * @since 1.0.0
12
20
  * @category tags
13
21
  */
14
- export class OpenAiEmbeddingsConfig extends /*#__PURE__*/Context.Tag("@effect/ai-openai/OpenAiEmbeddings/Config")() {
22
+ export class Config extends /*#__PURE__*/Context.Tag("@effect/ai-openai/OpenAiEmbeddings/Config")() {
15
23
  /**
16
24
  * @since 1.0.0
17
25
  */
18
- static getOrUndefined = /*#__PURE__*/Effect.map( /*#__PURE__*/Effect.context(), context => context.unsafeMap.get(OpenAiEmbeddingsConfig.key));
26
+ static getOrUndefined = /*#__PURE__*/Effect.map( /*#__PURE__*/Effect.context(), context => context.unsafeMap.get(Config.key));
19
27
  }
20
- const makeRequest = (client, input, parentConfig, options) => Effect.context().pipe(Effect.flatMap(context => {
21
- const localConfig = context.unsafeMap.get(OpenAiEmbeddingsConfig.key);
28
+ // =============================================================================
29
+ // OpenAi Embeddings
30
+ // =============================================================================
31
+ const batchedModelCacheKey = /*#__PURE__*/Symbol.for("@effect/ai-openai/OpenAiEmbeddings/Batched/AiModel");
32
+ const dataLoaderModelCacheKey = /*#__PURE__*/Symbol.for("@effect/ai-openai/OpenAiEmbeddings/DataLoader/AiModel");
33
+ /**
34
+ * @since 1.0.0
35
+ * @category ai models
36
+ */
37
+ export const model = (model, config) => AiModel.make({
38
+ model,
39
+ cacheKey: config.mode === "batched" ? batchedModelCacheKey : dataLoaderModelCacheKey,
40
+ requires: OpenAiClient,
41
+ provides: Effect.map(config.mode === "batched" ? makeBatched({
42
+ model,
43
+ config
44
+ }) : makeDataLoader({
45
+ model,
46
+ config
47
+ }), embeddings => Context.make(Embeddings.Embeddings, embeddings)),
48
+ updateContext: context => {
49
+ const outerConfig = config.mode === "batched" ? Struct.omit("mode", "maxBatchSize", "cache")(config) : Struct.omit("mode", "maxBatchSize", "window")(config);
50
+ const innerConfig = context.unsafeMap.get(Config.key);
51
+ return Context.mergeAll(context, Context.make(Config, {
52
+ model,
53
+ ...outerConfig,
54
+ ...innerConfig
55
+ }), Context.make(Tokenizer.Tokenizer, OpenAiTokenizer.make({
56
+ model: innerConfig?.model ?? model
57
+ })));
58
+ }
59
+ });
60
+ const makeRequest = (client, input, parentConfig) => Effect.context().pipe(Effect.flatMap(context => {
61
+ const localConfig = context.unsafeMap.get(Config.key);
22
62
  return client.client.createEmbedding({
23
63
  input,
24
- model: options.model,
25
64
  ...parentConfig,
26
65
  ...localConfig
27
66
  });
@@ -48,25 +87,39 @@ const makeRequest = (client, input, parentConfig, options) => Effect.context().p
48
87
  ...common
49
88
  });
50
89
  }));
51
- const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
90
+ const makeBatched = /*#__PURE__*/Effect.fnUntraced(function* (options) {
52
91
  const client = yield* OpenAiClient;
53
- const parentConfig = yield* OpenAiEmbeddingsConfig.getOrUndefined;
92
+ const {
93
+ cache,
94
+ maxBatchSize = 2048,
95
+ ...parentConfig
96
+ } = options.config;
54
97
  return yield* Embeddings.make({
55
- cache: options.cache,
56
- maxBatchSize: options.maxBatchSize ?? 2048,
98
+ cache,
99
+ maxBatchSize,
57
100
  embedMany(input) {
58
- return makeRequest(client, input, parentConfig, options);
101
+ return makeRequest(client, input, {
102
+ ...parentConfig,
103
+ model: options.model
104
+ });
59
105
  }
60
106
  });
61
107
  });
62
108
  const makeDataLoader = /*#__PURE__*/Effect.fnUntraced(function* (options) {
63
109
  const client = yield* OpenAiClient;
64
- const parentConfig = yield* OpenAiEmbeddingsConfig.getOrUndefined;
110
+ const {
111
+ maxBatchSize = 2048,
112
+ window,
113
+ ...parentConfig
114
+ } = options.config;
65
115
  return yield* Embeddings.makeDataLoader({
66
- window: options.window,
67
- maxBatchSize: options.maxBatchSize ?? 2048,
116
+ window,
117
+ maxBatchSize,
68
118
  embedMany(input) {
69
- return makeRequest(client, input, parentConfig, options);
119
+ return makeRequest(client, input, {
120
+ ...parentConfig,
121
+ model: options.model
122
+ });
70
123
  }
71
124
  });
72
125
  });
@@ -74,10 +127,32 @@ const makeDataLoader = /*#__PURE__*/Effect.fnUntraced(function* (options) {
74
127
  * @since 1.0.0
75
128
  * @category layers
76
129
  */
77
- export const layer = options => Layer.effect(Embeddings.Embeddings, make(options));
130
+ export const layer = options => Layer.effect(Embeddings.Embeddings, makeBatched({
131
+ model: options.model,
132
+ config: {
133
+ cache: options.cache,
134
+ maxBatchSize: options.maxBatchSize,
135
+ ...options.config
136
+ }
137
+ }));
78
138
  /**
79
139
  * @since 1.0.0
80
140
  * @category layers
81
141
  */
82
- export const layerDataLoader = options => Layer.scoped(Embeddings.Embeddings, makeDataLoader(options));
142
+ export const layerDataLoader = options => Layer.scoped(Embeddings.Embeddings, makeDataLoader({
143
+ model: options.model,
144
+ config: {
145
+ window: options.window,
146
+ maxBatchSize: options.maxBatchSize,
147
+ ...options.config
148
+ }
149
+ }));
150
+ /**
151
+ * @since 1.0.0
152
+ * @category configuration
153
+ */
154
+ export const withConfigOverride = /*#__PURE__*/dual(2, (self, overrides) => Effect.flatMap(Config.getOrUndefined, config => Effect.provideService(self, Config, {
155
+ ...config,
156
+ ...overrides
157
+ })));
83
158
  //# sourceMappingURL=OpenAiEmbeddings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiEmbeddings.js","names":["AiError","Embeddings","Context","Effect","Layer","OpenAiClient","OpenAiEmbeddingsConfig","Tag","getOrUndefined","map","context","unsafeMap","get","key","makeRequest","client","input","parentConfig","options","pipe","flatMap","localConfig","createEmbedding","model","response","data","embedding","index","embeddings","mapError","cause","common","module","method","_tag","description","make","fnUntraced","cache","maxBatchSize","embedMany","makeDataLoader","window","layer","effect","layerDataLoader","scoped"],"sources":["../../src/OpenAiEmbeddings.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OpenAiEmbeddings.js","names":["AiError","AiModel","Embeddings","Tokenizer","Context","Effect","dual","Layer","Struct","OpenAiClient","OpenAiTokenizer","Config","Tag","getOrUndefined","map","context","unsafeMap","get","key","batchedModelCacheKey","Symbol","for","dataLoaderModelCacheKey","model","config","make","cacheKey","mode","requires","provides","makeBatched","makeDataLoader","embeddings","updateContext","outerConfig","omit","innerConfig","mergeAll","makeRequest","client","input","parentConfig","pipe","flatMap","localConfig","createEmbedding","response","data","embedding","index","mapError","cause","common","module","method","_tag","description","fnUntraced","options","cache","maxBatchSize","embedMany","window","layer","effect","layerDataLoader","scoped","withConfigOverride","self","overrides","provideService"],"sources":["../../src/OpenAiEmbeddings.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,11 +9,14 @@ import * as Effect from "effect/Effect";
9
9
  import * as Layer from "effect/Layer";
10
10
  import * as Option from "effect/Option";
11
11
  import * as GptTokenizer from "gpt-tokenizer";
12
- import { OpenAiConfig } from "./OpenAiConfig.js";
13
- const make = options => Tokenizer.make({
12
+ /**
13
+ * @since 1.0.0
14
+ * @category constructors
15
+ */
16
+ export const make = options => Tokenizer.make({
14
17
  tokenize(content) {
15
- return Effect.tryMap(OpenAiConfig.getOrUndefined, {
16
- try: localConfig => GptTokenizer.encodeChat(content.pipe(Chunk.toReadonlyArray, Arr.flatMap(message => message.parts.pipe(Arr.filterMap(part => {
18
+ return Effect.try({
19
+ try: () => GptTokenizer.encodeChat(content.pipe(Chunk.toReadonlyArray, Arr.flatMap(message => message.parts.pipe(Arr.filterMap(part => {
17
20
  if (part._tag === "Image" || part._tag === "ImageUrl") {
18
21
  return Option.none();
19
22
  }
@@ -22,7 +25,7 @@ const make = options => Tokenizer.make({
22
25
  name: message.role._tag === "UserWithName" ? message.role.name : undefined,
23
26
  content: part._tag === "Text" ? part.content : JSON.stringify(part._tag === "ToolCall" ? part.params : part.value)
24
27
  });
25
- })))), localConfig?.model ?? options.model),
28
+ })))), options.model),
26
29
  catch: cause => new AiError({
27
30
  module: "OpenAiCompletions",
28
31
  method: "tokenize",
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiTokenizer.js","names":["AiError","Tokenizer","Arr","Chunk","Effect","Layer","Option","GptTokenizer","OpenAiConfig","make","options","tokenize","content","tryMap","getOrUndefined","try","localConfig","encodeChat","pipe","toReadonlyArray","flatMap","message","parts","filterMap","part","_tag","none","some","role","kind","name","undefined","JSON","stringify","params","value","model","catch","cause","module","method","description","layer","succeed"],"sources":["../../src/OpenAiTokenizer.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AACjD,OAAO,KAAKC,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,YAAY,MAAM,eAAe;AAC7C,SAASC,YAAY,QAAQ,mBAAmB;AAEhD,MAAMC,IAAI,GAAIC,OAAmC,IAC/CT,SAAS,CAACQ,IAAI,CAAC;EACbE,QAAQA,CAACC,OAAO;IACd,OAAOR,MAAM,CAACS,MAAM,CAACL,YAAY,CAACM,cAAc,EAAE;MAChDC,GAAG,EAAGC,WAAW,IACfT,YAAY,CAACU,UAAU,CACrBL,OAAO,CAACM,IAAI,CACVf,KAAK,CAACgB,eAAe,EACrBjB,GAAG,CAACkB,OAAO,CAAEC,OAAO,IAClBA,OAAO,CAACC,KAAK,CAACJ,IAAI,CAChBhB,GAAG,CAACqB,SAAS,CAAEC,IAAI,IAAI;QACrB,IAAIA,IAAI,CAACC,IAAI,KAAK,OAAO,IAAID,IAAI,CAACC,IAAI,KAAK,UAAU,EAAE;UACrD,OAAOnB,MAAM,CAACoB,IAAI,EAAE;QACtB;QACA,OAAOpB,MAAM,CAACqB,IAAI,CAChB;UACEC,IAAI,EAAEP,OAAO,CAACO,IAAI,CAACC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW;UACzDC,IAAI,EAAET,OAAO,CAACO,IAAI,CAACH,IAAI,KAAK,cAAc,GAAGJ,OAAO,CAACO,IAAI,CAACE,IAAI,GAAGC,SAAS;UAC1EnB,OAAO,EAAEY,IAAI,CAACC,IAAI,KAAK,MAAM,GACzBD,IAAI,CAACZ,OAAO,GACZoB,IAAI,CAACC,SAAS,CAACT,IAAI,CAACC,IAAI,KAAK,UAAU,GAAGD,IAAI,CAACU,MAAM,GAAGV,IAAI,CAACW,KAAK;SAC9D,CACX;MACH,CAAC,CAAC,CACH,CACF,CACF,EACDnB,WAAW,EAAEoB,KAAK,IAAI1B,OAAO,CAAC0B,KAAY,CAC3C;MACHC,KAAK,EAAGC,KAAK,IACX,IAAItC,OAAO,CAAC;QACVuC,MAAM,EAAE,mBAAmB;QAC3BC,MAAM,EAAE,UAAU;QAClBC,WAAW,EAAE,oBAAoB;QACjCH;OACD;KACJ,CAAC;EACJ;CACD,CAAC;AAEJ;;;;AAIA,OAAO,MAAMI,KAAK,GAAIhC,OAAmC,IACvDL,KAAK,CAACsC,OAAO,CAAC1C,SAAS,CAACA,SAAS,EAAEQ,IAAI,CAACC,OAAO,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"OpenAiTokenizer.js","names":["AiError","Tokenizer","Arr","Chunk","Effect","Layer","Option","GptTokenizer","make","options","tokenize","content","try","encodeChat","pipe","toReadonlyArray","flatMap","message","parts","filterMap","part","_tag","none","some","role","kind","name","undefined","JSON","stringify","params","value","model","catch","cause","module","method","description","layer","succeed"],"sources":["../../src/OpenAiTokenizer.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AACjD,OAAO,KAAKC,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,YAAY,MAAM,eAAe;AAE7C;;;;AAIA,OAAO,MAAMC,IAAI,GAAIC,OAAmC,IACtDR,SAAS,CAACO,IAAI,CAAC;EACbE,QAAQA,CAACC,OAAO;IACd,OAAOP,MAAM,CAACQ,GAAG,CAAC;MAChBA,GAAG,EAAEA,CAAA,KACHL,YAAY,CAACM,UAAU,CACrBF,OAAO,CAACG,IAAI,CACVX,KAAK,CAACY,eAAe,EACrBb,GAAG,CAACc,OAAO,CAAEC,OAAO,IAClBA,OAAO,CAACC,KAAK,CAACJ,IAAI,CAChBZ,GAAG,CAACiB,SAAS,CAAEC,IAAI,IAAI;QACrB,IAAIA,IAAI,CAACC,IAAI,KAAK,OAAO,IAAID,IAAI,CAACC,IAAI,KAAK,UAAU,EAAE;UACrD,OAAOf,MAAM,CAACgB,IAAI,EAAE;QACtB;QACA,OAAOhB,MAAM,CAACiB,IAAI,CAChB;UACEC,IAAI,EAAEP,OAAO,CAACO,IAAI,CAACC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW;UACzDC,IAAI,EAAET,OAAO,CAACO,IAAI,CAACH,IAAI,KAAK,cAAc,GAAGJ,OAAO,CAACO,IAAI,CAACE,IAAI,GAAGC,SAAS;UAC1EhB,OAAO,EAAES,IAAI,CAACC,IAAI,KAAK,MAAM,GACzBD,IAAI,CAACT,OAAO,GACZiB,IAAI,CAACC,SAAS,CAACT,IAAI,CAACC,IAAI,KAAK,UAAU,GAAGD,IAAI,CAACU,MAAM,GAAGV,IAAI,CAACW,KAAK;SAC9D,CACX;MACH,CAAC,CAAC,CACH,CACF,CACF,EACDtB,OAAO,CAACuB,KAAY,CACrB;MACHC,KAAK,EAAGC,KAAK,IACX,IAAIlC,OAAO,CAAC;QACVmC,MAAM,EAAE,mBAAmB;QAC3BC,MAAM,EAAE,UAAU;QAClBC,WAAW,EAAE,oBAAoB;QACjCH;OACD;KACJ,CAAC;EACJ;CACD,CAAC;AAEJ;;;;AAIA,OAAO,MAAMI,KAAK,GAAI7B,OAAmC,IACvDJ,KAAK,CAACkC,OAAO,CAACtC,SAAS,CAACA,SAAS,EAAEO,IAAI,CAACC,OAAO,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/ai-openai",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Effect modules for working with AI apis",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -13,10 +13,10 @@
13
13
  "gpt-tokenizer": "^2.8.1"
14
14
  },
15
15
  "peerDependencies": {
16
- "@effect/ai": "^0.10.2",
17
- "@effect/experimental": "^0.41.2",
18
- "@effect/platform": "^0.77.2",
19
- "effect": "^3.13.2"
16
+ "@effect/ai": "^0.10.3",
17
+ "@effect/experimental": "^0.41.3",
18
+ "@effect/platform": "^0.77.3",
19
+ "effect": "^3.13.3"
20
20
  },
21
21
  "publishConfig": {
22
22
  "provenance": true
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import * as AiModels from "@effect/ai/AiModels"
4
5
  import * as AiResponse from "@effect/ai/AiResponse"
5
6
  import * as AiRole from "@effect/ai/AiRole"
6
7
  import * as Sse from "@effect/experimental/Sse"
@@ -189,7 +190,11 @@ export const layer = (options: {
189
190
  readonly organizationId?: Redacted.Redacted | undefined
190
191
  readonly projectId?: Redacted.Redacted | undefined
191
192
  readonly transformClient?: (client: HttpClient.HttpClient) => HttpClient.HttpClient
192
- }): Layer.Layer<OpenAiClient, never, HttpClient.HttpClient> => Layer.effect(OpenAiClient, make(options))
193
+ }): Layer.Layer<AiModels.AiModels | OpenAiClient, never, HttpClient.HttpClient> =>
194
+ Layer.merge(
195
+ AiModels.layer,
196
+ Layer.effect(OpenAiClient, make(options))
197
+ )
193
198
 
194
199
  /**
195
200
  * @since 1.0.0
@@ -203,10 +208,11 @@ export const layerConfig = (
203
208
  readonly projectId?: Redacted.Redacted | undefined
204
209
  readonly transformClient?: (client: HttpClient.HttpClient) => HttpClient.HttpClient
205
210
  }>
206
- ): Layer.Layer<OpenAiClient, ConfigError, HttpClient.HttpClient> =>
211
+ ): Layer.Layer<AiModels.AiModels | OpenAiClient, ConfigError, HttpClient.HttpClient> =>
207
212
  Config.unwrap(options).pipe(
208
213
  Effect.flatMap(make),
209
- Layer.effect(OpenAiClient)
214
+ Layer.effect(OpenAiClient),
215
+ Layer.merge(AiModels.layer)
210
216
  )
211
217
 
212
218
  /**