@langchain/google-common 0.0.5 → 0.0.6
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/utils/common.cjs +1 -0
- package/dist/utils/common.js +1 -0
- package/dist/utils/gemini.cjs +35 -5
- package/dist/utils/gemini.js +35 -5
- package/package.json +1 -1
package/dist/utils/common.cjs
CHANGED
|
@@ -11,6 +11,7 @@ function copyAIModelParamsInto(params, options, target) {
|
|
|
11
11
|
const model = options?.model ?? params?.model ?? target.model;
|
|
12
12
|
ret.modelName =
|
|
13
13
|
model ?? options?.modelName ?? params?.modelName ?? target.modelName;
|
|
14
|
+
ret.model = model;
|
|
14
15
|
ret.temperature =
|
|
15
16
|
options?.temperature ?? params?.temperature ?? target.temperature;
|
|
16
17
|
ret.maxOutputTokens =
|
package/dist/utils/common.js
CHANGED
|
@@ -7,6 +7,7 @@ export function copyAIModelParamsInto(params, options, target) {
|
|
|
7
7
|
const model = options?.model ?? params?.model ?? target.model;
|
|
8
8
|
ret.modelName =
|
|
9
9
|
model ?? options?.modelName ?? params?.modelName ?? target.modelName;
|
|
10
|
+
ret.model = model;
|
|
10
11
|
ret.temperature =
|
|
11
12
|
options?.temperature ?? params?.temperature ?? target.temperature;
|
|
12
13
|
ret.maxOutputTokens =
|
package/dist/utils/gemini.cjs
CHANGED
|
@@ -5,6 +5,15 @@ const uuid_1 = require("uuid");
|
|
|
5
5
|
const messages_1 = require("@langchain/core/messages");
|
|
6
6
|
const outputs_1 = require("@langchain/core/outputs");
|
|
7
7
|
const safety_js_1 = require("./safety.cjs");
|
|
8
|
+
const extractMimeType = (str) => {
|
|
9
|
+
if (str.startsWith("data:")) {
|
|
10
|
+
return {
|
|
11
|
+
mimeType: str.split(":")[1].split(";")[0],
|
|
12
|
+
data: str.split(",")[1],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
8
17
|
function messageContentText(content) {
|
|
9
18
|
if (content?.text && content?.text.length > 0) {
|
|
10
19
|
return {
|
|
@@ -22,12 +31,10 @@ function messageContentImageUrl(content) {
|
|
|
22
31
|
if (!url) {
|
|
23
32
|
throw new Error("Missing Image URL");
|
|
24
33
|
}
|
|
25
|
-
|
|
34
|
+
const mineTypeAndData = extractMimeType(url);
|
|
35
|
+
if (mineTypeAndData) {
|
|
26
36
|
return {
|
|
27
|
-
inlineData:
|
|
28
|
-
mimeType: url.split(":")[1].split(";")[0],
|
|
29
|
-
data: url.split(",")[1],
|
|
30
|
-
},
|
|
37
|
+
inlineData: mineTypeAndData,
|
|
31
38
|
};
|
|
32
39
|
}
|
|
33
40
|
else {
|
|
@@ -40,6 +47,27 @@ function messageContentImageUrl(content) {
|
|
|
40
47
|
};
|
|
41
48
|
}
|
|
42
49
|
}
|
|
50
|
+
function messageContentMedia(
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
|
+
content) {
|
|
53
|
+
if ("mimeType" in content && "data" in content) {
|
|
54
|
+
return {
|
|
55
|
+
inlineData: {
|
|
56
|
+
mimeType: content.mimeType,
|
|
57
|
+
data: content.data,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
else if ("mimeType" in content && "fileUri" in content) {
|
|
62
|
+
return {
|
|
63
|
+
fileData: {
|
|
64
|
+
mimeType: content.mimeType,
|
|
65
|
+
fileUri: content.fileUri,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
throw new Error("Invalid media content");
|
|
70
|
+
}
|
|
43
71
|
function messageContentToParts(content) {
|
|
44
72
|
// Convert a string to a text type MessageContent if needed
|
|
45
73
|
const messageContent = typeof content === "string"
|
|
@@ -65,6 +93,8 @@ function messageContentToParts(content) {
|
|
|
65
93
|
return messageContentImageUrl(content);
|
|
66
94
|
}
|
|
67
95
|
break;
|
|
96
|
+
case "media":
|
|
97
|
+
return messageContentMedia(content);
|
|
68
98
|
default:
|
|
69
99
|
throw new Error(`Unsupported type received while converting message to message parts`);
|
|
70
100
|
}
|
package/dist/utils/gemini.js
CHANGED
|
@@ -2,6 +2,15 @@ import { v4 as uuidv4 } from "uuid";
|
|
|
2
2
|
import { AIMessage, AIMessageChunk, isAIMessage, } from "@langchain/core/messages";
|
|
3
3
|
import { ChatGenerationChunk, } from "@langchain/core/outputs";
|
|
4
4
|
import { GoogleAISafetyError } from "./safety.js";
|
|
5
|
+
const extractMimeType = (str) => {
|
|
6
|
+
if (str.startsWith("data:")) {
|
|
7
|
+
return {
|
|
8
|
+
mimeType: str.split(":")[1].split(";")[0],
|
|
9
|
+
data: str.split(",")[1],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
};
|
|
5
14
|
function messageContentText(content) {
|
|
6
15
|
if (content?.text && content?.text.length > 0) {
|
|
7
16
|
return {
|
|
@@ -19,12 +28,10 @@ function messageContentImageUrl(content) {
|
|
|
19
28
|
if (!url) {
|
|
20
29
|
throw new Error("Missing Image URL");
|
|
21
30
|
}
|
|
22
|
-
|
|
31
|
+
const mineTypeAndData = extractMimeType(url);
|
|
32
|
+
if (mineTypeAndData) {
|
|
23
33
|
return {
|
|
24
|
-
inlineData:
|
|
25
|
-
mimeType: url.split(":")[1].split(";")[0],
|
|
26
|
-
data: url.split(",")[1],
|
|
27
|
-
},
|
|
34
|
+
inlineData: mineTypeAndData,
|
|
28
35
|
};
|
|
29
36
|
}
|
|
30
37
|
else {
|
|
@@ -37,6 +44,27 @@ function messageContentImageUrl(content) {
|
|
|
37
44
|
};
|
|
38
45
|
}
|
|
39
46
|
}
|
|
47
|
+
function messageContentMedia(
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
content) {
|
|
50
|
+
if ("mimeType" in content && "data" in content) {
|
|
51
|
+
return {
|
|
52
|
+
inlineData: {
|
|
53
|
+
mimeType: content.mimeType,
|
|
54
|
+
data: content.data,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
else if ("mimeType" in content && "fileUri" in content) {
|
|
59
|
+
return {
|
|
60
|
+
fileData: {
|
|
61
|
+
mimeType: content.mimeType,
|
|
62
|
+
fileUri: content.fileUri,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
throw new Error("Invalid media content");
|
|
67
|
+
}
|
|
40
68
|
export function messageContentToParts(content) {
|
|
41
69
|
// Convert a string to a text type MessageContent if needed
|
|
42
70
|
const messageContent = typeof content === "string"
|
|
@@ -62,6 +90,8 @@ export function messageContentToParts(content) {
|
|
|
62
90
|
return messageContentImageUrl(content);
|
|
63
91
|
}
|
|
64
92
|
break;
|
|
93
|
+
case "media":
|
|
94
|
+
return messageContentMedia(content);
|
|
65
95
|
default:
|
|
66
96
|
throw new Error(`Unsupported type received while converting message to message parts`);
|
|
67
97
|
}
|