@memberjunction/ai-gemini 2.37.1 → 2.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -25
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/readme.md +9 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GoogleGenAI } from "@google/genai";
|
|
2
|
+
interface TextPart {
|
|
3
|
+
text: string;
|
|
4
|
+
}
|
|
5
|
+
interface Content {
|
|
6
|
+
role: 'user' | 'model';
|
|
7
|
+
parts: TextPart[];
|
|
8
|
+
}
|
|
2
9
|
import { BaseLLM, ChatMessage, ChatParams, ChatResult, SummarizeParams, SummarizeResult } from "@memberjunction/ai";
|
|
3
10
|
export declare class GeminiLLM extends BaseLLM {
|
|
4
11
|
private _gemini;
|
|
@@ -6,7 +13,7 @@ export declare class GeminiLLM extends BaseLLM {
|
|
|
6
13
|
/**
|
|
7
14
|
* Read only getter method to get the Gemini client instance
|
|
8
15
|
*/
|
|
9
|
-
get GeminiClient():
|
|
16
|
+
get GeminiClient(): GoogleGenAI;
|
|
10
17
|
/**
|
|
11
18
|
* Gemini supports streaming
|
|
12
19
|
*/
|
|
@@ -37,4 +44,5 @@ export declare class GeminiLLM extends BaseLLM {
|
|
|
37
44
|
static MapMJMessageToGeminiHistoryEntry(message: ChatMessage): Content;
|
|
38
45
|
}
|
|
39
46
|
export declare function LoadGeminiLLM(): void;
|
|
47
|
+
export {};
|
|
40
48
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,UAAU,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,OAAO;IACb,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACrB;AAGD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AAG5I,qBACa,SAAU,SAAQ,OAAO;IAClC,OAAO,CAAC,OAAO,CAAc;gBAEjB,MAAM,EAAE,MAAM;IAK1B;;OAEG;IACH,IAAW,YAAY,IAAI,WAAW,CAErC;IAED;;OAEG;IACH,IAAoB,iBAAiB,IAAI,OAAO,CAE/C;IAED,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAmB9D;;OAEG;cACa,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA2EnF;;OAEG;cACa,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IA+BxE;;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;IAsBD;;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;IAgCb,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAGhE,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAIzB,gCAAgC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;CAShF;AAGD,wBAAgB,aAAa,SAE5B"}
|
package/dist/index.js
CHANGED
|
@@ -9,14 +9,14 @@ var GeminiLLM_1;
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.LoadGeminiLLM = exports.GeminiLLM = void 0;
|
|
11
11
|
// Google Gemini Import
|
|
12
|
-
const
|
|
12
|
+
const genai_1 = require("@google/genai");
|
|
13
13
|
// MJ stuff
|
|
14
14
|
const ai_1 = require("@memberjunction/ai");
|
|
15
15
|
const global_1 = require("@memberjunction/global");
|
|
16
16
|
let GeminiLLM = GeminiLLM_1 = class GeminiLLM extends ai_1.BaseLLM {
|
|
17
17
|
constructor(apiKey) {
|
|
18
18
|
super(apiKey);
|
|
19
|
-
this._gemini = new
|
|
19
|
+
this._gemini = new genai_1.GoogleGenAI({ apiKey });
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Read only getter method to get the Gemini client instance
|
|
@@ -55,19 +55,27 @@ let GeminiLLM = GeminiLLM_1 = class GeminiLLM extends ai_1.BaseLLM {
|
|
|
55
55
|
try {
|
|
56
56
|
// For text-only input, use the gemini-pro model
|
|
57
57
|
const startTime = new Date();
|
|
58
|
-
const
|
|
59
|
-
temperature: params.temperature || 0.5,
|
|
60
|
-
responseMimeType: params.responseFormat
|
|
61
|
-
};
|
|
62
|
-
const model = this.GeminiClient.getGenerativeModel({ model: params.model || "gemini-pro", generationConfig: config }, { apiVersion: "v1beta" });
|
|
58
|
+
const modelName = params.model || "gemini-pro";
|
|
63
59
|
const allMessagesButLast = params.messages.slice(0, params.messages.length - 1);
|
|
64
60
|
const convertedMessages = allMessagesButLast.map(m => GeminiLLM_1.MapMJMessageToGeminiHistoryEntry(m));
|
|
65
61
|
const tempMessages = this.geminiMessageSpacing(convertedMessages);
|
|
66
|
-
|
|
62
|
+
// Create the model and then chat
|
|
63
|
+
const modelOptions = {
|
|
64
|
+
temperature: params.temperature || 0.5,
|
|
65
|
+
responseType: params.responseFormat,
|
|
66
|
+
};
|
|
67
|
+
// Use the new API structure
|
|
68
|
+
const chat = this.GeminiClient.chats.create({
|
|
69
|
+
model: modelName,
|
|
67
70
|
history: tempMessages
|
|
68
71
|
});
|
|
72
|
+
// Send the latest message
|
|
69
73
|
const latestMessage = params.messages[params.messages.length - 1].content;
|
|
70
|
-
const result = await chat.sendMessage(
|
|
74
|
+
const result = await chat.sendMessage({
|
|
75
|
+
message: latestMessage,
|
|
76
|
+
...modelOptions
|
|
77
|
+
});
|
|
78
|
+
const responseContent = result.candidates?.[0]?.content?.parts?.find(part => part.text)?.text || '';
|
|
71
79
|
const endTime = new Date();
|
|
72
80
|
return {
|
|
73
81
|
success: true,
|
|
@@ -77,7 +85,7 @@ let GeminiLLM = GeminiLLM_1 = class GeminiLLM extends ai_1.BaseLLM {
|
|
|
77
85
|
timeElapsed: endTime.getTime() - startTime.getTime(),
|
|
78
86
|
data: {
|
|
79
87
|
choices: [{
|
|
80
|
-
message: { role: 'assistant', content:
|
|
88
|
+
message: { role: 'assistant', content: responseContent },
|
|
81
89
|
finish_reason: "completed",
|
|
82
90
|
index: 0
|
|
83
91
|
}],
|
|
@@ -115,32 +123,44 @@ let GeminiLLM = GeminiLLM_1 = class GeminiLLM extends ai_1.BaseLLM {
|
|
|
115
123
|
* Create a streaming request for Gemini
|
|
116
124
|
*/
|
|
117
125
|
async createStreamingRequest(params) {
|
|
118
|
-
const
|
|
119
|
-
temperature: params.temperature || 0.5,
|
|
120
|
-
responseMimeType: params.responseFormat
|
|
121
|
-
};
|
|
122
|
-
const model = this.GeminiClient.getGenerativeModel({
|
|
123
|
-
model: params.model || "gemini-pro",
|
|
124
|
-
generationConfig: config
|
|
125
|
-
}, { apiVersion: "v1beta" });
|
|
126
|
+
const modelName = params.model || "gemini-pro";
|
|
126
127
|
const allMessagesButLast = params.messages.slice(0, params.messages.length - 1);
|
|
127
128
|
const convertedMessages = allMessagesButLast.map(m => GeminiLLM_1.MapMJMessageToGeminiHistoryEntry(m));
|
|
128
129
|
const tempMessages = this.geminiMessageSpacing(convertedMessages);
|
|
129
|
-
|
|
130
|
+
// Create the model and then chat
|
|
131
|
+
const modelOptions = {
|
|
132
|
+
temperature: params.temperature || 0.5,
|
|
133
|
+
responseType: params.responseFormat,
|
|
134
|
+
};
|
|
135
|
+
// Use the new API structure
|
|
136
|
+
const chat = this.GeminiClient.chats.create({
|
|
137
|
+
model: modelName,
|
|
130
138
|
history: tempMessages
|
|
131
139
|
});
|
|
132
140
|
const latestMessage = params.messages[params.messages.length - 1].content;
|
|
133
|
-
//
|
|
134
|
-
const streamResult = await chat.sendMessageStream(
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
// Send message with streaming
|
|
142
|
+
const streamResult = await chat.sendMessageStream({
|
|
143
|
+
message: latestMessage,
|
|
144
|
+
...modelOptions
|
|
145
|
+
});
|
|
146
|
+
// Return the stream for the for-await loop to work
|
|
147
|
+
return streamResult;
|
|
137
148
|
}
|
|
138
149
|
/**
|
|
139
150
|
* Process a streaming chunk from Gemini
|
|
140
151
|
*/
|
|
141
152
|
processStreamingChunk(chunk) {
|
|
142
|
-
//
|
|
143
|
-
|
|
153
|
+
// Extract text from the chunk with the new SDK
|
|
154
|
+
let content = '';
|
|
155
|
+
if (chunk.candidates &&
|
|
156
|
+
chunk.candidates[0] &&
|
|
157
|
+
chunk.candidates[0].content &&
|
|
158
|
+
chunk.candidates[0].content[0] &&
|
|
159
|
+
chunk.candidates[0].content[0].parts) {
|
|
160
|
+
// Find the text part
|
|
161
|
+
const textPart = chunk.candidates[0].content[0].parts.find((part) => part.text);
|
|
162
|
+
content = textPart?.text || '';
|
|
163
|
+
}
|
|
144
164
|
// Gemini doesn't provide finish reason or usage in chunks
|
|
145
165
|
return {
|
|
146
166
|
content,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,uBAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ai-gemini",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.39.0",
|
|
4
4
|
"description": "MemberJunction Wrapper for Google Gemini 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.
|
|
24
|
-
"@google/
|
|
22
|
+
"@memberjunction/ai": "2.39.0",
|
|
23
|
+
"@memberjunction/global": "2.39.0",
|
|
24
|
+
"@google/genai": "0.14.0"
|
|
25
25
|
}
|
|
26
26
|
}
|
package/readme.md
CHANGED
|
@@ -4,7 +4,7 @@ A comprehensive wrapper for Google's Gemini AI models that seamlessly integrates
|
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Google Gemini Integration**: Connect to Google's state-of-the-art Gemini models
|
|
7
|
+
- **Google Gemini Integration**: Connect to Google's state-of-the-art Gemini models using the official @google/genai SDK
|
|
8
8
|
- **Standardized Interface**: Implements MemberJunction's BaseLLM abstract class
|
|
9
9
|
- **Message Formatting**: Handles conversion between MemberJunction and Gemini message formats
|
|
10
10
|
- **Error Handling**: Robust error handling with detailed reporting
|
|
@@ -68,13 +68,15 @@ try {
|
|
|
68
68
|
### Direct Access to Gemini Client
|
|
69
69
|
|
|
70
70
|
```typescript
|
|
71
|
-
// Access the underlying
|
|
71
|
+
// Access the underlying GoogleGenAI client for advanced usage
|
|
72
72
|
const geminiClient = geminiLLM.GeminiClient;
|
|
73
73
|
|
|
74
74
|
// Use the client directly if needed
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
const result = await geminiClient.models.generateContent({
|
|
76
|
+
model: 'gemini-pro',
|
|
77
|
+
contents: 'Tell me a short joke about programming'
|
|
78
|
+
});
|
|
79
|
+
console.log(result.candidates[0].content.parts[0].text);
|
|
78
80
|
```
|
|
79
81
|
|
|
80
82
|
## Supported Models
|
|
@@ -101,7 +103,7 @@ new GeminiLLM(apiKey: string)
|
|
|
101
103
|
|
|
102
104
|
#### Properties
|
|
103
105
|
|
|
104
|
-
- `GeminiClient`: (read-only) Returns the underlying
|
|
106
|
+
- `GeminiClient`: (read-only) Returns the underlying GoogleGenAI client instance
|
|
105
107
|
|
|
106
108
|
#### Methods
|
|
107
109
|
|
|
@@ -169,7 +171,7 @@ Future implementations may include:
|
|
|
169
171
|
|
|
170
172
|
## Dependencies
|
|
171
173
|
|
|
172
|
-
- `@google/
|
|
174
|
+
- `@google/genai`: Official Google GenAI SDK (replaces the deprecated @google/generative-ai)
|
|
173
175
|
- `@memberjunction/ai`: MemberJunction AI core framework
|
|
174
176
|
- `@memberjunction/global`: MemberJunction global utilities
|
|
175
177
|
|