@memberjunction/ai 3.4.0 → 4.1.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.
Files changed (67) hide show
  1. package/README.md +242 -0
  2. package/dist/generic/apiKeyDictionary.d.ts +22 -0
  3. package/dist/generic/apiKeyDictionary.d.ts.map +1 -1
  4. package/dist/generic/apiKeyDictionary.js +20 -13
  5. package/dist/generic/apiKeyDictionary.js.map +1 -1
  6. package/dist/generic/baseAudio.d.ts +107 -2
  7. package/dist/generic/baseAudio.d.ts.map +1 -1
  8. package/dist/generic/baseAudio.js +26 -20
  9. package/dist/generic/baseAudio.js.map +1 -1
  10. package/dist/generic/baseDiffusion.d.ts +5 -1
  11. package/dist/generic/baseDiffusion.d.ts.map +1 -1
  12. package/dist/generic/baseDiffusion.js +5 -17
  13. package/dist/generic/baseDiffusion.js.map +1 -1
  14. package/dist/generic/baseEmbeddings.d.ts +25 -2
  15. package/dist/generic/baseEmbeddings.d.ts.map +1 -1
  16. package/dist/generic/baseEmbeddings.js +26 -8
  17. package/dist/generic/baseEmbeddings.js.map +1 -1
  18. package/dist/generic/baseImage.d.ts +262 -2
  19. package/dist/generic/baseImage.d.ts.map +1 -1
  20. package/dist/generic/baseImage.js +83 -20
  21. package/dist/generic/baseImage.js.map +1 -1
  22. package/dist/generic/baseLLM.d.ts +100 -4
  23. package/dist/generic/baseLLM.d.ts.map +1 -1
  24. package/dist/generic/baseLLM.js +122 -14
  25. package/dist/generic/baseLLM.js.map +1 -1
  26. package/dist/generic/baseModel.d.ts +91 -0
  27. package/dist/generic/baseModel.d.ts.map +1 -1
  28. package/dist/generic/baseModel.js +37 -11
  29. package/dist/generic/baseModel.js.map +1 -1
  30. package/dist/generic/baseReranker.d.ts +81 -2
  31. package/dist/generic/baseReranker.d.ts.map +1 -1
  32. package/dist/generic/baseReranker.js +73 -6
  33. package/dist/generic/baseReranker.js.map +1 -1
  34. package/dist/generic/baseVideo.d.ts +24 -1
  35. package/dist/generic/baseVideo.d.ts.map +1 -1
  36. package/dist/generic/baseVideo.js +11 -14
  37. package/dist/generic/baseVideo.js.map +1 -1
  38. package/dist/generic/chat.types.d.ts +291 -2
  39. package/dist/generic/chat.types.d.ts.map +1 -1
  40. package/dist/generic/chat.types.js +105 -32
  41. package/dist/generic/chat.types.js.map +1 -1
  42. package/dist/generic/classify.types.d.ts +5 -2
  43. package/dist/generic/classify.types.d.ts.map +1 -1
  44. package/dist/generic/classify.types.js +8 -11
  45. package/dist/generic/classify.types.js.map +1 -1
  46. package/dist/generic/embed.types.d.ts +1 -1
  47. package/dist/generic/embed.types.js +1 -2
  48. package/dist/generic/errorAnalyzer.d.ts +94 -0
  49. package/dist/generic/errorAnalyzer.d.ts.map +1 -1
  50. package/dist/generic/errorAnalyzer.js +160 -28
  51. package/dist/generic/errorAnalyzer.js.map +1 -1
  52. package/dist/generic/errorTypes.d.ts +116 -0
  53. package/dist/generic/errorTypes.d.ts.map +1 -1
  54. package/dist/generic/errorTypes.js +1 -2
  55. package/dist/generic/reranker.types.d.ts +74 -0
  56. package/dist/generic/reranker.types.d.ts.map +1 -1
  57. package/dist/generic/reranker.types.js +10 -2
  58. package/dist/generic/reranker.types.js.map +1 -1
  59. package/dist/generic/summarize.types.d.ts +5 -2
  60. package/dist/generic/summarize.types.d.ts.map +1 -1
  61. package/dist/generic/summarize.types.js +8 -9
  62. package/dist/generic/summarize.types.js.map +1 -1
  63. package/dist/index.d.ts +15 -15
  64. package/dist/index.js +15 -31
  65. package/dist/index.js.map +1 -1
  66. package/package.json +8 -7
  67. package/readme.md +167 -967
