llm-proxy 1.5.4 → 1.7.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 +4 -0
- package/dist/index.js +21 -3
- package/dist/index.js.map +1 -1
- package/dist/middleware/InputFormatAdapter.js +19 -18
- package/dist/middleware/InputFormatAdapter.js.map +1 -1
- package/dist/middleware/OutputFormatAdapter.d.ts +1 -1
- package/dist/middleware/OutputFormatAdapter.js +21 -20
- package/dist/middleware/OutputFormatAdapter.js.map +1 -1
- package/dist/middleware/ProviderFinder.d.ts +1 -1
- package/dist/middleware/ProviderFinder.js +4 -1
- package/dist/middleware/ProviderFinder.js.map +1 -1
- package/dist/services/OpenAICompatibleService.d.ts +22 -0
- package/dist/services/OpenAICompatibleService.js +58 -0
- package/dist/services/OpenAICompatibleService.js.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -26,11 +26,14 @@ const ProviderFinder_1 = __importDefault(require("./middleware/ProviderFinder"))
|
|
|
26
26
|
const InputFormatAdapter_1 = __importDefault(require("./middleware/InputFormatAdapter"));
|
|
27
27
|
const OutputFormatAdapter_1 = __importDefault(require("./middleware/OutputFormatAdapter"));
|
|
28
28
|
const AwsBedrockLlama3Service_1 = __importDefault(require("./services/AwsBedrockLlama3Service"));
|
|
29
|
+
const OpenAICompatibleService_1 = __importDefault(require("./services/OpenAICompatibleService"));
|
|
29
30
|
// Main function for non-streaming requests
|
|
30
31
|
async function generateLLMResponse(params) {
|
|
31
32
|
const { messages, model, functions, max_tokens, temperature, credentials } = params;
|
|
33
|
+
const { openAICompatibleProviderConfig } = credentials;
|
|
34
|
+
const { openAICompatibleProviderKey, baseUrl } = openAICompatibleProviderConfig || {};
|
|
32
35
|
// Step 1: Identify the provider based on the model
|
|
33
|
-
const provider = ProviderFinder_1.default.getProvider(model);
|
|
36
|
+
const provider = ProviderFinder_1.default.getProvider(model, baseUrl);
|
|
34
37
|
// Initialize the correct service based on the provider
|
|
35
38
|
let service;
|
|
36
39
|
if (provider === types_1.Providers.OPENAI) {
|
|
@@ -53,6 +56,12 @@ async function generateLLMResponse(params) {
|
|
|
53
56
|
}
|
|
54
57
|
service = new AwsBedrockLlama3Service_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
55
58
|
}
|
|
59
|
+
else if (provider === types_1.Providers.OPENAI_COMPATIBLE_PROVIDER) {
|
|
60
|
+
if (!openAICompatibleProviderKey || !baseUrl) {
|
|
61
|
+
return Promise.reject(new Error("OpenAI Compatible Provider key and base URL are required for OpenAI Compatible models."));
|
|
62
|
+
}
|
|
63
|
+
service = new OpenAICompatibleService_1.default(openAICompatibleProviderKey, baseUrl);
|
|
64
|
+
}
|
|
56
65
|
else {
|
|
57
66
|
return Promise.reject(new Error("Unsupported provider 4"));
|
|
58
67
|
}
|
|
@@ -68,7 +77,8 @@ async function generateLLMResponse(params) {
|
|
|
68
77
|
systemPrompt: systemPrompt || "",
|
|
69
78
|
});
|
|
70
79
|
// Step 4: Adapt the response if needed
|
|
71
|
-
const adaptedResponse = provider === types_1.Providers.OPENAI
|
|
80
|
+
const adaptedResponse = provider === types_1.Providers.OPENAI ||
|
|
81
|
+
provider === types_1.Providers.OPENAI_COMPATIBLE_PROVIDER
|
|
72
82
|
? response
|
|
73
83
|
: OutputFormatAdapter_1.default.adaptResponse({
|
|
74
84
|
response,
|
|
@@ -82,8 +92,10 @@ async function generateLLMResponse(params) {
|
|
|
82
92
|
// Main function for streaming requests
|
|
83
93
|
async function generateLLMStreamResponse(params) {
|
|
84
94
|
const { messages, model, functions, max_tokens, temperature, credentials } = params;
|
|
95
|
+
const { openAICompatibleProviderConfig } = credentials;
|
|
96
|
+
const { openAICompatibleProviderKey, baseUrl } = openAICompatibleProviderConfig || {};
|
|
85
97
|
// Step 1: Identify the provider based on the model
|
|
86
|
-
const provider = ProviderFinder_1.default.getProvider(model);
|
|
98
|
+
const provider = ProviderFinder_1.default.getProvider(model, baseUrl);
|
|
87
99
|
// Initialize the correct service based on the provider
|
|
88
100
|
let service;
|
|
89
101
|
if (provider === types_1.Providers.OPENAI) {
|
|
@@ -106,6 +118,12 @@ async function generateLLMStreamResponse(params) {
|
|
|
106
118
|
}
|
|
107
119
|
service = new AwsBedrockLlama3Service_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
108
120
|
}
|
|
121
|
+
else if (provider === types_1.Providers.OPENAI_COMPATIBLE_PROVIDER) {
|
|
122
|
+
if (!openAICompatibleProviderKey || !baseUrl) {
|
|
123
|
+
return Promise.reject(new Error("OpenAI Compatible Provider key and base URL are required for OpenAI Compatible models."));
|
|
124
|
+
}
|
|
125
|
+
service = new OpenAICompatibleService_1.default(openAICompatibleProviderKey, baseUrl);
|
|
126
|
+
}
|
|
109
127
|
else {
|
|
110
128
|
return Promise.reject(new Error("Unsupported provider"));
|
|
111
129
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,22 +10,23 @@ class InputFormatAdapter {
|
|
|
10
10
|
var _a;
|
|
11
11
|
switch (provider) {
|
|
12
12
|
case types_1.Providers.OPENAI:
|
|
13
|
+
case types_1.Providers.OPENAI_COMPATIBLE_PROVIDER:
|
|
13
14
|
return {
|
|
14
15
|
// @ts-ignore: Ignore the any type in the msg
|
|
15
|
-
adaptedMessages: messages.map(
|
|
16
|
+
adaptedMessages: messages.map(msg => {
|
|
16
17
|
var _a, _b;
|
|
17
18
|
if (msg.role === "function") {
|
|
18
19
|
return {
|
|
19
20
|
role: msg.role,
|
|
20
21
|
content: (_a = msg.content) !== null && _a !== void 0 ? _a : "",
|
|
21
|
-
name: msg.name
|
|
22
|
+
name: msg.name
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
return {
|
|
25
26
|
role: msg.role,
|
|
26
|
-
content: (_b = msg.content) !== null && _b !== void 0 ? _b : "function call"
|
|
27
|
+
content: (_b = msg.content) !== null && _b !== void 0 ? _b : "function call"
|
|
27
28
|
};
|
|
28
|
-
})
|
|
29
|
+
})
|
|
29
30
|
};
|
|
30
31
|
case types_1.Providers.ANTHROPIC_BEDROCK: {
|
|
31
32
|
if (!messages.length) {
|
|
@@ -39,7 +40,7 @@ class InputFormatAdapter {
|
|
|
39
40
|
const systemPrompt = (_a = firstMessage.content) !== null && _a !== void 0 ? _a : "";
|
|
40
41
|
const adaptedMessages = [];
|
|
41
42
|
// @ts-ignore: Ignore the any type in the msg
|
|
42
|
-
restMessages.forEach(
|
|
43
|
+
restMessages.forEach(msg => {
|
|
43
44
|
var _a, _b;
|
|
44
45
|
if (msg.role !== "user" && msg.role !== "assistant") {
|
|
45
46
|
// Add the "empty" message before the current one
|
|
@@ -48,9 +49,9 @@ class InputFormatAdapter {
|
|
|
48
49
|
content: [
|
|
49
50
|
{
|
|
50
51
|
type: types_1.BedrockAnthropicContentType.TEXT,
|
|
51
|
-
text: ":"
|
|
52
|
-
}
|
|
53
|
-
]
|
|
52
|
+
text: ":"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
54
55
|
});
|
|
55
56
|
// Change the role to "assistant" for the current message
|
|
56
57
|
adaptedMessages.push({
|
|
@@ -58,9 +59,9 @@ class InputFormatAdapter {
|
|
|
58
59
|
content: [
|
|
59
60
|
{
|
|
60
61
|
type: types_1.BedrockAnthropicContentType.TEXT,
|
|
61
|
-
text: (_a = msg.content) !== null && _a !== void 0 ? _a : ""
|
|
62
|
-
}
|
|
63
|
-
]
|
|
62
|
+
text: (_a = msg.content) !== null && _a !== void 0 ? _a : ""
|
|
63
|
+
}
|
|
64
|
+
]
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
else {
|
|
@@ -70,9 +71,9 @@ class InputFormatAdapter {
|
|
|
70
71
|
content: [
|
|
71
72
|
{
|
|
72
73
|
type: types_1.BedrockAnthropicContentType.TEXT,
|
|
73
|
-
text: (_b = msg.content) !== null && _b !== void 0 ? _b : msg.function_call.arguments
|
|
74
|
-
}
|
|
75
|
-
]
|
|
74
|
+
text: (_b = msg.content) !== null && _b !== void 0 ? _b : msg.function_call.arguments
|
|
75
|
+
}
|
|
76
|
+
]
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
79
|
});
|
|
@@ -85,9 +86,9 @@ class InputFormatAdapter {
|
|
|
85
86
|
content: [
|
|
86
87
|
{
|
|
87
88
|
type: types_1.BedrockAnthropicContentType.TEXT,
|
|
88
|
-
text: ":"
|
|
89
|
-
}
|
|
90
|
-
]
|
|
89
|
+
text: ":"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
91
92
|
});
|
|
92
93
|
i += 1; // Skip the inserted message
|
|
93
94
|
}
|
|
@@ -97,7 +98,7 @@ class InputFormatAdapter {
|
|
|
97
98
|
case types_1.Providers.LLAMA_3_1_BEDROCK: {
|
|
98
99
|
const adaptedMessages = (0, openAIToLlamaMessage_1.default)(messages);
|
|
99
100
|
return {
|
|
100
|
-
adaptedMessages
|
|
101
|
+
adaptedMessages
|
|
101
102
|
};
|
|
102
103
|
}
|
|
103
104
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":";;;;;AAAA,oCAMkB;AAClB,iHAAyF;AAEzF,MAAqB,kBAAkB;IACrC,MAAM,CAAC,aAAa,CAClB,QAAa,EACb,QAAmB;;QAKnB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,iBAAS,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export default class OutputFormatAdapter {
|
|
|
4
4
|
private static toolArguments;
|
|
5
5
|
private static model;
|
|
6
6
|
private static toolName;
|
|
7
|
-
static adaptResponse({ response, provider, isStream, isFunctionCall
|
|
7
|
+
static adaptResponse({ response, provider, isStream, isFunctionCall }: {
|
|
8
8
|
response: any;
|
|
9
9
|
provider: Providers;
|
|
10
10
|
isStream: boolean;
|
|
@@ -8,13 +8,14 @@ const convertLlamaToOpenAINonStream_1 = __importDefault(require("../utils/output
|
|
|
8
8
|
const convertLlamaToOpenAIStream_1 = __importDefault(require("../utils/outputFormatAdapterUtils/convertLlamaToOpenAIStream"));
|
|
9
9
|
const convertLlamaToOpenAIStreamToolCall_1 = __importDefault(require("../utils/outputFormatAdapterUtils/convertLlamaToOpenAIStreamToolCall"));
|
|
10
10
|
class OutputFormatAdapter {
|
|
11
|
-
static async adaptResponse({ response, provider, isStream, isFunctionCall
|
|
11
|
+
static async adaptResponse({ response, provider, isStream, isFunctionCall }) {
|
|
12
12
|
if (!response) {
|
|
13
13
|
throw new Error("Response object is null or undefined");
|
|
14
14
|
}
|
|
15
15
|
try {
|
|
16
16
|
switch (provider) {
|
|
17
17
|
case types_1.Providers.OPENAI:
|
|
18
|
+
case types_1.Providers.OPENAI_COMPATIBLE_PROVIDER:
|
|
18
19
|
return response;
|
|
19
20
|
case types_1.Providers.ANTHROPIC_BEDROCK:
|
|
20
21
|
if (!isStream) {
|
|
@@ -49,10 +50,10 @@ class OutputFormatAdapter {
|
|
|
49
50
|
index,
|
|
50
51
|
message: {
|
|
51
52
|
role: this.mapRole(contentBlock),
|
|
52
|
-
content: this.extractContent(contentBlock)
|
|
53
|
+
content: this.extractContent(contentBlock)
|
|
53
54
|
},
|
|
54
55
|
logprobs: null,
|
|
55
|
-
finish_reason: response.stop_reason || null
|
|
56
|
+
finish_reason: response.stop_reason || null
|
|
56
57
|
})),
|
|
57
58
|
usage: {
|
|
58
59
|
prompt_tokens: ((_a = response.usage) === null || _a === void 0 ? void 0 : _a.input_tokens) || 0,
|
|
@@ -60,9 +61,9 @@ class OutputFormatAdapter {
|
|
|
60
61
|
total_tokens: (((_c = response.usage) === null || _c === void 0 ? void 0 : _c.input_tokens) || 0) +
|
|
61
62
|
(((_d = response.usage) === null || _d === void 0 ? void 0 : _d.output_tokens) || 0),
|
|
62
63
|
prompt_tokens_details: { cached_tokens: 0 },
|
|
63
|
-
completion_tokens_details: { reasoning_tokens: 0 }
|
|
64
|
+
completion_tokens_details: { reasoning_tokens: 0 }
|
|
64
65
|
},
|
|
65
|
-
system_fingerprint: response.system_fingerprint || "default_fingerprint"
|
|
66
|
+
system_fingerprint: response.system_fingerprint || "default_fingerprint"
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
static mapRole(content) {
|
|
@@ -145,12 +146,12 @@ class OutputFormatAdapter {
|
|
|
145
146
|
chunk.type === "content_block_delta" &&
|
|
146
147
|
((_a = chunk.delta) === null || _a === void 0 ? void 0 : _a.type) === "input_json_delta"
|
|
147
148
|
? (_b = chunk.delta) === null || _b === void 0 ? void 0 : _b.partial_json
|
|
148
|
-
: this.toolArguments.join(", ")
|
|
149
|
-
}
|
|
149
|
+
: this.toolArguments.join(", ")
|
|
150
|
+
}
|
|
150
151
|
},
|
|
151
152
|
logprobs: null,
|
|
152
|
-
finish_reason: isStop ? "stop" : null
|
|
153
|
-
}
|
|
153
|
+
finish_reason: isStop ? "stop" : null
|
|
154
|
+
}
|
|
154
155
|
],
|
|
155
156
|
usage: isStop
|
|
156
157
|
? {
|
|
@@ -159,13 +160,13 @@ class OutputFormatAdapter {
|
|
|
159
160
|
total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) +
|
|
160
161
|
((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
|
|
161
162
|
prompt_tokens_details: {
|
|
162
|
-
cached_tokens: 0
|
|
163
|
+
cached_tokens: 0
|
|
163
164
|
},
|
|
164
165
|
completion_tokens_details: {
|
|
165
|
-
reasoning_tokens: 0
|
|
166
|
-
}
|
|
166
|
+
reasoning_tokens: 0
|
|
167
|
+
}
|
|
167
168
|
}
|
|
168
|
-
: null
|
|
169
|
+
: null
|
|
169
170
|
};
|
|
170
171
|
}
|
|
171
172
|
static createNonToolUseResponse(metrics, isStop, chunk) {
|
|
@@ -180,11 +181,11 @@ class OutputFormatAdapter {
|
|
|
180
181
|
{
|
|
181
182
|
index: 0,
|
|
182
183
|
delta: {
|
|
183
|
-
content
|
|
184
|
+
content
|
|
184
185
|
},
|
|
185
186
|
logprobs: null,
|
|
186
|
-
finish_reason: isStop ? "stop" : null
|
|
187
|
-
}
|
|
187
|
+
finish_reason: isStop ? "stop" : null
|
|
188
|
+
}
|
|
188
189
|
],
|
|
189
190
|
usage: isStop
|
|
190
191
|
? {
|
|
@@ -193,13 +194,13 @@ class OutputFormatAdapter {
|
|
|
193
194
|
total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) +
|
|
194
195
|
((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
|
|
195
196
|
prompt_tokens_details: {
|
|
196
|
-
cached_tokens: 0
|
|
197
|
+
cached_tokens: 0
|
|
197
198
|
},
|
|
198
199
|
completion_tokens_details: {
|
|
199
|
-
reasoning_tokens: 0
|
|
200
|
-
}
|
|
200
|
+
reasoning_tokens: 0
|
|
201
|
+
}
|
|
201
202
|
}
|
|
202
|
-
: null
|
|
203
|
+
: null
|
|
203
204
|
};
|
|
204
205
|
}
|
|
205
206
|
static resetState() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":";;;;;AAAA,oCAQkB;AAClB,oIAA4G;AAC5G,8HAAsG;AACtG,8IAAsH;AAEtH,MAAqB,mBAAmB;IAStC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,
|
|
1
|
+
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const types_1 = require("../types");
|
|
4
4
|
class ProviderFinder {
|
|
5
|
-
static getProvider(model) {
|
|
5
|
+
static getProvider(model, baseUrl) {
|
|
6
6
|
// Check if the model belongs to OpenAI-supported LLMs
|
|
7
7
|
if (Object.values(types_1.OpenAISupportedLLMs).includes(model)) {
|
|
8
8
|
return types_1.Providers.OPENAI;
|
|
@@ -14,6 +14,9 @@ class ProviderFinder {
|
|
|
14
14
|
if (Object.values(types_1.Llama3_1SupportedLLMs).includes(model)) {
|
|
15
15
|
return types_1.Providers.LLAMA_3_1_BEDROCK;
|
|
16
16
|
}
|
|
17
|
+
if (baseUrl) {
|
|
18
|
+
return types_1.Providers.OPENAI_COMPATIBLE_PROVIDER;
|
|
19
|
+
}
|
|
17
20
|
// Throw an error for unsupported models
|
|
18
21
|
throw new Error(`Unsupported model: ${model}`);
|
|
19
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;AAAA,oCAKkB;AAElB,MAAqB,cAAc;IACjC,MAAM,CAAC,WAAW,CAAC,KAAa;
|
|
1
|
+
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;AAAA,oCAKkB;AAElB,MAAqB,cAAc;IACjC,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,OAAgB;QAChD,sDAAsD;QACtD,IACE,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,KAA4B,CAAC,EACzE,CAAC;YACD,OAAO,iBAAS,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,iEAAiE;QACjE,IACE,MAAM,CAAC,MAAM,CAAC,qCAA6B,CAAC,CAAC,QAAQ,CACnD,KAAsC,CACvC,EACD,CAAC;YACD,OAAO,iBAAS,CAAC,iBAAiB,CAAC;QACrC,CAAC;QACD,IACE,MAAM,CAAC,MAAM,CAAC,6BAAqB,CAAC,CAAC,QAAQ,CAC3C,KAA8B,CAC/B,EACD,CAAC;YACD,OAAO,iBAAS,CAAC,iBAAiB,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,iBAAS,CAAC,0BAA0B,CAAC;QAC9C,CAAC;QACD,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AA7BD,iCA6BC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { OpenAIMessages, OpenAIResponse } from "../types";
|
|
2
|
+
import { ClientService } from "./ClientService";
|
|
3
|
+
export default class OpenAICompatibleService implements ClientService {
|
|
4
|
+
private openai;
|
|
5
|
+
constructor(apiKey: string, baseUrl?: string);
|
|
6
|
+
generateCompletion({ messages, model, max_tokens, temperature, tools, }: {
|
|
7
|
+
messages: OpenAIMessages;
|
|
8
|
+
model: string;
|
|
9
|
+
max_tokens: number;
|
|
10
|
+
temperature: number;
|
|
11
|
+
systemPrompt?: string;
|
|
12
|
+
tools?: any;
|
|
13
|
+
}): Promise<OpenAIResponse>;
|
|
14
|
+
generateStreamCompletion({ messages, model, max_tokens, temperature, tools, }: {
|
|
15
|
+
messages: OpenAIMessages;
|
|
16
|
+
model: string;
|
|
17
|
+
max_tokens: number;
|
|
18
|
+
temperature: number;
|
|
19
|
+
systemPrompt?: string;
|
|
20
|
+
tools?: any;
|
|
21
|
+
}): AsyncGenerator<any, void, unknown>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const openai_1 = __importDefault(require("openai"));
|
|
7
|
+
class OpenAICompatibleService {
|
|
8
|
+
constructor(apiKey, baseUrl) {
|
|
9
|
+
this.openai = new openai_1.default({
|
|
10
|
+
apiKey,
|
|
11
|
+
baseURL: baseUrl,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
async generateCompletion({ messages, model, max_tokens, temperature, tools, }) {
|
|
15
|
+
if (!model) {
|
|
16
|
+
return Promise.reject(new Error("Model ID is required for OpenAIService."));
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const response = await this.openai.chat.completions.create({
|
|
20
|
+
model,
|
|
21
|
+
messages,
|
|
22
|
+
max_tokens,
|
|
23
|
+
temperature,
|
|
24
|
+
functions: tools,
|
|
25
|
+
});
|
|
26
|
+
return response;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return Promise.reject(error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async *generateStreamCompletion({ messages, model, max_tokens, temperature, tools, }) {
|
|
33
|
+
if (!model) {
|
|
34
|
+
return Promise.reject(new Error("Model ID is required for OpenAIService."));
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const stream = await this.openai.chat.completions.create({
|
|
38
|
+
model,
|
|
39
|
+
messages,
|
|
40
|
+
max_tokens,
|
|
41
|
+
temperature,
|
|
42
|
+
functions: tools,
|
|
43
|
+
stream: true,
|
|
44
|
+
stream_options: {
|
|
45
|
+
include_usage: true,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
for await (const chunk of stream) {
|
|
49
|
+
yield chunk;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return Promise.reject(error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.default = OpenAICompatibleService;
|
|
58
|
+
//# sourceMappingURL=OpenAICompatibleService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAICompatibleService.js","sourceRoot":"","sources":["../../src/services/OpenAICompatibleService.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAI5B,MAAqB,uBAAuB;IAG1C,YAAY,MAAc,EAAE,OAAgB;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;YACvB,MAAM;YACN,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EACvB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,GAQN;QACC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzD,KAAK;gBACL,QAAQ;gBACR,UAAU;gBACV,WAAW;gBACX,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,OAAO,QAA0B,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,wBAAwB,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,GAQN;QACC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACvD,KAAK;gBACL,QAAQ;gBACR,UAAU;gBACV,WAAW;gBACX,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE;oBACd,aAAa,EAAE,IAAI;iBACpB;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AApFD,0CAoFC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare enum Providers {
|
|
2
2
|
OPENAI = "OpenAI",
|
|
3
3
|
ANTHROPIC_BEDROCK = "AnthropicBedrock",
|
|
4
|
-
LLAMA_3_1_BEDROCK = "Llama3.1"
|
|
4
|
+
LLAMA_3_1_BEDROCK = "Llama3.1",
|
|
5
|
+
OPENAI_COMPATIBLE_PROVIDER = "OpenAICompatibleProvider"
|
|
5
6
|
}
|
|
6
7
|
export type OpenAIMessagesRoles = "system" | "user" | "assistant" | "tool" | "function";
|
|
7
8
|
export interface OpenAIStreamResponse {
|
package/dist/types/index.js
CHANGED
|
@@ -7,6 +7,7 @@ var Providers;
|
|
|
7
7
|
Providers["OPENAI"] = "OpenAI";
|
|
8
8
|
Providers["ANTHROPIC_BEDROCK"] = "AnthropicBedrock";
|
|
9
9
|
Providers["LLAMA_3_1_BEDROCK"] = "Llama3.1";
|
|
10
|
+
Providers["OPENAI_COMPATIBLE_PROVIDER"] = "OpenAICompatibleProvider";
|
|
10
11
|
})(Providers || (exports.Providers = Providers = {}));
|
|
11
12
|
var OpenAISupportedLLMs;
|
|
12
13
|
(function (OpenAISupportedLLMs) {
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,UAAU;AACV,IAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,UAAU;AACV,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,mDAAsC,CAAA;IACtC,2CAA8B,CAAA;IAC9B,oEAAuD,CAAA;AACzD,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AA8ED,IAAY,mBAmCX;AAnCD,WAAY,mBAAmB;IAC7B,2DAAoC,CAAA;IACpC,yCAAkB,CAAA;IAClB,+DAAwC,CAAA;IACxC,+DAAwC,CAAA;IACxC,+DAAwC,CAAA;IACxC,2EAAoD,CAAA;IACpD,iGAA0E,CAAA;IAC1E,qEAA8C,CAAA;IAC9C,2FAAoE,CAAA;IACpE,mDAA4B,CAAA;IAC5B,yEAAkD,CAAA;IAClD,gDAAyB,CAAA;IACzB,sEAA+C,CAAA;IAC/C,0CAAmB,CAAA;IACnB,gEAAyC,CAAA;IACzC,kDAA2B,CAAA;IAC3B,wEAAiD,CAAA;IACjD,kEAA2C,CAAA;IAC3C,gEAAyC,CAAA;IACzC,gEAAyC,CAAA;IACzC,oEAA6C,CAAA;IAC7C,sCAAe,CAAA;IACf,gDAAyB,CAAA;IACzB,gDAAyB,CAAA;IACzB,8CAAuB,CAAA;IACvB,wDAAiC,CAAA;IACjC,wDAAiC,CAAA;IACjC,sDAA+B,CAAA;IAC/B,8DAAuC,CAAA;IACvC,gEAAyC,CAAA;IACzC,gEAAyC,CAAA;IACzC,gEAAyC,CAAA;IACzC,gEAAyC,CAAA;IACzC,wEAAiD,CAAA;AACnD,CAAC,EAnCW,mBAAmB,mCAAnB,mBAAmB,QAmC9B;AA6CD,cAAc;AAEd,wBAAwB;AAExB,6EAA6E;AAC7E,IAAY,6BAqBX;AArBD,WAAY,6BAA6B;IACvC,kBAAkB;IAClB,wFAAuD,CAAA;IACvD,4FAA2D,CAAA;IAC3D,0FAAyD,CAAA;IAEzD,oBAAoB;IACpB,mGAAkE,CAAA;IAClE,mGAAkE,CAAA;IAClE,8FAA6D,CAAA;IAE7D,kBAAkB;IAClB,sEAAqC,CAAA;IACrC,kEAAiC,CAAA;IACjC,kFAAiD,CAAA;IAEjD,qBAAqB;IACrB,gGAA+D,CAAA;IAC/D,oGAAmE,CAAA;IACnE,sGAAqE,CAAA;IACrE,yGAAwE,CAAA;AAC1E,CAAC,EArBW,6BAA6B,6CAA7B,6BAA6B,QAqBxC;AAED,IAAY,2BAKX;AALD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,8CAAe,CAAA;IACf,oDAAqB,CAAA;IACrB,0DAA2B,CAAA;AAC7B,CAAC,EALW,2BAA2B,2CAA3B,2BAA2B,QAKtC;AA0GD,YAAY;AAEZ,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC/B,wEAA+C,CAAA;IAC/C,4EAAmD,CAAA;IACnD,4EAAmD,CAAA;IACnD,2FAAkE,CAAA;IAClE,+FAAsE,CAAA;IACtE,+FAAsE,CAAA;AACxE,CAAC,EAPW,qBAAqB,qCAArB,qBAAqB,QAOhC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-proxy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
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",
|