@memberjunction/ai-openai 2.33.0 → 2.34.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.
package/dist/models/openAI.d.ts
CHANGED
|
@@ -11,7 +11,30 @@ export declare class OpenAILLM extends BaseLLM {
|
|
|
11
11
|
* Read only getter method to get the OpenAI instance
|
|
12
12
|
*/
|
|
13
13
|
get OpenAI(): OpenAI;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* OpenAI supports streaming
|
|
16
|
+
*/
|
|
17
|
+
get SupportsStreaming(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Implementation of non-streaming chat completion for OpenAI
|
|
20
|
+
*/
|
|
21
|
+
protected nonStreamingChatCompletion(params: ChatParams): Promise<ChatResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Create a streaming request for OpenAI
|
|
24
|
+
*/
|
|
25
|
+
protected createStreamingRequest(params: ChatParams): Promise<any>;
|
|
26
|
+
/**
|
|
27
|
+
* Process a streaming chunk from OpenAI
|
|
28
|
+
*/
|
|
29
|
+
protected processStreamingChunk(chunk: any): {
|
|
30
|
+
content: string;
|
|
31
|
+
finishReason?: string;
|
|
32
|
+
usage?: any;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Create the final response from streaming results for OpenAI
|
|
36
|
+
*/
|
|
37
|
+
protected finalizeStreamingResponse(accumulatedContent: string | null | undefined, lastChunk: any | null | undefined, usage: any | null | undefined): ChatResult;
|
|
15
38
|
SummarizeText(params: SummarizeParams): Promise<SummarizeResult>;
|
|
16
39
|
ClassifyText(params: ClassifyParams): Promise<ClassifyResult>;
|
|
17
40
|
ConvertMJToOpenAIChatMessages(messages: ChatMessage[]): ChatCompletionMessageParam[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAI.d.ts","sourceRoot":"","sources":["../../src/models/openAI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAmB,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAA4C,eAAe,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"openAI.d.ts","sourceRoot":"","sources":["../../src/models/openAI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAmB,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAA4C,eAAe,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AACvO,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D;;GAEG;AACH,qBACa,SAAU,SAAQ,OAAO;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM;IAS1B;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAoB,iBAAiB,IAAI,OAAO,CAE/C;IAED;;OAEG;cACa,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAoDnF;;OAEG;cACa,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBxE;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG;QACzC,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,GAAG,CAAC;KACf;IAgBD;;OAEG;IACH,SAAS,CAAC,yBAAyB,CAC/B,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;IAiCA,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAmBhE,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAInE,6BAA6B,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,0BAA0B,EAAE;IAU3F;;;;;;;;;OASG;IACI,qBAAqB,CAAC,IAAI,EAAE,MAAM;CAY5C;AAED,wBAAgB,aAAa,SAE5B"}
|
package/dist/models/openAI.js
CHANGED
|
@@ -27,7 +27,16 @@ let OpenAILLM = class OpenAILLM extends ai_1.BaseLLM {
|
|
|
27
27
|
get OpenAI() {
|
|
28
28
|
return this._openAI;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* OpenAI supports streaming
|
|
32
|
+
*/
|
|
33
|
+
get SupportsStreaming() {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Implementation of non-streaming chat completion for OpenAI
|
|
38
|
+
*/
|
|
39
|
+
async nonStreamingChatCompletion(params) {
|
|
31
40
|
const messages = this.ConvertMJToOpenAIChatMessages(params.messages);
|
|
32
41
|
const startTime = new Date();
|
|
33
42
|
const openAIParams = {
|
|
@@ -74,6 +83,75 @@ let OpenAILLM = class OpenAILLM extends ai_1.BaseLLM {
|
|
|
74
83
|
exception: null
|
|
75
84
|
};
|
|
76
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Create a streaming request for OpenAI
|
|
88
|
+
*/
|
|
89
|
+
async createStreamingRequest(params) {
|
|
90
|
+
const messages = this.ConvertMJToOpenAIChatMessages(params.messages);
|
|
91
|
+
const openAIParams = {
|
|
92
|
+
model: params.model,
|
|
93
|
+
messages: messages,
|
|
94
|
+
temperature: params.temperature,
|
|
95
|
+
max_tokens: params.maxOutputTokens,
|
|
96
|
+
stream: true
|
|
97
|
+
};
|
|
98
|
+
// Set response format if specified
|
|
99
|
+
switch (params.responseFormat) {
|
|
100
|
+
case 'JSON':
|
|
101
|
+
openAIParams.response_format = { type: "json_object" };
|
|
102
|
+
break;
|
|
103
|
+
case 'ModelSpecific':
|
|
104
|
+
openAIParams.response_format = params.modelSpecificResponseFormat;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
return this.OpenAI.chat.completions.create(openAIParams);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Process a streaming chunk from OpenAI
|
|
111
|
+
*/
|
|
112
|
+
processStreamingChunk(chunk) {
|
|
113
|
+
// Handle potential null/undefined values safely
|
|
114
|
+
const content = chunk?.choices?.[0]?.delta?.content || '';
|
|
115
|
+
const usage = chunk?.usage || null;
|
|
116
|
+
return {
|
|
117
|
+
content,
|
|
118
|
+
finishReason: chunk?.choices?.[0]?.finish_reason,
|
|
119
|
+
usage: usage ? {
|
|
120
|
+
promptTokens: usage.prompt_tokens || 0,
|
|
121
|
+
completionTokens: usage.completion_tokens || 0,
|
|
122
|
+
totalTokens: (usage.prompt_tokens || 0) + (usage.completion_tokens || 0)
|
|
123
|
+
} : null
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Create the final response from streaming results for OpenAI
|
|
128
|
+
*/
|
|
129
|
+
finalizeStreamingResponse(accumulatedContent, lastChunk, usage) {
|
|
130
|
+
// Handle possible null/undefined values
|
|
131
|
+
const content = accumulatedContent || '';
|
|
132
|
+
const promptTokens = usage?.promptTokens || 0;
|
|
133
|
+
const completionTokens = usage?.completionTokens || 0;
|
|
134
|
+
// Create dates (will be overridden by base class)
|
|
135
|
+
const now = new Date();
|
|
136
|
+
// Create a proper ChatResult instance with constructor params
|
|
137
|
+
const result = new ai_1.ChatResult(true, now, now);
|
|
138
|
+
// Set all properties
|
|
139
|
+
result.data = {
|
|
140
|
+
choices: [{
|
|
141
|
+
message: {
|
|
142
|
+
role: 'assistant',
|
|
143
|
+
content: content
|
|
144
|
+
},
|
|
145
|
+
finish_reason: lastChunk?.choices?.[0]?.finish_reason || 'stop',
|
|
146
|
+
index: 0
|
|
147
|
+
}],
|
|
148
|
+
usage: new ai_1.ModelUsage(promptTokens, completionTokens)
|
|
149
|
+
};
|
|
150
|
+
result.statusText = 'success';
|
|
151
|
+
result.errorMessage = null;
|
|
152
|
+
result.exception = null;
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
77
155
|
async SummarizeText(params) {
|
|
78
156
|
const messages = this.ConvertMJToOpenAIChatMessages(params.messages);
|
|
79
157
|
const startTime = new Date();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAI.js","sourceRoot":"","sources":["../../src/models/openAI.ts"],"names":[],"mappings":";;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"openAI.js","sourceRoot":"","sources":["../../src/models/openAI.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ai-openai",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.34.1",
|
|
4
4
|
"description": "MemberJunction Wrapper for OpenAI AI Models",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"typescript": "^5.4.5"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@memberjunction/ai": "2.
|
|
23
|
-
"@memberjunction/global": "2.
|
|
22
|
+
"@memberjunction/ai": "2.34.1",
|
|
23
|
+
"@memberjunction/global": "2.34.1",
|
|
24
24
|
"openai": "4.83.0"
|
|
25
25
|
}
|
|
26
26
|
}
|