@@ -1,45 +1,141 @@
1
- import { SummarizeParams, SummarizeResult } from "./summarize.types";
2
- import { BaseModel } from "./baseModel";
3
- import { ChatParams, ChatResult, ParallelChatCompletionsCallbacks, ChatCompletionMessage } from "./chat.types";
4
- import { ClassifyParams, ClassifyResult } from "./classify.types";
1
+ import { SummarizeParams, SummarizeResult } from "./summarize.types.js";
2
+ import { BaseModel } from "./baseModel.js";
3
+ import { ChatParams, ChatResult, ParallelChatCompletionsCallbacks, ChatCompletionMessage } from "./chat.types.js";
4
+ import { ClassifyParams, ClassifyResult } from "./classify.types.js";
5
+ /**
6
+ * Type for thinking stream state management
7
+ */
5
8
  type ThinkingStreamState = {
6
9
  accumulatedThinking: string;
7
10
  inThinkingBlock: boolean;
8
11
  pendingContent: string;
9
12
  thinkingComplete: boolean;
10
13
  };
14
+ /**
15
+ * Base class for all LLM sub-class implementations. Not all sub-classes will support all methods.
16
+ * If a method is not supported an exception will be thrown.
17
+ */
11
18
  export declare abstract class BaseLLM extends BaseModel {
19
+ /**
20
+ * Protected property to store additional provider-specific settings
21
+ */
12
22
  protected _additionalSettings: Record<string, any>;
23
+ /**
24
+ * Get the current additional settings
25
+ */
13
26
  get AdditionalSettings(): Record<string, any>;
27
+ /**
28
+ * Set additional provider-specific settings
29
+ * Subclasses should override this method to validate required settings
30
+ *
31
+ * @param settings Provider-specific settings
32
+ */
14
33
  SetAdditionalSettings(settings: Record<string, any>): void;
34
+ /**
35
+ * Clear all additional settings
36
+ * This is useful for resetting the state of the provider
37
+ * or when switching between different configurations.
38
+ */
15
39
  ClearAdditionalSettings(): void;
40
+ /**
41
+ * Process a chat completion request. If streaming is enabled and supported,
42
+ * this will route to the streaming implementation.
43
+ */
16
44
  ChatCompletion(params: ChatParams): Promise<ChatResult>;
45
+ /**
46
+ * Process multiple chat completion requests in parallel. This is useful for:
47
+ * - Generating multiple variations with different parameters (temperature, etc.)
48
+ * - Getting multiple responses to compare or select from
49
+ * - Improving reliability by sending the same request multiple times
50
+ *
51
+ * @param paramsArray Array of chat completion parameter objects
52
+ * @param callbacks Optional callbacks for progress and individual completions
53
+ * @returns Promise resolving to an array of ChatResults in the same order as the input params
54
+ */
17
55
  ChatCompletions(paramsArray: ChatParams[], callbacks?: ParallelChatCompletionsCallbacks): Promise<ChatResult[]>;
56
+ /**
57
+ * Implementation for non-streaming chat completion
58
+ */
18
59
  protected abstract nonStreamingChatCompletion(params: ChatParams): Promise<ChatResult>;
19
60
  abstract ClassifyText(params: ClassifyParams): Promise<ClassifyResult>;
20
61
  abstract SummarizeText(params: SummarizeParams): Promise<SummarizeResult>;
62
+ /**
63
+ * Check if this provider supports streaming
64
+ * @returns true if streaming is supported, false otherwise
65
+ */
21
66
  get SupportsStreaming(): boolean;
67
+ /**
68
+ * Template method for handling streaming chat completion
69
+ * This implements the common pattern across providers while delegating
70
+ * provider-specific logic to abstract methods.
71
+ */
22
72
  protected handleStreamingChatCompletion(params: ChatParams): Promise<ChatResult>;
73
+ /**
74
+ * Create a provider-specific streaming request
75
+ * @param params Chat parameters
76
+ * @returns A stream object that can be iterated with for await
77
+ */
23
78
  protected abstract createStreamingRequest(params: ChatParams): Promise<any>;
79
+ /**
80
+ * Process a streaming chunk from the provider
81
+ * @param chunk The raw chunk from the provider
82
+ * @returns Processed content and metadata
83
+ */
24
84
  protected abstract processStreamingChunk(chunk: any): {
25
85
  content: string;
26
86
  finishReason?: string | undefined;
27
87
  usage?: any | null;
28
88
  };
89
+ /**
90
+ * Create the final response object from streaming results
91
+ * @param accumulatedContent The complete content accumulated from all chunks
92
+ * @param lastChunk The last chunk received from the stream
93
+ * @param usage The usage information (tokens, etc.)
94
+ * @returns A complete ChatResult object
95
+ */
29
96
  protected abstract finalizeStreamingResponse(accumulatedContent: string | null | undefined, lastChunk: any | null | undefined, usage: any | null | undefined): ChatResult;
97
+ /**
98
+ * State tracking for streaming thinking extraction
99
+ * Providers should initialize this if they support thinking models
100
+ */
30
101
  protected thinkingStreamState: ThinkingStreamState | null;
102
+ /**
103
+ * Check if the provider supports thinking models
104
+ * Providers should override this to return true if they support thinking extraction
105
+ */
31
106
  protected supportsThinkingModels(): boolean;
107
+ /**
108
+ * Get the thinking tag format for this provider
109
+ * Providers can override this to customize the thinking tag format
110
+ */
32
111
  protected getThinkingTagFormat(): {
33
112
  open: string;
34
113
  close: string;
35
114
  };
115
+ /**
116
+ * Extract thinking content from non-streaming content
117
+ * This method handles case-insensitive extraction of thinking blocks
118
+ */
36
119
  protected extractThinkingFromContent(content: string): {
37
120
  content: string;
38
121
  thinking?: string;
39
122
  };
123
+ /**
124
+ * Initialize thinking stream state for streaming extraction
125
+ */
40
126
  protected initializeThinkingStreamState(): void;
127
+ /**
128
+ * Reset thinking stream state
129
+ */
41
130
  protected resetThinkingStreamState(): void;
131
+ /**
132
+ * Process streaming chunk with thinking extraction
133
+ * This method handles case-insensitive extraction across chunk boundaries
134
+ */
42
135
  protected processStreamChunkWithThinking(rawContent: string): string;
136
+ /**
137
+ * Add thinking content to a chat completion message
138
+ */
43
139
  protected addThinkingToMessage(message: ChatCompletionMessage, thinkingContent?: string): ChatCompletionMessage;
44
140
  }
