llm-exe 1.0.2 → 2.0.0-beta.1

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.
@@ -30,9 +30,7 @@ class EmbeddingOpenAI extends base_1.BaseEmbedding {
30
30
  this.batchSize = options.temperature || 0;
31
31
  this.stripNewLines = !!options.stripNewLines;
32
32
  const apiKey = options.openAIApiKey || (0, utils_1.getEnvironmentVariable)("OPENAI_API_KEY");
33
- this.client = new openai_1.OpenAIApi(new openai_1.Configuration({
34
- apiKey,
35
- }));
33
+ this.client = new openai_1.OpenAI({ apiKey });
36
34
  }
37
35
  async embedDocuments(texts) {
38
36
  const subPrompts = (0, utils_1.chunkArray)(this.stripNewLines ? texts.map((t) => t.replace(/\n/g, " ")) : texts, this.batchSize);
@@ -61,7 +59,7 @@ class EmbeddingOpenAI extends base_1.BaseEmbedding {
61
59
  numOfAttempts: this.numOfAttempts,
62
60
  jitter: this.jitter,
63
61
  retry: () => {
64
- console.log(`OpenAI timeout after ${this.timeout}. Retrying...`);
62
+ console.log(`LlmOpenAI timeout after ${this.timeout}. Retrying...`);
65
63
  return true;
66
64
  },
67
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"src/","sources":["embedding/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"src/","sources":["embedding/openai.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { PromptInput, ParserOutput, CoreExecutorExecuteOptions, ExecutorWithLlmOptions, LlmExecutorHooks, OpenAiLlmExecutorOptions, OpenAiFunctionCall } from "../types";
2
- import { OpenAI } from "../llm";
2
+ import { LlmOpenAI } from "../llm";
3
3
  import { BasePrompt } from "../prompt";
4
4
  import { BaseState } from "../state";
5
5
  import { BaseParser } from "../parser";
@@ -7,7 +7,7 @@ import { LlmExecutor } from "./llm";
7
7
  /**
8
8
  * Core Executor With LLM
9
9
  */
10
- export declare class LlmExecutorOpenAiFunctions<Llm extends OpenAI, Prompt extends BasePrompt<Record<string, any>>, Parser extends BaseParser, State extends BaseState> extends LlmExecutor<Llm, Prompt, Parser, State> {
10
+ export declare class LlmExecutorOpenAiFunctions<Llm extends LlmOpenAI, Prompt extends BasePrompt<Record<string, any>>, Parser extends BaseParser, State extends BaseState> extends LlmExecutor<Llm, Prompt, Parser, State> {
11
11
  constructor(llmConfiguration: ExecutorWithLlmOptions<Llm, Prompt, Parser, State>, options?: CoreExecutorExecuteOptions<LlmExecutorHooks>);
12
12
  execute<T extends OpenAiFunctionCall>(_input: PromptInput<Prompt>, _options: OpenAiLlmExecutorOptions<T>): Promise<ParserOutput<Parser>>;
13
13
  }
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { useExecutors, createCallableExecutor } from "./plugins/callable";
2
2
  import { createCoreExecutor, createLlmExecutor } from "./executor/_functions";
3
3
  import { BaseExecutor } from "./executor/_base";
4
4
  import * as utils from "./utils";
5
- import { BaseLlm, OpenAI, createLlmOpenAi } from "./llm";
5
+ import { BaseLlm, LlmOpenAI, createLlmOpenAi } from "./llm";
6
6
  import { EmbeddingOpenAI } from "./embedding/openai";
7
7
  import { PineconeVectorStore } from "./vector";
8
8
  import { BasePrompt, ChatPrompt, TextPrompt, createPrompt, createChatPrompt } from "./prompt";
@@ -18,7 +18,8 @@ export declare const llmExe: {
18
18
  * Llm
19
19
  */
20
20
  BaseLlm: typeof BaseLlm;
21
- OpenAI: typeof OpenAI;
21
+ OpenAI: typeof LlmOpenAI;
22
+ LlmOpenAI: typeof LlmOpenAI;
22
23
  createLlmOpenAi: typeof createLlmOpenAi;
23
24
  /**
24
25
  * Prompt
package/dist/index.js CHANGED
@@ -45,7 +45,8 @@ exports.llmExe = {
45
45
  * Llm
46
46
  */
47
47
  BaseLlm: llm_1.BaseLlm,
48
- OpenAI: llm_1.OpenAI,
48
+ OpenAI: llm_1.LlmOpenAI,
49
+ LlmOpenAI: llm_1.LlmOpenAI,
49
50
  createLlmOpenAi: llm_1.createLlmOpenAi,
50
51
  /**
51
52
  * Prompt
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAmE;AACnE,iDAA0E;AAC1E,sDAA8E;AAC9E,4CAAgD;AAChD,+CAAiC;AACjC,+BAAyD;AACzD,+CAAqD;AACrD,qCAA+C;AAE/C,qCAMkB;AAElB,qCAKkB;AAElB,mCAMiB;AAEjB,wEAA4E;AAE/D,QAAA,MAAM,GAAG;IACpB;;OAEG;IACH,KAAK;IACL;;OAEG;IACH,OAAO,EAAP,aAAO;IACP,MAAM,EAAN,YAAM;IACN,eAAe,EAAf,qBAAe;IACf;;OAEG;IACH,UAAU,EAAV,mBAAU;IACV,UAAU,EAAV,mBAAU;IACV,UAAU,EAAV,mBAAU;IACV,YAAY,EAAZ,qBAAY;IACZ,gBAAgB,EAAhB,yBAAgB;IAChB;;OAEG;IACH,UAAU,EAAV,mBAAU;IACV,YAAY,EAAZ,qBAAY;IACZ,YAAY,EAAZ,qBAAY;IACZ,kBAAkB,EAAlB,2BAAkB;IAClB;;OAEG;IACH,YAAY,EAAZ,oBAAY;IACZ,kBAAkB,EAAlB,+BAAkB;IAClB,iBAAiB,EAAjB,8BAAiB;IACjB,0BAA0B,EAA1B,gDAA0B;IAC1B;;OAEG;IACH,YAAY,EAAZ,uBAAY;IACZ,sBAAsB,EAAtB,iCAAsB;IACtB;;OAEG;IACH,eAAe,EAAf,wBAAe;IACf,mBAAmB,EAAnB,4BAAmB;IACnB;;OAEG;IACH,YAAY,EAAZ,oBAAY;IACZ,aAAa,EAAb,qBAAa;IACb,gBAAgB,EAAhB,wBAAgB;IAChB,WAAW,EAAX,mBAAW;IACX,eAAe,EAAf,uBAAe;CAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAmE;AACnE,iDAA0E;AAC1E,sDAA8E;AAC9E,4CAAgD;AAChD,+CAAiC;AACjC,+BAA4D;AAC5D,+CAAqD;AACrD,qCAA+C;AAE/C,qCAMkB;AAElB,qCAKkB;AAElB,mCAMiB;AAEjB,wEAA4E;AAE/D,QAAA,MAAM,GAAG;IACpB;;OAEG;IACH,KAAK;IACL;;OAEG;IACH,OAAO,EAAP,aAAO;IACP,MAAM,EAAC,eAAS;IAChB,SAAS,EAAT,eAAS;IACT,eAAe,EAAf,qBAAe;IACf;;OAEG;IACH,UAAU,EAAV,mBAAU;IACV,UAAU,EAAV,mBAAU;IACV,UAAU,EAAV,mBAAU;IACV,YAAY,EAAZ,qBAAY;IACZ,gBAAgB,EAAhB,yBAAgB;IAChB;;OAEG;IACH,UAAU,EAAV,mBAAU;IACV,YAAY,EAAZ,qBAAY;IACZ,YAAY,EAAZ,qBAAY;IACZ,kBAAkB,EAAlB,2BAAkB;IAClB;;OAEG;IACH,YAAY,EAAZ,oBAAY;IACZ,kBAAkB,EAAlB,+BAAkB;IAClB,iBAAiB,EAAjB,8BAAiB;IACjB,0BAA0B,EAA1B,gDAA0B;IAC1B;;OAEG;IACH,YAAY,EAAZ,uBAAY;IACZ,sBAAsB,EAAtB,iCAAsB;IACtB;;OAEG;IACH,eAAe,EAAf,wBAAe;IACf,mBAAmB,EAAnB,4BAAmB;IACnB;;OAEG;IACH,YAAY,EAAZ,oBAAY;IACZ,aAAa,EAAb,qBAAa;IACb,gBAAgB,EAAhB,wBAAgB;IAChB,WAAW,EAAX,mBAAW;IACX,eAAe,EAAf,uBAAe;CAChB,CAAC"}
@@ -8,7 +8,7 @@ export interface BaseLlmOptions {
8
8
  jitter?: "none" | "full";
9
9
  promptType?: PromptType;
10
10
  }
11
- export type OpenAIChatModelName = "gpt-3.5-turbo" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k" | "gpt-4-0613" | "gpt-4" | "gpt-4-0613" | "gpt-4-32k-0613";
11
+ export type OpenAIChatModelName = "gpt-3.5-turbo" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k" | "gpt-4-0613" | "gpt-4" | "gpt-4-0613" | "gpt-4-32k-0613" | `gpt-4-${string}` | `gpt-3.5-turbo-${string}`;
12
12
  export type OpenAIConversationModelName = "davinci" | "text-curie-001" | "text-babbage-001" | "text-ada-001";
13
13
  export type OpenAIEmbeddingModelName = "text-embedding-ada-002";
14
14
  export type OpenAIModelName = OpenAIChatModelName | OpenAIConversationModelName | OpenAIEmbeddingModelName;
@@ -39,7 +39,7 @@ export declare abstract class BaseLlm<C = any> {
39
39
  * The BaseLlm constructor takes an options object and sets up the instance.
40
40
  * @param {BaseLlmOptions} options - The options object for LLM configuration.
41
41
  */
42
- constructor(options: BaseLlmOptions);
42
+ constructor(options: BaseLlmOptions, client: C);
43
43
  shouldRetry(_error: any, _stepNumber: number): boolean;
44
44
  handleError(_error: any): void;
45
45
  getPromptType(): PromptType;
package/dist/llm/_base.js CHANGED
@@ -14,7 +14,7 @@ class BaseLlm {
14
14
  * The BaseLlm constructor takes an options object and sets up the instance.
15
15
  * @param {BaseLlmOptions} options - The options object for LLM configuration.
16
16
  */
17
- constructor(options) {
17
+ constructor(options, client) {
18
18
  /**
19
19
  * A property to hold the client instance for the specific LLM.
20
20
  */
@@ -91,7 +91,7 @@ class BaseLlm {
91
91
  }
92
92
  });
93
93
  this.traceId = options?.traceId || null;
94
- this.client = null;
94
+ this.client = client;
95
95
  this.promptType = options?.promptType || "text";
96
96
  this.timeout = options.timeout || 30000;
97
97
  this.jitter = options.jitter || "none";
@@ -1 +1 @@
1
- {"version":3,"file":"_base.js","sourceRoot":"src/","sources":["llm/_base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_base.js","sourceRoot":"src/","sources":["llm/_base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { IChatMessages, OpenAIModelName, OpenAIOptions } from "../types";
2
+ import { BaseLlm } from "./_base";
3
+ import { OutputOpenAICompletion } from "./output/openai";
4
+ interface BedrockClient {
5
+ client: {
6
+ send: any;
7
+ };
8
+ invoke: any;
9
+ }
10
+ /**
11
+ * Create a new instance of the OpenAI API wrapper.
12
+ * @param options - Configuration options for the OpenAI API wrapper.
13
+ * @returns - A new instance of the OpenAI API wrapper class.
14
+ */
15
+ export declare function createLlmBedrock(options: OpenAIOptions, client: BedrockClient): LlmBedrock;
16
+ /**
17
+ * A class that extends BaseLlm and provides functionality for the OpenAI API.
18
+ */
19
+ export declare class LlmBedrock extends BaseLlm<BedrockClient> {
20
+ private model;
21
+ private temperature;
22
+ private maxTokens;
23
+ private topP;
24
+ private n;
25
+ private stream;
26
+ private stop;
27
+ private presencePenalty;
28
+ private frequencyPenalty;
29
+ private logitBias;
30
+ private user;
31
+ /**
32
+ * Constructor for the OpenAI class.
33
+ * @param {OpenAIOptions} options - Configuration options for the OpenAI API wrapper.
34
+ */
35
+ constructor(options: OpenAIOptions, client: BedrockClient);
36
+ /**
37
+ * Get the total prompt and completion tokens across all calls to the API.
38
+ * @returns - An object with total prompt and completion tokens.
39
+ */
40
+ getMetrics(): {
41
+ total_completionTokens: number;
42
+ total_promptTokens: number;
43
+ total_totalTokens: number;
44
+ };
45
+ /**
46
+ * Calculate the API call cost based on input and output tokens.
47
+ * @param input_tokens - The number of input tokens.
48
+ * @param output_tokens=0 - The number of output tokens (defaults to 0).
49
+ * @returns An object for input/output tokens and cost.
50
+ */
51
+ calculatePrice(input_tokens: number, output_tokens?: number): {
52
+ input_cost: number;
53
+ output_cost: number;
54
+ total_cost: number;
55
+ };
56
+ /**
57
+ * Log a table containing usage metrics for the OpenAI API.
58
+ */
59
+ logMetrics(): void;
60
+ /**
61
+ * Wrapper function to call chat/completion with the specified input.
62
+ * @private
63
+ * @param input - The input for the chat/completion API.
64
+ * @returns The chat/completion response from the API.
65
+ */
66
+ _call(input: string | IChatMessages): Promise<OutputOpenAICompletion>;
67
+ /**
68
+ * Communicate with the OpenAI Completion API.
69
+ * @param messages - A list of message objects for the API call.
70
+ * @returns The chat response from the API.
71
+ */
72
+ completion(prompt: string): Promise<OutputOpenAICompletion>;
73
+ getMetadata(): {
74
+ traceId: string | null;
75
+ promptType: import("../types").PromptType;
76
+ timeout: number;
77
+ jitter: "none" | "full";
78
+ maxDelay: number;
79
+ numOfAttempts: number;
80
+ metrics: any;
81
+ } & {
82
+ model: OpenAIModelName;
83
+ temperature: number;
84
+ max_tokens: number;
85
+ topP: number | null;
86
+ n: number | null;
87
+ stream: boolean | null;
88
+ stop: any;
89
+ presencePenalty: number | null;
90
+ frequencyPenalty: number | null;
91
+ logitBias: object | null;
92
+ user: string;
93
+ };
94
+ }
95
+ export {};
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LlmBedrock = exports.createLlmBedrock = void 0;
4
+ const _base_1 = require("./_base");
5
+ const utils_1 = require("../utils");
6
+ const openai_1 = require("./output/openai");
7
+ /**
8
+ * Create a new instance of the OpenAI API wrapper.
9
+ * @param options - Configuration options for the OpenAI API wrapper.
10
+ * @returns - A new instance of the OpenAI API wrapper class.
11
+ */
12
+ function createLlmBedrock(options, client) {
13
+ return new LlmBedrock(options, client);
14
+ }
15
+ exports.createLlmBedrock = createLlmBedrock;
16
+ /**
17
+ * A class that extends BaseLlm and provides functionality for the OpenAI API.
18
+ */
19
+ class LlmBedrock extends _base_1.BaseLlm {
20
+ /**
21
+ * Constructor for the OpenAI class.
22
+ * @param {OpenAIOptions} options - Configuration options for the OpenAI API wrapper.
23
+ */
24
+ constructor(options, client) {
25
+ const { openAIApiKey = (0, utils_1.getEnvironmentVariable)("OPEN_AI_API_KEY"), modelName, temperature, maxTokens, topP = null, n = null, stream = null, stop, presencePenalty = null, frequencyPenalty = null, logitBias = null, user = "", ...restOfOptions } = options;
26
+ super(restOfOptions, client);
27
+ Object.defineProperty(this, "model", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: void 0
32
+ });
33
+ Object.defineProperty(this, "temperature", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ Object.defineProperty(this, "maxTokens", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ Object.defineProperty(this, "topP", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: void 0
50
+ });
51
+ Object.defineProperty(this, "n", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: null
56
+ });
57
+ Object.defineProperty(this, "stream", {
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true,
61
+ value: void 0
62
+ });
63
+ Object.defineProperty(this, "stop", {
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true,
67
+ value: null
68
+ });
69
+ Object.defineProperty(this, "presencePenalty", {
70
+ enumerable: true,
71
+ configurable: true,
72
+ writable: true,
73
+ value: void 0
74
+ });
75
+ Object.defineProperty(this, "frequencyPenalty", {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: void 0
80
+ });
81
+ Object.defineProperty(this, "logitBias", {
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true,
85
+ value: void 0
86
+ });
87
+ Object.defineProperty(this, "user", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: void 0
92
+ });
93
+ this.model = modelName || "gpt-3.5-turbo";
94
+ this.temperature = temperature || 0;
95
+ this.maxTokens = maxTokens || 500;
96
+ this.topP = topP;
97
+ this.n = n;
98
+ this.stream = stream;
99
+ this.stop = stop;
100
+ this.presencePenalty = presencePenalty;
101
+ this.frequencyPenalty = frequencyPenalty;
102
+ this.logitBias = logitBias;
103
+ this.user = user;
104
+ this.promptType = "text";
105
+ }
106
+ /**
107
+ * Get the total prompt and completion tokens across all calls to the API.
108
+ * @returns - An object with total prompt and completion tokens.
109
+ */
110
+ getMetrics() {
111
+ let total_completionTokens = 0;
112
+ let total_promptTokens = 0;
113
+ let total_totalTokens = 0;
114
+ for (const item of this.metrics.history) {
115
+ /* istanbul ignore next */
116
+ const { completion_tokens = 0, prompt_tokens = 0, total_tokens = 0, } = item.usage;
117
+ total_completionTokens = total_completionTokens + completion_tokens;
118
+ total_promptTokens = total_promptTokens + prompt_tokens;
119
+ total_totalTokens = total_totalTokens + total_tokens;
120
+ }
121
+ return {
122
+ total_completionTokens,
123
+ total_promptTokens,
124
+ total_totalTokens,
125
+ };
126
+ }
127
+ /**
128
+ * Calculate the API call cost based on input and output tokens.
129
+ * @param input_tokens - The number of input tokens.
130
+ * @param output_tokens=0 - The number of output tokens (defaults to 0).
131
+ * @returns An object for input/output tokens and cost.
132
+ */
133
+ calculatePrice(input_tokens, output_tokens = 0) {
134
+ return (0, utils_1.calculateOpenAiPrice)(this.model, input_tokens, output_tokens);
135
+ }
136
+ /**
137
+ * Log a table containing usage metrics for the OpenAI API.
138
+ */
139
+ logMetrics() { }
140
+ /**
141
+ * Wrapper function to call chat/completion with the specified input.
142
+ * @private
143
+ * @param input - The input for the chat/completion API.
144
+ * @returns The chat/completion response from the API.
145
+ */
146
+ async _call(input) {
147
+ (0, utils_1.assert)(typeof input === "string");
148
+ return await this.completion(input);
149
+ }
150
+ /**
151
+ * Communicate with the OpenAI Completion API.
152
+ * @param messages - A list of message objects for the API call.
153
+ * @returns The chat response from the API.
154
+ */
155
+ async completion(prompt) {
156
+ (0, utils_1.assert)(typeof prompt === "string" && prompt !== "", "Missing prompt.");
157
+ const options = (0, utils_1.removeEmptyFromObject)({
158
+ prompt,
159
+ model: this.model,
160
+ temperature: this.temperature,
161
+ max_tokens: this.maxTokens,
162
+ topP: this.topP,
163
+ n: this.n,
164
+ stream: this.stream,
165
+ stop: this.stop,
166
+ presencePenalty: this.presencePenalty,
167
+ frequencyPenalty: this.frequencyPenalty,
168
+ logitBias: this.logitBias,
169
+ user: this.user,
170
+ });
171
+ console.log("!!response", options);
172
+ throw new Error("you got here?");
173
+ const response = await this.client.client.send(new this.client.invoke(options));
174
+ this.metrics.history.push(response);
175
+ return new openai_1.OutputOpenAICompletion(response);
176
+ }
177
+ getMetadata() {
178
+ return Object.assign({}, super.getMetadata(), (0, utils_1.removeEmptyFromObject)({
179
+ model: this.model,
180
+ temperature: this.temperature,
181
+ max_tokens: this.maxTokens,
182
+ topP: this.topP,
183
+ n: this.n,
184
+ stream: this.stream,
185
+ stop: this.stop,
186
+ presencePenalty: this.presencePenalty,
187
+ frequencyPenalty: this.frequencyPenalty,
188
+ logitBias: this.logitBias,
189
+ user: this.user,
190
+ }));
191
+ }
192
+ }
193
+ exports.LlmBedrock = LlmBedrock;
194
+ //# sourceMappingURL=bedrock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock.js","sourceRoot":"src/","sources":["llm/bedrock.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export { BaseLlm } from "./_base";
2
- export { createLlmOpenAi, OpenAI } from "./openai";
2
+ export { createLlmOpenAi, LlmOpenAI } from "./openai";
package/dist/llm/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAI = exports.createLlmOpenAi = exports.BaseLlm = void 0;
3
+ exports.LlmOpenAI = exports.createLlmOpenAi = exports.BaseLlm = void 0;
4
4
  var _base_1 = require("./_base");
5
5
  Object.defineProperty(exports, "BaseLlm", { enumerable: true, get: function () { return _base_1.BaseLlm; } });
6
6
  var openai_1 = require("./openai");
7
7
  Object.defineProperty(exports, "createLlmOpenAi", { enumerable: true, get: function () { return openai_1.createLlmOpenAi; } });
8
- Object.defineProperty(exports, "OpenAI", { enumerable: true, get: function () { return openai_1.OpenAI; } });
8
+ Object.defineProperty(exports, "LlmOpenAI", { enumerable: true, get: function () { return openai_1.LlmOpenAI; } });
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["llm/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAAzB,gGAAA,OAAO,OAAA;AAChB,mCAAmD;AAA1C,yGAAA,eAAe,OAAA;AAAE,gGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["llm/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAAzB,gGAAA,OAAO,OAAA;AAChB,mCAAsD;AAA7C,yGAAA,eAAe,OAAA;AAAE,mGAAA,SAAS,OAAA"}
@@ -1,4 +1,4 @@
1
- import { OpenAIApi } from "openai";
1
+ import type { OpenAI } from "openai";
2
2
  import { IChatMessages, OpenAIModelName, OpenAIOptions, OpenAiLlmExecutorOptions } from "../types";
3
3
  import { BaseLlm } from "./_base";
4
4
  import { OutputOpenAIChat } from "../llm/output";
@@ -8,11 +8,11 @@ import { OutputOpenAICompletion } from "./output/openai";
8
8
  * @param options - Configuration options for the OpenAI API wrapper.
9
9
  * @returns - A new instance of the OpenAI API wrapper class.
10
10
  */
11
- export declare function createLlmOpenAi(options: OpenAIOptions): OpenAI;
11
+ export declare function createLlmOpenAi(options: OpenAIOptions, client: OpenAI): LlmOpenAI;
12
12
  /**
13
13
  * A class that extends BaseLlm and provides functionality for the OpenAI API.
14
14
  */
15
- export declare class OpenAI extends BaseLlm<OpenAIApi> {
15
+ export declare class LlmOpenAI extends BaseLlm<OpenAI> {
16
16
  private model;
17
17
  private temperature;
18
18
  private maxTokens;
@@ -28,7 +28,7 @@ export declare class OpenAI extends BaseLlm<OpenAIApi> {
28
28
  * Constructor for the OpenAI class.
29
29
  * @param {OpenAIOptions} options - Configuration options for the OpenAI API wrapper.
30
30
  */
31
- constructor(options: OpenAIOptions);
31
+ constructor(options: OpenAIOptions, client: OpenAI);
32
32
  /**
33
33
  * Get the total prompt and completion tokens across all calls to the API.
34
34
  * @returns - An object with total prompt and completion tokens.
@@ -1,31 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAI = exports.createLlmOpenAi = void 0;
4
- const openai_1 = require("openai");
3
+ exports.LlmOpenAI = exports.createLlmOpenAi = void 0;
5
4
  const _base_1 = require("./_base");
6
5
  const output_1 = require("../llm/output");
7
6
  const utils_1 = require("../utils");
8
- const openai_2 = require("./output/openai");
7
+ const openai_1 = require("./output/openai");
9
8
  /**
10
9
  * Create a new instance of the OpenAI API wrapper.
11
10
  * @param options - Configuration options for the OpenAI API wrapper.
12
11
  * @returns - A new instance of the OpenAI API wrapper class.
13
12
  */
14
- function createLlmOpenAi(options) {
15
- return new OpenAI(options);
13
+ function createLlmOpenAi(options, client) {
14
+ return new LlmOpenAI(options, client);
16
15
  }
17
16
  exports.createLlmOpenAi = createLlmOpenAi;
18
17
  /**
19
18
  * A class that extends BaseLlm and provides functionality for the OpenAI API.
20
19
  */
21
- class OpenAI extends _base_1.BaseLlm {
20
+ class LlmOpenAI extends _base_1.BaseLlm {
22
21
  /**
23
22
  * Constructor for the OpenAI class.
24
23
  * @param {OpenAIOptions} options - Configuration options for the OpenAI API wrapper.
25
24
  */
26
- constructor(options) {
25
+ constructor(options, client) {
27
26
  const { openAIApiKey = (0, utils_1.getEnvironmentVariable)("OPEN_AI_API_KEY"), modelName, temperature, maxTokens, topP = null, n = null, stream = null, stop, presencePenalty = null, frequencyPenalty = null, logitBias = null, user = "", ...restOfOptions } = options;
28
- super(restOfOptions);
27
+ super(restOfOptions, client);
29
28
  Object.defineProperty(this, "model", {
30
29
  enumerable: true,
31
30
  configurable: true,
@@ -110,9 +109,6 @@ class OpenAI extends _base_1.BaseLlm {
110
109
  else {
111
110
  this.promptType = "text";
112
111
  }
113
- this.client = new openai_1.OpenAIApi(new openai_1.Configuration({
114
- apiKey: openAIApiKey,
115
- }));
116
112
  }
117
113
  /**
118
114
  * Get the total prompt and completion tokens across all calls to the API.
@@ -208,10 +204,9 @@ class OpenAI extends _base_1.BaseLlm {
208
204
  if (_args && _args?.functions?.length) {
209
205
  options["functions"] = _args.functions.map(f => (0, utils_1.pick)(f, ["name", "description", "parameters"]));
210
206
  }
211
- const response = await this.client.createChatCompletion(options);
212
- const { data } = response;
213
- this.metrics.history.push(data);
214
- return new output_1.OutputOpenAIChat(data);
207
+ const response = await this.client.chat.completions.create(options);
208
+ this.metrics.history.push(response);
209
+ return new output_1.OutputOpenAIChat(response);
215
210
  }
216
211
  /**
217
212
  * Communicate with the OpenAI Completion API.
@@ -234,10 +229,9 @@ class OpenAI extends _base_1.BaseLlm {
234
229
  logitBias: this.logitBias,
235
230
  user: this.user,
236
231
  });
237
- const response = await this.client.createCompletion(options);
238
- const { data } = response;
239
- this.metrics.history.push(data);
240
- return new openai_2.OutputOpenAICompletion(data);
232
+ const response = await this.client.completions.create(options);
233
+ this.metrics.history.push(response);
234
+ return new openai_1.OutputOpenAICompletion(response);
241
235
  }
242
236
  getMetadata() {
243
237
  return Object.assign({}, super.getMetadata(), (0, utils_1.removeEmptyFromObject)({
@@ -255,5 +249,5 @@ class OpenAI extends _base_1.BaseLlm {
255
249
  }));
256
250
  }
257
251
  }
258
- exports.OpenAI = OpenAI;
252
+ exports.LlmOpenAI = LlmOpenAI;
259
253
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"src/","sources":["llm/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"src/","sources":["llm/openai.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,13 @@ exports.JsonParser = void 0;
4
4
  const utils_1 = require("../../utils");
5
5
  const _base_1 = require("../_base");
6
6
  const _utils_1 = require("../_utils");
7
+ const json_1 = require("../../utils/modules/json");
7
8
  class JsonParser extends _base_1.BaseParserWithJson {
8
9
  constructor(options = {}) {
9
10
  super("json", options);
10
11
  }
11
12
  parse(text, _attributes) {
12
- const parsed = (0, utils_1.maybeParseJSON)(text);
13
+ const parsed = (0, utils_1.maybeParseJSON)((0, json_1.helpJsonMarkup)(text));
13
14
  if (this.schema) {
14
15
  const enforce = (0, _utils_1.enforceParserSchema)(this.schema, parsed);
15
16
  if (this.validateSchema) {
@@ -1 +1 @@
1
- {"version":3,"file":"JsonParser.js","sourceRoot":"src/","sources":["parser/parsers/JsonParser.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AACzC,oCAA8C;AAG9C,sCAAsE;AAEtE,MAAa,UAEX,SAAQ,0BAAqB;IAC7B,YAAY,UAA0C,EAAE;QACtD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CACH,IAAY,EACZ,WAAiC;QAEjC,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,MAAM,KAAK,GAAG,IAAA,6BAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAc,CAAC,CAAC;gBAChE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACnC;aACF;YACD,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxBD,gCAwBC"}
1
+ {"version":3,"file":"JsonParser.js","sourceRoot":"src/","sources":["parser/parsers/JsonParser.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AACzC,oCAA8C;AAG9C,sCAAsE;AACtE,+CAAsD;AAEtD,MAAa,UAEX,SAAQ,0BAAqB;IAC7B,YAAY,UAA0C,EAAE;QACtD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CACH,IAAY,EACZ,WAAiC;QAEjC,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,MAAM,KAAK,GAAG,IAAA,6BAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAc,CAAC,CAAC;gBAChE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACnC;aACF;YACD,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxBD,gCAwBC"}
@@ -3,11 +3,13 @@ export declare const hookOnError = "onError";
3
3
  export declare const hookOnSuccess = "onSuccess";
4
4
  export declare const OpenAiPricing: {
5
5
  "gpt-3.5-turbo": number[];
6
- "gpt-3.5-turbo-0613": number[];
7
- "gpt-3.5-turbo-16k": number[];
6
+ "gpt-3.5-turbo-1106": number[];
7
+ "gpt-3.5-turbo-instruct": number[];
8
8
  "gpt-4": number[];
9
- "gpt-4-0613": number[];
10
- "gpt-4-32k-0613": number[];
9
+ "gpt-4-32k": number[];
10
+ "gpt-4-turbo": number[];
11
+ "gpt-4-1106-preview": number[];
12
+ "gpt-4-1106-vision-preview": number[];
11
13
  davinci: number[];
12
14
  "text-curie-001": number[];
13
15
  "text-babbage-001": number[];
@@ -5,16 +5,18 @@ exports.hookOnComplete = `onComplete`;
5
5
  exports.hookOnError = `onError`;
6
6
  exports.hookOnSuccess = `onSuccess`;
7
7
  exports.OpenAiPricing = {
8
- "gpt-3.5-turbo": [1000, 0.0015, 0.002],
9
- "gpt-3.5-turbo-0613": [1000, 0.0015, 0.002],
10
- "gpt-3.5-turbo-16k": [1000, 0.003, 0.004],
8
+ "gpt-3.5-turbo": [1000, 0.0010, 0.0020],
9
+ "gpt-3.5-turbo-1106": [1000, 0.0010, 0.0020],
10
+ "gpt-3.5-turbo-instruct": [1000, 0.0015, 0.0020],
11
11
  "gpt-4": [1000, 0.03, 0.06],
12
- "gpt-4-0613": [1000, 0.03, 0.06],
13
- "gpt-4-32k-0613": [1000, 0.03, 0.06],
12
+ "gpt-4-32k": [1000, 0.06, 0.12],
13
+ "gpt-4-turbo": [1000, 0.01, 0.03],
14
+ "gpt-4-1106-preview": [1000, 0.01, 0.03],
15
+ "gpt-4-1106-vision-preview": [1000, 0.01, 0.03],
14
16
  davinci: [1000, 0.02, 0.02],
15
17
  "text-curie-001": [1000, 0.002, 0.002],
16
18
  "text-babbage-001": [1000, 0.0005, 0.0005],
17
- "text-ada-001": [1000, 0.0004, 0.0004],
18
- "text-embedding-ada-002": [1000, 0.0004, 0.0004],
19
+ "text-ada-001": [1000, 0.0001, 0.0001],
20
+ "text-embedding-ada-002": [1000, 0.0001, 0.0001],
19
21
  };
20
22
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"src/","sources":["utils/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,YAAY,CAAC;AAC9B,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,aAAa,GAAG,WAAW,CAAC;AAG5B,QAAA,aAAa,GAAG;IACzB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;IACtC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;IAC3C,mBAAmB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IACtC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IACtC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;CACjD,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"src/","sources":["utils/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,YAAY,CAAC;AAC9B,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,aAAa,GAAG,WAAW,CAAC;AAG5B,QAAA,aAAa,GAAI;IAC1B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IACvC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5C,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAE/B,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACjC,oBAAoB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACxC,2BAA2B,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IACtC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IACtC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;CACnD,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export declare const maybeStringifyJSON: (objOrMaybeString: any) => string;
2
2
  export declare const maybeParseJSON: <Expected = any>(objOrMaybeJSON: any) => Expected;
3
3
  export declare function isObjectStringified(maybeObject: string): boolean;
4
+ export declare function helpJsonMarkup(str: string): string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isObjectStringified = exports.maybeParseJSON = exports.maybeStringifyJSON = void 0;
3
+ exports.helpJsonMarkup = exports.isObjectStringified = exports.maybeParseJSON = exports.maybeStringifyJSON = void 0;
4
4
  const maybeStringifyJSON = (objOrMaybeString) => {
5
5
  if (!objOrMaybeString || typeof objOrMaybeString !== "object") {
6
6
  return objOrMaybeString;
@@ -18,7 +18,8 @@ const maybeParseJSON = (objOrMaybeJSON) => {
18
18
  return {};
19
19
  if (typeof objOrMaybeJSON === "string") {
20
20
  try {
21
- const result = JSON.parse(objOrMaybeJSON);
21
+ const cleanMarkdown = helpJsonMarkup(objOrMaybeJSON);
22
+ const result = JSON.parse(cleanMarkdown);
22
23
  if (typeof result === "object" && result !== null) {
23
24
  return result;
24
25
  }
@@ -54,4 +55,23 @@ function isObjectStringified(maybeObject) {
54
55
  return canDecode;
55
56
  }
56
57
  exports.isObjectStringified = isObjectStringified;
58
+ function helpJsonMarkup(str) {
59
+ if (typeof str !== "string") {
60
+ return str;
61
+ }
62
+ // TODO: improve?
63
+ const input = str.trim();
64
+ const markdownJsonStartsWith = "```json";
65
+ const markdownJsonEndsWith = "```";
66
+ if (input.substring(0, markdownJsonStartsWith.length) ===
67
+ markdownJsonStartsWith &&
68
+ input.substring(input.length - markdownJsonEndsWith.length, input.length) ===
69
+ markdownJsonEndsWith) {
70
+ return str
71
+ .substring(markdownJsonStartsWith.length, input.length - markdownJsonEndsWith.length)
72
+ ?.trim();
73
+ }
74
+ return str;
75
+ }
76
+ exports.helpJsonMarkup = helpJsonMarkup;
57
77
  //# sourceMappingURL=json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"src/","sources":["utils/modules/json.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,gBAAqB,EAAU,EAAE;IAClE,IAAI,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QAC7D,OAAO,gBAAgB,CAAC;KACzB;IACD,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE,GAAE;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEK,MAAM,cAAc,GAAG,CAC5B,cAAmB,EACT,EAAE;IACZ,IAAI,CAAC,cAAc;QAAE,OAAO,EAAc,CAAC;IAE3C,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;gBACjD,OAAO,MAAkB,CAAC;aAC3B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,oBAAoB;SACrB;KACF;IAED,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE;QACjE,OAAO,cAA0B,CAAC;KACnC;IAED,OAAO,EAAc,CAAC;AACxB,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB;AAEF,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElD,MAAM,aAAa,GACjB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG;QACnC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAE5E,MAAM,YAAY,GAChB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG;QACnC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAE5E,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxB,SAAS,GAAG,IAAI,CAAC;KAClB;IAAC,OAAO,KAAK,EAAE;QACd,SAAS,GAAG,KAAK,CAAC;KACnB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAvBD,kDAuBC"}
1
+ {"version":3,"file":"json.js","sourceRoot":"src/","sources":["utils/modules/json.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,gBAAqB,EAAU,EAAE;IAClE,IAAI,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QAC7D,OAAO,gBAAgB,CAAC;KACzB;IACD,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE,GAAE;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEK,MAAM,cAAc,GAAG,CAC5B,cAAmB,EACT,EAAE;IACZ,IAAI,CAAC,cAAc;QAAE,OAAO,EAAc,CAAC;IAE3C,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,IAAI;YACF,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;gBACjD,OAAO,MAAkB,CAAC;aAC3B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,oBAAoB;SACrB;KACF;IAED,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE;QACjE,OAAO,cAA0B,CAAC;KACnC;IAED,OAAO,EAAc,CAAC;AACxB,CAAC,CAAC;AAtBW,QAAA,cAAc,kBAsBzB;AAEF,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElD,MAAM,aAAa,GACjB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG;QACnC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAE5E,MAAM,YAAY,GAChB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG;QACnC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAE5E,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxB,SAAS,GAAG,IAAI,CAAC;KAClB;IAAC,OAAO,KAAK,EAAE;QACd,SAAS,GAAG,KAAK,CAAC;KACnB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAvBD,kDAuBC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAG,OAAO,GAAG,KAAK,QAAQ,EAAC;QACzB,OAAO,GAAG,CAAC;KACZ;IACF,iBAAiB;IAChB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACxB,MAAM,sBAAsB,GAAG,SAAS,CAAC;IACzC,MAAM,oBAAoB,GAAG,KAAK,CAAC;IACnC,IACE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC/C,sBAAsB;QACxB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACvE,oBAAoB,EACtB;QACA,OAAO,GAAG;aACP,SAAS,CACR,sBAAsB,CAAC,MAAM,EAC7B,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAC3C;YACD,EAAE,IAAI,EAAE,CAAC;KACZ;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAtBD,wCAsBC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateOpenAiPrice = void 0;
4
+ const utils_1 = require("../../utils");
4
5
  const const_1 = require("../const");
5
6
  /**
6
7
  * Calculate the API call cost based on input and output tokens.
@@ -14,7 +15,7 @@ function calculateOpenAiPrice(model, input_tokens, output_tokens) {
14
15
  output_cost: 0,
15
16
  total_cost: 0,
16
17
  };
17
- const price = const_1.OpenAiPricing[model];
18
+ const price = (0, utils_1.get)(const_1.OpenAiPricing, model, [0, 0, 0]);
18
19
  if (price) {
19
20
  const [amount, inputAmount, outputAmount] = price;
20
21
  if (inputAmount && input_tokens) {
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"src/","sources":["utils/modules/openai.ts"],"names":[],"mappings":";;;AACA,oCAAyC;AAEzC;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,KAAsB,EACtB,YAAoB,EACpB,aAAqB;IAErB,MAAM,GAAG,GAAG;QACV,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,MAAM,KAAK,GAAG,qBAAa,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;QAClD,IAAI,WAAW,IAAI,YAAY,EAAE;YAC/B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC;SAC3D;QACD,IAAI,YAAY,IAAI,aAAa,EAAE;YACjC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC;SAC9D;QAED,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;KAC5D;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAzBD,oDAyBC"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"src/","sources":["utils/modules/openai.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAE9B,oCAAyC;AAEzC;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,KAAsB,EACtB,YAAoB,EACpB,aAAqB;IAErB,MAAM,GAAG,GAAG;QACV,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,WAAG,EAAC,qBAAa,EAAE,KAAK,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;IAChD,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;QAClD,IAAI,WAAW,IAAI,YAAY,EAAE;YAC/B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC;SAC3D;QACD,IAAI,YAAY,IAAI,aAAa,EAAE;YACjC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC;SAC9D;QAED,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;KAC5D;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAzBD,oDAyBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-exe",
3
- "version": "1.0.2",
3
+ "version": "2.0.0-beta.1",
4
4
  "description": "Simplify building LLM-powered apps with easy-to-use base components, supporting text and chat-based prompts with handlebars template engine, output parsers, and flexible function calling capabilities.",
5
5
  "keywords": [
6
6
  "ai",
@@ -23,7 +23,7 @@
23
23
  "scripts": {
24
24
  "tsc": "tsc --project ./tsconfig.json && tsc-alias -p ./tsconfig.json -w",
25
25
  "tsc-ci": "tsc --project ./tsconfig.json && tsc-alias -p ./tsconfig.json",
26
- "tsc-build": "tsc --project ./tsconfig-build.json && tsc-alias -p tsconfig-build.json",
26
+ "tsc-build": "tsc --project ./tsconfig-build.json && tsc-alias -p tsconfig-build.json -w",
27
27
  "test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --coverage --forceExit",
28
28
  "docs:dev": "vuepress dev docs --clean-temp --clean-cache",
29
29
  "docs:build": "vuepress build docs --clean-temp --clean-cache",
@@ -45,7 +45,6 @@
45
45
  "lodash.set": "^4.3.2",
46
46
  "lodash.unescape": "^4.0.1",
47
47
  "object-assign-deep": "0.4.0",
48
- "openai": "^3.2.1",
49
48
  "uuid": "^9.0.0"
50
49
  },
51
50
  "devDependencies": {
@@ -72,6 +71,7 @@
72
71
  "ts-jest": "^29.1.0",
73
72
  "ts-node": "^10.9.1",
74
73
  "tsc-alias": "^1.6.6",
74
+ "openai": "4.21.0",
75
75
  "tsconfig-paths": "^3.14.1",
76
76
  "typescript": "^4.8.4",
77
77
  "vuepress": "^2.0.0-beta.62"