@memberjunction/ai-gemini 0.9.12 → 0.9.14
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 +1 -0
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { BaseLLM, ChatMessage, ChatParams, ChatResult, SummarizeParams, Summariz
|
|
|
3
3
|
export declare class GeminiLLM extends BaseLLM {
|
|
4
4
|
private static _gemini;
|
|
5
5
|
constructor(apiKey: string);
|
|
6
|
+
protected geminiMessageSpacing(messages: ChatMessage[]): ChatMessage[];
|
|
6
7
|
ChatCompletion(params: ChatParams): Promise<ChatResult>;
|
|
7
8
|
SummarizeText(params: SummarizeParams): Promise<SummarizeResult>;
|
|
8
9
|
ClassifyText(params: any): Promise<any>;
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,24 @@ let GeminiLLM = GeminiLLM_1 = class GeminiLLM extends ai_1.BaseLLM {
|
|
|
20
20
|
GeminiLLM_1._gemini = new generative_ai_1.GoogleGenerativeAI(apiKey);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
geminiMessageSpacing(messages) {
|
|
24
|
+
// this method is simple, it makes sure that we alternate messages between user and assistant, otherwise Anthropic will
|
|
25
|
+
// have a problem. If we find two user messages in a row, we insert an assistant message between them with just "OK"
|
|
26
|
+
const result = [];
|
|
27
|
+
let lastRole = "assistant";
|
|
28
|
+
for (let i = 0; i < messages.length; i++) {
|
|
29
|
+
if (messages[i].role === lastRole) {
|
|
30
|
+
result.push({
|
|
31
|
+
role: "assistant", // we are using the ChatMessage type from the MJ package, so we need to use the role "assistant" instead of "model"
|
|
32
|
+
// later on the role will be converted to "model" in the MapMJMessageToGeminiHistoryEntry method
|
|
33
|
+
content: "OK"
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
result.push(messages[i]);
|
|
37
|
+
lastRole = messages[i].role;
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
23
41
|
async ChatCompletion(params) {
|
|
24
42
|
try {
|
|
25
43
|
// For text-only input, use the gemini-pro model
|
|
@@ -29,8 +47,9 @@ let GeminiLLM = GeminiLLM_1 = class GeminiLLM extends ai_1.BaseLLM {
|
|
|
29
47
|
};
|
|
30
48
|
const model = GeminiLLM_1._gemini.getGenerativeModel({ model: params.model || "gemini-pro", generationConfig: config });
|
|
31
49
|
const allMessagesButLast = params.messages.slice(0, -1);
|
|
50
|
+
const tempMessages = this.geminiMessageSpacing(allMessagesButLast);
|
|
32
51
|
const chat = model.startChat({
|
|
33
|
-
history:
|
|
52
|
+
history: tempMessages.map(m => GeminiLLM_1.MapMJMessageToGeminiHistoryEntry(m))
|
|
34
53
|
});
|
|
35
54
|
const latestMessage = params.messages[params.messages.length - 1].content;
|
|
36
55
|
const result = await chat.sendMessage(latestMessage);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,uBAAuB;AACvB,yDAA+E;AAE/E,WAAW;AACX,2CAAoH;AACpH,mDAAuD;AAGhD,IAAM,SAAS,iBAAf,MAAM,SAAU,SAAQ,YAAO;IAGlC,YAAY,MAAc;QACtB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAS,CAAC,OAAO,EAAE,CAAC;YACrB,WAAS,CAAC,OAAO,GAAG,IAAI,kCAAkB,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;
|
|
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": "0.9.
|
|
3
|
+
"version": "0.9.14",
|
|
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.3.3"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@memberjunction/ai": "^0.9.
|
|
23
|
-
"@memberjunction/global": "^0.9.
|
|
22
|
+
"@memberjunction/ai": "^0.9.156",
|
|
23
|
+
"@memberjunction/global": "^0.9.148",
|
|
24
24
|
"@google/generative-ai": "~0.2.1"
|
|
25
25
|
}
|
|
26
26
|
}
|