45
141
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"baseLLM.d.ts","sourceRoot":"","sources":["../../src/generic/baseLLM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAA0B,gCAAgC,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACvI,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlE,KAAK,mBAAmB,GAAG;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAMF,8BAAsB,OAAQ,SAAQ,SAAS;IAI3C,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAKxD,IAAW,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAEnD;IAQM,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAS1D,uBAAuB,IAAI,IAAI;IAQzB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBvD,eAAe,CACxB,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,CAAC,EAAE,gCAAgC,GAC7C,OAAO,CAAC,UAAU,EAAE,CAAC;IAgExB,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;aAEtE,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;aAC7D,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMhF,IAAW,iBAAiB,IAAI,OAAO,CAGtC;cAOe,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAiHtF,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3E,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG;QAClD,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;KACtB;IASD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CACxC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7C,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,EACjC,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,GAC9B,UAAU;IAQb,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAMjE,SAAS,CAAC,sBAAsB,IAAI,OAAO;IAQ3C,SAAS,CAAC,oBAAoB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAQjE,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG;QACnD,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAiCD,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAY/C,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAQ1C,SAAS,CAAC,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAqEpE,SAAS,CAAC,oBAAoB,CAC1B,OAAO,EAAE,qBAAqB,EAC9B,eAAe,CAAC,EAAE,MAAM,GACzB,qBAAqB;CAM3B"}
1
+ {"version":3,"file":"baseLLM.d.ts","sourceRoot":"","sources":["../../src/generic/baseLLM.ts"],"names":[],"mappings":"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"}
@@ -1,59 +1,105 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseLLM = void 0;
4
- const baseModel_1 = require("./baseModel");
5
- const chat_types_1 = require("./chat.types");
6
- const errorAnalyzer_1 = require("./errorAnalyzer");
7
- class BaseLLM extends baseModel_1.BaseModel {
1
+ import { BaseModel } from "./baseModel.js";
2
+ import { ChatResult } from "./chat.types.js";
3
+ import { ErrorAnalyzer } from "./errorAnalyzer.js";
4
+ /**
5
+ * Base class for all LLM sub-class implementations. Not all sub-classes will support all methods.
6
+ * If a method is not supported an exception will be thrown.
7
+ */
8
+ export class BaseLLM extends BaseModel {
8
9
  constructor() {
9
10
  super(...arguments);
11
+ /**
12
+ * Protected property to store additional provider-specific settings
13
+ */
10
14
  this._additionalSettings = {};
15
+ // ============ Thinking Model Support Helper Methods ============
16
+ /**
17
+ * State tracking for streaming thinking extraction
18
+ * Providers should initialize this if they support thinking models
19
+ */
11
20
  this.thinkingStreamState = null;
12
21
  }
22
+ /**
23
+ * Get the current additional settings
24
+ */
13
25
  get AdditionalSettings() {
14
26
  return this._additionalSettings;
15
27
  }
28
+ /**
29
+ * Set additional provider-specific settings
30
+ * Subclasses should override this method to validate required settings
31
+ *
32
+ * @param settings Provider-specific settings
33
+ */
16
34
  SetAdditionalSettings(settings) {
17
35
  this._additionalSettings = { ...this._additionalSettings, ...settings };
18
36
  }
37
+ /**
38
+ * Clear all additional settings
39
+ * This is useful for resetting the state of the provider
40
+ * or when switching between different configurations.
41
+ */
19
42
  ClearAdditionalSettings() {
20
43
  this._additionalSettings = {};
21
44
  }
45
+ /**
46
+ * Process a chat completion request. If streaming is enabled and supported,
47
+ * this will route to the streaming implementation.
48
+ */
22
49
  async ChatCompletion(params) {
23
50
  if (params.enableCaching === undefined) {
24
- params.enableCaching = true;
51
+ params.enableCaching = true; // default to true
25
52
  }
53
+ // Check if streaming is requested and if we support it
26
54
  if (params.streaming && params.streamingCallbacks && this.SupportsStreaming) {
27
55
  return this.handleStreamingChatCompletion(params);
28
56
  }
57
+ // Continue with normal non-streaming implementation
29
58
  return this.nonStreamingChatCompletion(params);
30
59
  }
60
+ /**
61
+ * Process multiple chat completion requests in parallel. This is useful for:
62
+ * - Generating multiple variations with different parameters (temperature, etc.)
63
+ * - Getting multiple responses to compare or select from
64
+ * - Improving reliability by sending the same request multiple times
65
+ *
66
+ * @param paramsArray Array of chat completion parameter objects
67
+ * @param callbacks Optional callbacks for progress and individual completions
68
+ * @returns Promise resolving to an array of ChatResults in the same order as the input params
69
+ */
31
70
  async ChatCompletions(paramsArray, callbacks) {
32
71
  if (!paramsArray || paramsArray.length === 0) {
33
72
  return [];
34
73
  }
74
+ // Create promises for each completion
35
75
  const promises = paramsArray.map((params, index) => this.ChatCompletion(params)
36
76
  .then(response => {
77
+ // Call the OnCompletion callback if provided
37
78
  if (callbacks?.OnCompletion) {
38
79
  callbacks.OnCompletion(response, index);
39
80
  }
40
81
  return response;
41
82
  })
42
83
  .catch(error => {
84
+ // Call the OnError callback if provided
43
85
  if (callbacks?.OnError) {
44
86
  callbacks.OnError(error, index);
45
87
  }
46
- throw error;
88
+ throw error; // Re-throw to be caught by Promise.allSettled
47
89
  }));
90
+ // Use Promise.allSettled to get results even if some fail
48
91
  const results = await Promise.allSettled(promises);
92
+ // Convert the settled results to an array of ChatResults
93
+ // For rejected promises, create error ChatResults
49
94
  const chatResults = results.map((result, index) => {
50
95
  if (result.status === 'fulfilled') {
51
96
  return result.value;
52
97
  }
53
98
  else {
99
+ // Create an error result
54
100
  const startTime = new Date();
55
101
  const endTime = new Date();
56
- const errorResult = new chat_types_1.ChatResult(false, startTime, endTime);
102
+ const errorResult = new ChatResult(false, startTime, endTime);
57
103
  errorResult.data = {
58
104
  choices: [],
59
105
  usage: {
@@ -65,24 +111,37 @@ class BaseLLM extends baseModel_1.BaseModel {
65
111
  errorResult.statusText = 'error';
66
112
  errorResult.errorMessage = result.reason?.message || 'Unknown error';
67
113
  errorResult.exception = { exception: result.reason };
68
- errorResult.errorInfo = errorAnalyzer_1.ErrorAnalyzer.analyzeError(result.reason, this.constructor.name);
114
+ errorResult.errorInfo = ErrorAnalyzer.analyzeError(result.reason, this.constructor.name);
69
115
  return errorResult;
70
116
  }
71
117
  });
118
+ // Call the OnAllCompleted callback if provided
72
119
  if (callbacks?.OnAllCompleted) {
73
120
  callbacks.OnAllCompleted(chatResults);
74
121
  }
75
122
  return chatResults;
76
123
  }
124
+ /**
125
+ * Check if this provider supports streaming
126
+ * @returns true if streaming is supported, false otherwise
127
+ */
77
128
  get SupportsStreaming() {
129
+ // Default to false, providers that support streaming should override
78
130
  return false;
79
131
  }
132
+ /**
133
+ * Template method for handling streaming chat completion
134
+ * This implements the common pattern across providers while delegating
135
+ * provider-specific logic to abstract methods.
136
+ */
80
137
  async handleStreamingChatCompletion(params) {
81
138
  const startTime = new Date();
82
139
  return new Promise((resolve, reject) => {
83
140
  (async () => {
84
141
  try {
142
+ // Get provider-specific stream
85
143
  const stream = await this.createStreamingRequest(params);
144
+ // Track accumulated response for final result
86
145
  let accumulatedContent = '';
87
146
  let lastChunk = null;
88
147
  let usage = {
@@ -90,9 +149,11 @@ class BaseLLM extends baseModel_1.BaseModel {
90
149
  completionTokens: 0,
91
150
  totalTokens: 0
92
151
  };
152
+ // Guard against null or undefined stream
93
153
  if (!stream) {
94
154
  throw new Error("Stream is null or undefined");
95
155
  }
156
+ // Process each chunk using provider-specific implementation
96
157
  try {
97
158
  for await (const chunk of stream) {
98
159
  if (chunk) {
@@ -104,6 +165,7 @@ class BaseLLM extends baseModel_1.BaseModel {
104
165
  }
105
166
  }
106
167
  lastChunk = chunk;
168
+ // Update usage if available
107
169
  if (processed?.usage) {
108
170
  usage = processed.usage;
109
171
  }
@@ -111,18 +173,26 @@ class BaseLLM extends baseModel_1.BaseModel {
111
173
  }
112
174
  }
113
175
  catch (streamError) {
176
+ // If there's an error in the for-await loop, log and continue
114
177
  console.error("Error processing stream chunks:", streamError);
115
178
  }
179
+ // Stream complete, call OnContent one last time with isComplete=true
116
180
  if (params.streamingCallbacks?.OnContent) {
117
181
  params.streamingCallbacks.OnContent('', true);
118
182
  }
183
+ // Create final result object using provider-specific implementation
119
184
  const endTime = new Date();
120
185
  const result = this.finalizeStreamingResponse(accumulatedContent, lastChunk, usage);
186
+ // Guard against null result
121
187
  if (!result) {
122
188
  throw new Error("Failed to create result");
123
189
  }
190
+ // Override timestamps - the provider implementation is responsible for
191
+ // properly constructing ChatResult with the required constructor arguments
124
192
  result.startTime = startTime;
125
193
  result.endTime = endTime;
194
+ // timeElapsed is a getter that computes based on startTime and endTime
195
+ // Call OnComplete with final result
126
196
  if (params.streamingCallbacks?.OnComplete) {
127
197
  params.streamingCallbacks.OnComplete(result);
128
198
  }
@@ -133,7 +203,8 @@ class BaseLLM extends baseModel_1.BaseModel {
133
203
  params.streamingCallbacks.OnError(error);
134
204
  }
135
205
  const endTime = new Date();
136
- const errorResult = new chat_types_1.ChatResult(false, startTime, endTime);
206
+ // Create a proper ChatResult by extending BaseResult
207
+ const errorResult = new ChatResult(false, startTime, endTime);
137
208
  errorResult.data = {
138
209
  choices: [],
139
210
  usage: {
@@ -145,18 +216,30 @@ class BaseLLM extends baseModel_1.BaseModel {
145
216
  errorResult.statusText = 'error';
146
217
  errorResult.errorMessage = error?.message || 'Unknown error';
147
218
  errorResult.exception = { exception: error };
148
- errorResult.errorInfo = errorAnalyzer_1.ErrorAnalyzer.analyzeError(error, this.constructor.name);
219
+ errorResult.errorInfo = ErrorAnalyzer.analyzeError(error, this.constructor.name);
149
220
  reject(errorResult);
150
221
  }
151
222
  })();
152
223
  });
153
224
  }
225
+ /**
226
+ * Check if the provider supports thinking models
227
+ * Providers should override this to return true if they support thinking extraction
228
+ */
154
229
  supportsThinkingModels() {
155
230
  return false;
156
231
  }
232
+ /**
233
+ * Get the thinking tag format for this provider
234
+ * Providers can override this to customize the thinking tag format
235
+ */
157
236
  getThinkingTagFormat() {
158
237
  return { open: '<think>', close: '</think>' };
159
238
  }
239
+ /**
240
+ * Extract thinking content from non-streaming content
241
+ * This method handles case-insensitive extraction of thinking blocks
242
+ */
160
243
  extractThinkingFromContent(content) {
161
244
  if (!content)
162
245
  return {
@@ -169,7 +252,9 @@ class BaseLLM extends baseModel_1.BaseModel {
169
252
  const openTagLower = tags.open.toLowerCase();
170
253
  const closeTagLower = tags.close.toLowerCase();
171
254
  const contentLower = processedContent.toLowerCase();
255
+ // Check if content starts with thinking tag (case-insensitive)
172
256
  if (contentLower.startsWith(openTagLower) && contentLower.includes(closeTagLower)) {
257
+ // Find the actual positions in the original content
173
258
  const thinkStart = tags.open.length;
174
259
  const thinkEndIndex = contentLower.indexOf(closeTagLower);
175
260
  if (thinkEndIndex !== -1) {
@@ -179,6 +264,9 @@ class BaseLLM extends baseModel_1.BaseModel {
179
264
  }
180
265
  return { content: processedContent, thinking: thinkingContent };
181
266
  }
267
+ /**
268
+ * Initialize thinking stream state for streaming extraction
269
+ */
182
270
  initializeThinkingStreamState() {
183
271
  this.thinkingStreamState = {
184
272
  accumulatedThinking: '',
@@ -187,15 +275,24 @@ class BaseLLM extends baseModel_1.BaseModel {
187
275
  thinkingComplete: false
188
276
  };
189
277
  }
278
+ /**
279
+ * Reset thinking stream state
280
+ */
190
281
  resetThinkingStreamState() {
191
282
  this.thinkingStreamState = null;
192
283
  }
284
+ /**
285
+ * Process streaming chunk with thinking extraction
286
+ * This method handles case-insensitive extraction across chunk boundaries
287
+ */
193
288
  processStreamChunkWithThinking(rawContent) {
194
289
  if (!this.thinkingStreamState) {
290
+ // If thinking extraction is not enabled, return content as-is
195
291
  return rawContent;
196
292
  }
197
293
  let contentToEmit = '';
198
294
  this.thinkingStreamState.pendingContent += rawContent;
295
+ // If thinking is already complete, just return the pending content
199
296
  if (this.thinkingStreamState.thinkingComplete) {
200
297
  contentToEmit = this.thinkingStreamState.pendingContent;
201
298
  this.thinkingStreamState.pendingContent = '';
@@ -204,36 +301,48 @@ class BaseLLM extends baseModel_1.BaseModel {
204
301
  const tags = this.getThinkingTagFormat();
205
302
  const pending = this.thinkingStreamState.pendingContent;
206
303
  const pendingLower = pending.toLowerCase();
304
+ // Check if we're starting a thinking block (case-insensitive)
207
305
  if (!this.thinkingStreamState.inThinkingBlock && pendingLower.includes(tags.open.toLowerCase())) {
208
306
  const thinkStartIndex = pendingLower.indexOf(tags.open.toLowerCase());
307
+ // If <think> is not at the start, emit content before it
209
308
  if (thinkStartIndex > 0) {
210
309
  contentToEmit = pending.substring(0, thinkStartIndex);
211
310
  this.thinkingStreamState.pendingContent = pending.substring(thinkStartIndex);
212
311
  return contentToEmit;
213
312
  }
313
+ // We're now in a thinking block
214
314
  this.thinkingStreamState.inThinkingBlock = true;
315
+ // Remove the opening tag
215
316
  this.thinkingStreamState.pendingContent = pending.substring(tags.open.length);
216
317
  }
318
+ // If we're in a thinking block, look for the end (case-insensitive)
217
319
  if (this.thinkingStreamState.inThinkingBlock) {
218
320
  const pendingInBlockLower = this.thinkingStreamState.pendingContent.toLowerCase();
219
321
  const thinkEndIndex = pendingInBlockLower.indexOf(tags.close.toLowerCase());
220
322
  if (thinkEndIndex !== -1) {
323
+ // Found the end of thinking block
221
324
  this.thinkingStreamState.accumulatedThinking += this.thinkingStreamState.pendingContent.substring(0, thinkEndIndex);
222
325
  this.thinkingStreamState.pendingContent = this.thinkingStreamState.pendingContent.substring(thinkEndIndex + tags.close.length);
223
326
  this.thinkingStreamState.inThinkingBlock = false;
224
327
  this.thinkingStreamState.thinkingComplete = true;
328
+ // Process any remaining content recursively
225
329
  return this.processStreamChunkWithThinking('');
226
330
  }
227
331
  else {
332
+ // Still accumulating thinking content
228
333
  this.thinkingStreamState.accumulatedThinking += this.thinkingStreamState.pendingContent;
229
334
  this.thinkingStreamState.pendingContent = '';
230
335
  return '';
231
336
  }
232
337
  }
338
+ // Not in thinking block and no thinking tags found
233
339
  contentToEmit = this.thinkingStreamState.pendingContent;
234
340
  this.thinkingStreamState.pendingContent = '';
235
341
  return contentToEmit;
236
342
  }
343
+ /**
344
+ * Add thinking content to a chat completion message
345
+ */
237
346
  addThinkingToMessage(message, thinkingContent) {
238
347
  if (thinkingContent) {
239
348
  message.thinking = thinkingContent;
@@ -241,5 +350,4 @@ class BaseLLM extends baseModel_1.BaseModel {
241
350
  return message;
242
351
  }
243
352
  }
244
- exports.BaseLLM = BaseLLM;
245
353
  //# sourceMappingURL=baseLLM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseLLM.js","sourceRoot":"","sources":["../../src/generic/baseLLM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseLLM.js","sourceRoot":"","sources":["../../src/generic/baseLLM.ts"],"names":[],"mappings":"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"}
@@ -5,33 +5,124 @@ export declare class BaseResult {
5
5
  endTime: Date;
6
6
  errorMessage: string;
7
7
  exception: any;
8
+ /**
9
+ * Structured error information for better error handling and retry logic
10
+ */
8
11
  errorInfo?: AIErrorInfo;
9
12
  get timeElapsed(): number;
10
13
  constructor(success: boolean, startTime: Date, endTime: Date);
11
14
  }
12
15
  export declare class BaseParams {
16
+ /**
17
+ * Model name, required.
18
+ */
13
19
  model: string;
20
+ /**
21
+ * Model temperature, optional.
22
+ */
14
23
  temperature?: number;
24
+ /**
25
+ * Specifies the format that the model should output. Not all models support all formats. If not specified, the default is 'Any'.
26
+ */
15
27
  responseFormat?: 'Any' | 'Text' | 'Markdown' | 'JSON' | 'ModelSpecific';
28
+ /**
29
+ * The standard response formats may not be sufficient for all models. This field allows for a model-specific response format to be specified. For this field to be used, responseFormat must be set to 'ModelSpecific'.
30
+ */
16
31
  modelSpecificResponseFormat?: any;
32
+ /**
33
+ * Model max output response tokens, optional.
34
+ */
17
35
  maxOutputTokens?: number;
36
+ /**
37
+ * Model max budget tokens that we may use for reasoning in reasoning models, optional.
38
+ */
18
39
  reasoningBudgetTokens?: number;
40
+ /**
41
+ * Optional seed for reproducible outputs.
42
+ * Not all models support seeding, but when supported, using the same seed
43
+ * with the same inputs should produce identical outputs.
44
+ */
19
45
  seed?: number;
46
+ /**
47
+ * Optional array of sequences where the model will stop generating further tokens.
48
+ * The returned text will not contain the stop sequence.
49
+ */
20
50
  stopSequences?: string[];
21
51
  }
52
+ /**
53
+ * Represents token usage and cost information for an AI model execution.
54
+ *
55
+ * This class tracks the number of tokens used in both the prompt (input) and
56
+ * completion (output) phases of an AI model execution, along with optional
57
+ * cost information when provided by the AI provider.
58
+ *
59
+ * @class ModelUsage
60
+ * @since 2.43.0
61
+ */
22
62
  export declare class ModelUsage {
63
+ /**
64
+ * Creates a new ModelUsage instance.
65
+ *
66
+ * @param {number} promptTokens - Number of tokens used in the prompt/input
67
+ * @param {number} completionTokens - Number of tokens generated in the completion/output
68
+ * @param {number} [cost] - Optional cost of the execution
69
+ * @param {string} [costCurrency] - Optional currency code for the cost (e.g., 'USD', 'EUR', 'GBP')
70
+ */
23
71
  constructor(promptTokens: number, completionTokens: number, cost?: number, costCurrency?: string);
72
+ /**
73
+ * Number of tokens used in the prompt/input phase.
74
+ * This includes all tokens from system messages, user messages, and any
75
+ * other context provided to the model.
76
+ */
24
77
  promptTokens: number;
78
+ /**
79
+ * Number of tokens generated by the model in its response.
80
+ * This represents the length of the model's output.
81
+ */
25
82
  completionTokens: number;
83
+ /**
84
+ * Optional cost of this execution.
85
+ * The currency is specified in the costCurrency field.
86
+ * Some providers (like Anthropic) provide this information directly in their API responses.
87
+ */
26
88
  cost?: number;
89
+ /**
90
+ * Optional ISO 4217 currency code for the cost field.
91
+ * Examples: 'USD', 'EUR', 'GBP', 'JPY', etc.
92
+ * If not specified when cost is provided, the currency is provider-specific.
93
+ */
27
94
  costCurrency?: string;
95
+ /**
96
+ * Optional queue time in milliseconds before the model started processing the request.
97
+ * This is a provider-specific timing metric that may not be available from all providers.
98
+ */
28
99
  queueTime?: number;
100
+ /**
101
+ * Optional time in milliseconds for the model to ingest and process the prompt.
102
+ * This is a provider-specific timing metric that may not be available from all providers.
103
+ */
29
104
  promptTime?: number;
105
+ /**
106
+ * Optional time in milliseconds for the model to generate the completion/response tokens.
107
+ * This is a provider-specific timing metric that may not be available from all providers.
108
+ */
30
109
  completionTime?: number;
110
+ /**
111
+ * Calculated total number of tokens (prompt + completion).
112
+ * This is useful for tracking overall token usage against limits.
113
+ *
114
+ * @returns {number} The sum of promptTokens and completionTokens
115
+ */
31
116
  get totalTokens(): number;
32
117
  }
118
+ /**
119
+ * Base AI model class, used for everything else in the MemberJunction AI environment
120
+ */
33
121
  export declare abstract class BaseModel {
34
122
  private _apiKey;
123
+ /**
124
+ * Only sub-classes can access the API key
125
+ */
35
126
  protected get apiKey(): string;
36
127
  constructor(apiKey: string);
37
128
  }