llm-proxy 1.8.3 → 1.8.4
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.
|
@@ -9,92 +9,45 @@ class InputFormatAdapter {
|
|
|
9
9
|
static adaptMessages(messages, provider) {
|
|
10
10
|
var _a;
|
|
11
11
|
switch (provider) {
|
|
12
|
-
case types_1.Providers.OPENAI:
|
|
12
|
+
case types_1.Providers.OPENAI:
|
|
13
13
|
return {
|
|
14
14
|
// @ts-ignore: Ignore the any type in the msg
|
|
15
|
-
adaptedMessages: messages
|
|
16
|
-
|
|
17
|
-
// Skip 'function' role messages - they should have been converted to tool format earlier
|
|
15
|
+
adaptedMessages: messages.map((msg) => {
|
|
16
|
+
var _a, _b;
|
|
18
17
|
if (msg.role === "function") {
|
|
19
|
-
return
|
|
18
|
+
return {
|
|
19
|
+
role: msg.role,
|
|
20
|
+
content: (_a = msg.content) !== null && _a !== void 0 ? _a : "",
|
|
21
|
+
name: msg.name,
|
|
22
|
+
};
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
const adaptedMsg = {
|
|
24
|
+
return {
|
|
23
25
|
role: msg.role,
|
|
24
|
-
content: msg.content,
|
|
26
|
+
content: (_b = msg.content) !== null && _b !== void 0 ? _b : "function call",
|
|
25
27
|
};
|
|
26
|
-
|
|
27
|
-
if (msg.role === "assistant" && msg.tool_calls) {
|
|
28
|
-
adaptedMsg.tool_calls = msg.tool_calls;
|
|
29
|
-
// content can be null when tool_calls is present
|
|
30
|
-
if (adaptedMsg.content === undefined) {
|
|
31
|
-
adaptedMsg.content = null;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
else if (msg.role === "tool") {
|
|
35
|
-
// For tool role, preserve tool_call_id and name
|
|
36
|
-
adaptedMsg.tool_call_id = msg.tool_call_id;
|
|
37
|
-
adaptedMsg.name = msg.name;
|
|
38
|
-
// Ensure content is a string for tool messages
|
|
39
|
-
if (!adaptedMsg.content) {
|
|
40
|
-
adaptedMsg.content = "";
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
// For other messages, ensure content is not null/undefined
|
|
45
|
-
if (adaptedMsg.content === null ||
|
|
46
|
-
adaptedMsg.content === undefined) {
|
|
47
|
-
adaptedMsg.content = "";
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return adaptedMsg;
|
|
51
|
-
})
|
|
52
|
-
.filter(Boolean),
|
|
28
|
+
}),
|
|
53
29
|
};
|
|
54
|
-
|
|
55
|
-
case types_1.Providers.OPENAI_COMPATIBLE_PROVIDER: {
|
|
30
|
+
case types_1.Providers.OPENAI_COMPATIBLE_PROVIDER:
|
|
56
31
|
return {
|
|
57
32
|
// @ts-ignore: Ignore the any type in the msg
|
|
58
|
-
adaptedMessages: messages
|
|
59
|
-
|
|
60
|
-
// Skip 'function' role messages - they should have been converted to tool format earlier
|
|
33
|
+
adaptedMessages: messages.map((msg) => {
|
|
34
|
+
var _a, _b;
|
|
61
35
|
if (msg.role === "function") {
|
|
62
|
-
return
|
|
36
|
+
return {
|
|
37
|
+
role: msg.role,
|
|
38
|
+
content: (_a = msg.content) !== null && _a !== void 0 ? _a : "",
|
|
39
|
+
...(msg.thought_signature && {
|
|
40
|
+
thought_signature: msg.thought_signature,
|
|
41
|
+
}),
|
|
42
|
+
name: msg.name,
|
|
43
|
+
};
|
|
63
44
|
}
|
|
64
|
-
|
|
65
|
-
const adaptedMsg = {
|
|
45
|
+
return {
|
|
66
46
|
role: msg.role,
|
|
67
|
-
content: msg.content,
|
|
47
|
+
content: (_b = msg.content) !== null && _b !== void 0 ? _b : msg.function_call,
|
|
68
48
|
};
|
|
69
|
-
|
|
70
|
-
if (msg.role === "assistant" && msg.tool_calls) {
|
|
71
|
-
adaptedMsg.tool_calls = msg.tool_calls;
|
|
72
|
-
// content can be null when tool_calls is present
|
|
73
|
-
if (adaptedMsg.content === undefined) {
|
|
74
|
-
adaptedMsg.content = null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else if (msg.role === "tool") {
|
|
78
|
-
// For tool role, preserve tool_call_id and name
|
|
79
|
-
adaptedMsg.tool_call_id = msg.tool_call_id;
|
|
80
|
-
adaptedMsg.name = msg.name;
|
|
81
|
-
// Ensure content is a string for tool messages
|
|
82
|
-
if (!adaptedMsg.content) {
|
|
83
|
-
adaptedMsg.content = "";
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
// For other messages, ensure content is not null/undefined
|
|
88
|
-
if (adaptedMsg.content === null ||
|
|
89
|
-
adaptedMsg.content === undefined) {
|
|
90
|
-
adaptedMsg.content = "";
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return adaptedMsg;
|
|
94
|
-
})
|
|
95
|
-
.filter(Boolean),
|
|
49
|
+
}),
|
|
96
50
|
};
|
|
97
|
-
}
|
|
98
51
|
case types_1.Providers.ANTHROPIC_BEDROCK: {
|
|
99
52
|
if (!messages.length) {
|
|
100
53
|
throw new Error("Messages array cannot be empty for Anthropic.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-proxy",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.4",
|
|
4
4
|
"description": "An LLM Proxy that allows the user to interact with different language models from different providers using unified request and response formats.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|