llm-proxy 1.4.18 → 1.5.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.js +91 -6
- package/dist/index.js.map +1 -1
- package/dist/middleware/InputFormatAdapter.d.ts +1 -1
- package/dist/middleware/InputFormatAdapter.js +13 -3
- package/dist/middleware/InputFormatAdapter.js.map +1 -1
- package/dist/middleware/OutputFormatAdapter.d.ts +7 -2
- package/dist/middleware/OutputFormatAdapter.js +37 -22
- package/dist/middleware/OutputFormatAdapter.js.map +1 -1
- package/dist/middleware/ProviderFinder.js +3 -0
- package/dist/middleware/ProviderFinder.js.map +1 -1
- package/dist/services/AwsBedrockAnthropicService.js +7 -7
- package/dist/services/AwsBedrockAnthropicService.js.map +1 -1
- package/dist/services/AwsBedrockLlama3Service.d.ts +17 -0
- package/dist/services/AwsBedrockLlama3Service.js +126 -0
- package/dist/services/AwsBedrockLlama3Service.js.map +1 -0
- package/dist/types/index.d.ts +15 -7
- package/dist/types/index.js +22 -8
- package/dist/types/index.js.map +1 -1
- package/dist/utils/inputFormatAdapterUtils/openAIToLlamaMessage.d.ts +3 -0
- package/dist/utils/inputFormatAdapterUtils/openAIToLlamaMessage.js +35 -0
- package/dist/utils/inputFormatAdapterUtils/openAIToLlamaMessage.js.map +1 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAINonStream.d.ts +28 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAINonStream.js +32 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAINonStream.js.map +1 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStream.d.ts +2 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStream.js +40 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStream.js.map +1 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStreamToolCall.d.ts +23 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStreamToolCall.js +42 -0
- package/dist/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStreamToolCall.js.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ const AwsBedrockAnthropicService_1 = __importDefault(require("./services/AwsBedr
|
|
|
25
25
|
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
|
+
const AwsBedrockLlama3Service_1 = __importDefault(require("./services/AwsBedrockLlama3Service"));
|
|
28
29
|
// Main function for non-streaming requests
|
|
29
30
|
async function generateLLMResponse(params) {
|
|
30
31
|
const { messages, model, functions, max_tokens, temperature, credentials } = params;
|
|
@@ -45,8 +46,15 @@ async function generateLLMResponse(params) {
|
|
|
45
46
|
}
|
|
46
47
|
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
47
48
|
}
|
|
49
|
+
else if (provider === types_1.Providers.LLAMA_3_1_BEDROCK) {
|
|
50
|
+
const { awsConfig } = credentials;
|
|
51
|
+
if (!awsConfig) {
|
|
52
|
+
return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
|
|
53
|
+
}
|
|
54
|
+
service = new AwsBedrockLlama3Service_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
55
|
+
}
|
|
48
56
|
else {
|
|
49
|
-
return Promise.reject(new Error("Unsupported provider"));
|
|
57
|
+
return Promise.reject(new Error("Unsupported provider 4"));
|
|
50
58
|
}
|
|
51
59
|
// Step 2: Adapt messages and extract the system prompt
|
|
52
60
|
const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.default.adaptMessages(messages, provider);
|
|
@@ -60,11 +68,18 @@ async function generateLLMResponse(params) {
|
|
|
60
68
|
systemPrompt: systemPrompt || "",
|
|
61
69
|
});
|
|
62
70
|
// Step 4: Adapt the response if needed
|
|
63
|
-
|
|
71
|
+
const adaptedResponse = provider === types_1.Providers.OPENAI
|
|
64
72
|
? response
|
|
65
|
-
: OutputFormatAdapter_1.default.adaptResponse(
|
|
73
|
+
: OutputFormatAdapter_1.default.adaptResponse({
|
|
74
|
+
response,
|
|
75
|
+
provider,
|
|
76
|
+
isStream: false,
|
|
77
|
+
});
|
|
78
|
+
return adaptedResponse;
|
|
66
79
|
}
|
|
67
80
|
// Main function for streaming requests
|
|
81
|
+
// Main function for streaming requests
|
|
82
|
+
// Main function for streaming requests
|
|
68
83
|
async function generateLLMStreamResponse(params) {
|
|
69
84
|
const { messages, model, functions, max_tokens, temperature, credentials } = params;
|
|
70
85
|
// Step 1: Identify the provider based on the model
|
|
@@ -84,6 +99,13 @@ async function generateLLMStreamResponse(params) {
|
|
|
84
99
|
}
|
|
85
100
|
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
86
101
|
}
|
|
102
|
+
else if (provider === types_1.Providers.LLAMA_3_1_BEDROCK) {
|
|
103
|
+
const { awsConfig } = credentials;
|
|
104
|
+
if (!awsConfig) {
|
|
105
|
+
return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
|
|
106
|
+
}
|
|
107
|
+
service = new AwsBedrockLlama3Service_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
108
|
+
}
|
|
87
109
|
else {
|
|
88
110
|
return Promise.reject(new Error("Unsupported provider"));
|
|
89
111
|
}
|
|
@@ -100,10 +122,73 @@ async function generateLLMStreamResponse(params) {
|
|
|
100
122
|
});
|
|
101
123
|
// Step 4: Create and return the async generator
|
|
102
124
|
async function* streamGenerator() {
|
|
125
|
+
const buffer = []; // Buffer to hold the first three chunks
|
|
126
|
+
let isFunctionCall = false;
|
|
127
|
+
const accumulatedChunks = []; // Accumulate chunks for function calls
|
|
103
128
|
for await (const chunk of stream) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
129
|
+
if (!isFunctionCall) {
|
|
130
|
+
// Push the chunk to the buffer
|
|
131
|
+
buffer.push(chunk);
|
|
132
|
+
// Check condition if we have the first three chunks
|
|
133
|
+
if (buffer.length === 3) {
|
|
134
|
+
const [first, second, third] = buffer;
|
|
135
|
+
// Evaluate the condition
|
|
136
|
+
if (second.generation === "<" && third.generation === "function") {
|
|
137
|
+
isFunctionCall = true;
|
|
138
|
+
}
|
|
139
|
+
// Clear the buffer if condition met, else continue streaming
|
|
140
|
+
if (isFunctionCall) {
|
|
141
|
+
accumulatedChunks.push(...buffer);
|
|
142
|
+
buffer.length = 0;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
// Yield the first chunk
|
|
146
|
+
yield provider === types_1.Providers.OPENAI
|
|
147
|
+
? first
|
|
148
|
+
: (await OutputFormatAdapter_1.default.adaptResponse({
|
|
149
|
+
response: first,
|
|
150
|
+
provider,
|
|
151
|
+
isStream: true,
|
|
152
|
+
isFunctionCall: false,
|
|
153
|
+
}));
|
|
154
|
+
buffer.shift(); // Remove the first chunk from the buffer
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Accumulate chunks for function call
|
|
160
|
+
accumulatedChunks.push(chunk);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (isFunctionCall) {
|
|
164
|
+
// Pass the entire accumulated response to adaptResponse
|
|
165
|
+
const fullResponse = accumulatedChunks.reduce((acc, cur) => {
|
|
166
|
+
acc.generation += cur.generation;
|
|
167
|
+
return acc;
|
|
168
|
+
});
|
|
169
|
+
const response = provider === types_1.Providers.OPENAI
|
|
170
|
+
? { ...fullResponse, isFunctionCall: true }
|
|
171
|
+
: (await OutputFormatAdapter_1.default.adaptResponse({
|
|
172
|
+
response: fullResponse,
|
|
173
|
+
provider,
|
|
174
|
+
isStream: false,
|
|
175
|
+
isFunctionCall: true,
|
|
176
|
+
}));
|
|
177
|
+
yield response;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Handle any remaining chunks in the buffer for non-function calls
|
|
181
|
+
while (buffer.length > 0) {
|
|
182
|
+
const chunk = buffer.shift();
|
|
183
|
+
const response = provider === types_1.Providers.OPENAI
|
|
184
|
+
? chunk
|
|
185
|
+
: (await OutputFormatAdapter_1.default.adaptResponse({
|
|
186
|
+
response: chunk,
|
|
187
|
+
provider,
|
|
188
|
+
isStream: true,
|
|
189
|
+
}));
|
|
190
|
+
yield response;
|
|
191
|
+
}
|
|
107
192
|
}
|
|
108
193
|
}
|
|
109
194
|
return streamGenerator();
|
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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BedrockAnthropicMessage, OpenAIMessages, Providers } from "../types";
|
|
2
2
|
export default class InputFormatAdapter {
|
|
3
3
|
static adaptMessages(messages: any, provider: Providers): {
|
|
4
|
-
adaptedMessages: OpenAIMessages | BedrockAnthropicMessage[];
|
|
4
|
+
adaptedMessages: OpenAIMessages | BedrockAnthropicMessage[] | any;
|
|
5
5
|
systemPrompt?: string;
|
|
6
6
|
};
|
|
7
7
|
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const types_1 = require("../types");
|
|
7
|
+
const openAIToLlamaMessage_1 = __importDefault(require("../utils/inputFormatAdapterUtils/openAIToLlamaMessage"));
|
|
4
8
|
class InputFormatAdapter {
|
|
5
9
|
static adaptMessages(messages, provider) {
|
|
6
10
|
var _a;
|
|
7
11
|
switch (provider) {
|
|
8
12
|
case types_1.Providers.OPENAI:
|
|
9
13
|
return {
|
|
10
|
-
// @ts-ignore
|
|
14
|
+
// @ts-ignore: Ignore the any type in the msg
|
|
11
15
|
adaptedMessages: messages.map((msg) => {
|
|
12
16
|
var _a, _b;
|
|
13
17
|
if (msg.role === "function") {
|
|
@@ -34,7 +38,7 @@ class InputFormatAdapter {
|
|
|
34
38
|
}
|
|
35
39
|
const systemPrompt = (_a = firstMessage.content) !== null && _a !== void 0 ? _a : "";
|
|
36
40
|
const adaptedMessages = [];
|
|
37
|
-
// @ts-ignore
|
|
41
|
+
// @ts-ignore: Ignore the any type in the msg
|
|
38
42
|
restMessages.forEach((msg) => {
|
|
39
43
|
var _a, _b;
|
|
40
44
|
if (msg.role !== "user" && msg.role !== "assistant") {
|
|
@@ -90,8 +94,14 @@ class InputFormatAdapter {
|
|
|
90
94
|
}
|
|
91
95
|
return { adaptedMessages, systemPrompt };
|
|
92
96
|
}
|
|
97
|
+
case types_1.Providers.LLAMA_3_1_BEDROCK: {
|
|
98
|
+
const adaptedMessages = (0, openAIToLlamaMessage_1.default)(messages);
|
|
99
|
+
return {
|
|
100
|
+
adaptedMessages,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
93
103
|
default:
|
|
94
|
-
throw new Error(`Unsupported provider: ${provider}`);
|
|
104
|
+
throw new Error(`Unsupported provider 1: ${provider}`);
|
|
95
105
|
}
|
|
96
106
|
}
|
|
97
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Providers } from "../types";
|
|
2
2
|
export default class OutputFormatAdapter {
|
|
3
3
|
private static isToolUseStream;
|
|
4
4
|
private static toolArguments;
|
|
5
5
|
private static model;
|
|
6
6
|
private static toolName;
|
|
7
|
-
static adaptResponse(response
|
|
7
|
+
static adaptResponse({ response, provider, isStream, isFunctionCall, }: {
|
|
8
|
+
response: any;
|
|
9
|
+
provider: Providers;
|
|
10
|
+
isStream: boolean;
|
|
11
|
+
isFunctionCall?: boolean;
|
|
12
|
+
}): Promise<any>;
|
|
8
13
|
private static adaptCompleteResponse;
|
|
9
14
|
private static mapRole;
|
|
10
15
|
private static extractContent;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const types_1 = require("../types");
|
|
7
|
+
const convertLlamaToOpenAINonStream_1 = __importDefault(require("../utils/outputFormatAdapterUtils/convertLlamaToOpenAINonStream"));
|
|
8
|
+
const convertLlamaToOpenAIStream_1 = __importDefault(require("../utils/outputFormatAdapterUtils/convertLlamaToOpenAIStream"));
|
|
9
|
+
const convertLlamaToOpenAIStreamToolCall_1 = __importDefault(require("../utils/outputFormatAdapterUtils/convertLlamaToOpenAIStreamToolCall"));
|
|
4
10
|
class OutputFormatAdapter {
|
|
5
|
-
static adaptResponse(response, provider) {
|
|
11
|
+
static async adaptResponse({ response, provider, isStream, isFunctionCall, }) {
|
|
6
12
|
if (!response) {
|
|
7
13
|
throw new Error("Response object is null or undefined");
|
|
8
14
|
}
|
|
@@ -11,12 +17,21 @@ class OutputFormatAdapter {
|
|
|
11
17
|
case types_1.Providers.OPENAI:
|
|
12
18
|
return response;
|
|
13
19
|
case types_1.Providers.ANTHROPIC_BEDROCK:
|
|
14
|
-
if (
|
|
20
|
+
if (!isStream) {
|
|
15
21
|
return this.adaptCompleteResponse(response);
|
|
16
22
|
}
|
|
17
23
|
return this.adaptStreamingResponse(response);
|
|
24
|
+
case types_1.Providers.LLAMA_3_1_BEDROCK: {
|
|
25
|
+
if (!isStream && !isFunctionCall) {
|
|
26
|
+
return (0, convertLlamaToOpenAINonStream_1.default)(response);
|
|
27
|
+
}
|
|
28
|
+
if (isFunctionCall) {
|
|
29
|
+
return (0, convertLlamaToOpenAIStreamToolCall_1.default)(response);
|
|
30
|
+
}
|
|
31
|
+
return (0, convertLlamaToOpenAIStream_1.default)(response);
|
|
32
|
+
}
|
|
18
33
|
default:
|
|
19
|
-
throw new Error(`Unsupported provider: ${provider}`);
|
|
34
|
+
throw new Error(`Unsupported provider 2: ${provider}`);
|
|
20
35
|
}
|
|
21
36
|
}
|
|
22
37
|
catch (error) {
|
|
@@ -34,10 +49,10 @@ class OutputFormatAdapter {
|
|
|
34
49
|
index,
|
|
35
50
|
message: {
|
|
36
51
|
role: this.mapRole(contentBlock),
|
|
37
|
-
content: this.extractContent(contentBlock)
|
|
52
|
+
content: this.extractContent(contentBlock),
|
|
38
53
|
},
|
|
39
54
|
logprobs: null,
|
|
40
|
-
finish_reason: response.stop_reason || null
|
|
55
|
+
finish_reason: response.stop_reason || null,
|
|
41
56
|
})),
|
|
42
57
|
usage: {
|
|
43
58
|
prompt_tokens: ((_a = response.usage) === null || _a === void 0 ? void 0 : _a.input_tokens) || 0,
|
|
@@ -45,9 +60,9 @@ class OutputFormatAdapter {
|
|
|
45
60
|
total_tokens: (((_c = response.usage) === null || _c === void 0 ? void 0 : _c.input_tokens) || 0) +
|
|
46
61
|
(((_d = response.usage) === null || _d === void 0 ? void 0 : _d.output_tokens) || 0),
|
|
47
62
|
prompt_tokens_details: { cached_tokens: 0 },
|
|
48
|
-
completion_tokens_details: { reasoning_tokens: 0 }
|
|
63
|
+
completion_tokens_details: { reasoning_tokens: 0 },
|
|
49
64
|
},
|
|
50
|
-
system_fingerprint: response.system_fingerprint || "default_fingerprint"
|
|
65
|
+
system_fingerprint: response.system_fingerprint || "default_fingerprint",
|
|
51
66
|
};
|
|
52
67
|
}
|
|
53
68
|
static mapRole(content) {
|
|
@@ -130,12 +145,12 @@ class OutputFormatAdapter {
|
|
|
130
145
|
chunk.type === "content_block_delta" &&
|
|
131
146
|
((_a = chunk.delta) === null || _a === void 0 ? void 0 : _a.type) === "input_json_delta"
|
|
132
147
|
? (_b = chunk.delta) === null || _b === void 0 ? void 0 : _b.partial_json
|
|
133
|
-
: this.toolArguments.join(", ")
|
|
134
|
-
}
|
|
148
|
+
: this.toolArguments.join(", "),
|
|
149
|
+
},
|
|
135
150
|
},
|
|
136
151
|
logprobs: null,
|
|
137
|
-
finish_reason: isStop ? "stop" : null
|
|
138
|
-
}
|
|
152
|
+
finish_reason: isStop ? "stop" : null,
|
|
153
|
+
},
|
|
139
154
|
],
|
|
140
155
|
usage: isStop
|
|
141
156
|
? {
|
|
@@ -144,13 +159,13 @@ class OutputFormatAdapter {
|
|
|
144
159
|
total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) +
|
|
145
160
|
((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
|
|
146
161
|
prompt_tokens_details: {
|
|
147
|
-
cached_tokens: 0
|
|
162
|
+
cached_tokens: 0,
|
|
148
163
|
},
|
|
149
164
|
completion_tokens_details: {
|
|
150
|
-
reasoning_tokens: 0
|
|
151
|
-
}
|
|
165
|
+
reasoning_tokens: 0,
|
|
166
|
+
},
|
|
152
167
|
}
|
|
153
|
-
: null
|
|
168
|
+
: null,
|
|
154
169
|
};
|
|
155
170
|
}
|
|
156
171
|
static createNonToolUseResponse(metrics, isStop, chunk) {
|
|
@@ -165,11 +180,11 @@ class OutputFormatAdapter {
|
|
|
165
180
|
{
|
|
166
181
|
index: 0,
|
|
167
182
|
delta: {
|
|
168
|
-
content
|
|
183
|
+
content,
|
|
169
184
|
},
|
|
170
185
|
logprobs: null,
|
|
171
|
-
finish_reason: isStop ? "stop" : null
|
|
172
|
-
}
|
|
186
|
+
finish_reason: isStop ? "stop" : null,
|
|
187
|
+
},
|
|
173
188
|
],
|
|
174
189
|
usage: isStop
|
|
175
190
|
? {
|
|
@@ -178,13 +193,13 @@ class OutputFormatAdapter {
|
|
|
178
193
|
total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) +
|
|
179
194
|
((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
|
|
180
195
|
prompt_tokens_details: {
|
|
181
|
-
cached_tokens: 0
|
|
196
|
+
cached_tokens: 0,
|
|
182
197
|
},
|
|
183
198
|
completion_tokens_details: {
|
|
184
|
-
reasoning_tokens: 0
|
|
185
|
-
}
|
|
199
|
+
reasoning_tokens: 0,
|
|
200
|
+
},
|
|
186
201
|
}
|
|
187
|
-
: null
|
|
202
|
+
: null,
|
|
188
203
|
};
|
|
189
204
|
}
|
|
190
205
|
static resetState() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,9 @@ class ProviderFinder {
|
|
|
11
11
|
if (Object.values(types_1.BedrockAnthropicSupportedLLMs).includes(model)) {
|
|
12
12
|
return types_1.Providers.ANTHROPIC_BEDROCK;
|
|
13
13
|
}
|
|
14
|
+
if (Object.values(types_1.Llama3_1SupportedLLMs).includes(model)) {
|
|
15
|
+
return types_1.Providers.LLAMA_3_1_BEDROCK;
|
|
16
|
+
}
|
|
14
17
|
// Throw an error for unsupported models
|
|
15
18
|
throw new Error(`Unsupported model: ${model}`);
|
|
16
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;AAAA,
|
|
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;QAC9B,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,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AA1BD,iCA0BC"}
|
|
@@ -7,8 +7,8 @@ class AwsBedrockAnthropicService {
|
|
|
7
7
|
region,
|
|
8
8
|
credentials: {
|
|
9
9
|
accessKeyId: awsAccessKey,
|
|
10
|
-
secretAccessKey: awsSecretKey
|
|
11
|
-
}
|
|
10
|
+
secretAccessKey: awsSecretKey,
|
|
11
|
+
},
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
14
|
async generateCompletion(params) {
|
|
@@ -22,13 +22,13 @@ class AwsBedrockAnthropicService {
|
|
|
22
22
|
temperature,
|
|
23
23
|
messages,
|
|
24
24
|
system: systemPrompt,
|
|
25
|
-
...(tools && Array.isArray(tools) && tools.length ? { tools } : {})
|
|
25
|
+
...(tools && Array.isArray(tools) && tools.length ? { tools } : {}),
|
|
26
26
|
});
|
|
27
27
|
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
28
28
|
modelId: model,
|
|
29
29
|
body,
|
|
30
30
|
contentType: "application/json",
|
|
31
|
-
accept: "application/json"
|
|
31
|
+
accept: "application/json",
|
|
32
32
|
});
|
|
33
33
|
const response = await this.bedrock.send(command);
|
|
34
34
|
return JSON.parse(new TextDecoder().decode(response.body));
|
|
@@ -46,20 +46,20 @@ class AwsBedrockAnthropicService {
|
|
|
46
46
|
temperature,
|
|
47
47
|
messages,
|
|
48
48
|
system: systemPrompt,
|
|
49
|
-
...(tools && Array.isArray(tools) && tools.length ? { tools } : {})
|
|
49
|
+
...(tools && Array.isArray(tools) && tools.length ? { tools } : {}),
|
|
50
50
|
});
|
|
51
51
|
const command = new client_bedrock_runtime_1.InvokeModelWithResponseStreamCommand({
|
|
52
52
|
modelId: model,
|
|
53
53
|
body,
|
|
54
54
|
contentType: "application/json",
|
|
55
|
-
accept: "application/json"
|
|
55
|
+
accept: "application/json",
|
|
56
56
|
});
|
|
57
57
|
const response = await this.bedrock.send(command);
|
|
58
58
|
if (response.body) {
|
|
59
59
|
const decoder = new TextDecoder("utf-8");
|
|
60
60
|
for await (const payload of response.body) {
|
|
61
61
|
const decodedString = decoder.decode((_a = payload.chunk) === null || _a === void 0 ? void 0 : _a.bytes, {
|
|
62
|
-
stream: true
|
|
62
|
+
stream: true,
|
|
63
63
|
});
|
|
64
64
|
try {
|
|
65
65
|
const jsonObject = JSON.parse(decodedString);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwsBedrockAnthropicService.js","sourceRoot":"","sources":["../../src/services/AwsBedrockAnthropicService.ts"],"names":[],"mappings":";;AAAA,4EAIyC;AAQzC,MAAqB,0BAA0B;IAG7C,YAAY,YAAoB,EAAE,YAAoB,EAAE,MAAc;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,6CAAoB,CAAC;YACtC,MAAM;YACN,WAAW,EAAE;gBACX,WAAW,EAAE,YAAY;gBACzB,eAAe,EAAE,YAAY;aAC9B;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAQxB;QACC,MAAM,
|
|
1
|
+
{"version":3,"file":"AwsBedrockAnthropicService.js","sourceRoot":"","sources":["../../src/services/AwsBedrockAnthropicService.ts"],"names":[],"mappings":";;AAAA,4EAIyC;AAQzC,MAAqB,0BAA0B;IAG7C,YAAY,YAAoB,EAAE,YAAoB,EAAE,MAAc;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,6CAAoB,CAAC;YACtC,MAAM;YACN,WAAW,EAAE;gBACX,WAAW,EAAE,YAAY;gBACzB,eAAe,EAAE,YAAY;aAC9B;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAQxB;QACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,GACrE,MAAM,CAAC;QAET,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,qDAAqD,CAAC,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,iBAAiB,EAAE,oBAAoB;YACvC,UAAU;YACV,WAAW;YACX,QAAQ;YACR,MAAM,EAAE,YAAY;YACpB,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,2CAAkB,CAAC;YACrC,OAAO,EAAE,KAAK;YACd,IAAI;YACJ,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,CAAC,wBAAwB,CAAC,MAQ/B;;QACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,GACrE,MAAM,CAAC;QAET,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,qDAAqD,CAAC,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,iBAAiB,EAAE,oBAAoB;YACvC,UAAU;YACV,WAAW;YACX,QAAQ;YACR,MAAM,EAAE,YAAY;YACpB,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,6DAAoC,CAAC;YACvD,OAAO,EAAE,KAAK;YACd,IAAI;YACJ,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;YAEzC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK,EAAE;oBACzD,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC7C,MAAM,UAAU,CAAC;gBACnB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAzGD,6CAyGC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default class AwsBedrockLlama3Service {
|
|
2
|
+
private bedrock;
|
|
3
|
+
constructor(awsAccessKey: string, awsSecretKey: string, region: string);
|
|
4
|
+
generateCompletion(params: {
|
|
5
|
+
model?: string;
|
|
6
|
+
max_tokens?: number;
|
|
7
|
+
temperature?: number;
|
|
8
|
+
messages: any;
|
|
9
|
+
}): Promise<any>;
|
|
10
|
+
generateStreamCompletion(params: {
|
|
11
|
+
model?: string;
|
|
12
|
+
max_tokens?: number;
|
|
13
|
+
temperature?: number;
|
|
14
|
+
messages: any;
|
|
15
|
+
tools?: any;
|
|
16
|
+
}): AsyncGenerator<any, void, unknown>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
4
|
+
class AwsBedrockLlama3Service {
|
|
5
|
+
constructor(awsAccessKey, awsSecretKey, region) {
|
|
6
|
+
this.bedrock = new client_bedrock_runtime_1.BedrockRuntimeClient({
|
|
7
|
+
region,
|
|
8
|
+
credentials: {
|
|
9
|
+
accessKeyId: awsAccessKey,
|
|
10
|
+
secretAccessKey: awsSecretKey,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
async generateCompletion(params) {
|
|
15
|
+
const { messages, model, max_tokens, temperature } = params;
|
|
16
|
+
if (!model) {
|
|
17
|
+
throw new Error("Model ID is required.");
|
|
18
|
+
}
|
|
19
|
+
const body = {
|
|
20
|
+
prompt: messages,
|
|
21
|
+
max_gen_len: max_tokens || 100,
|
|
22
|
+
temperature: temperature || 0.7,
|
|
23
|
+
top_p: 0.9,
|
|
24
|
+
};
|
|
25
|
+
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
26
|
+
modelId: model,
|
|
27
|
+
body: JSON.stringify(body),
|
|
28
|
+
contentType: "application/json",
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
const response = await this.bedrock.send(command);
|
|
32
|
+
return JSON.parse(new TextDecoder().decode(response.body));
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error("Error invoking the Llama model:", error);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async *generateStreamCompletion(params) {
|
|
40
|
+
var _a;
|
|
41
|
+
const { messages, model, max_tokens, temperature, tools } = params;
|
|
42
|
+
if (!model) {
|
|
43
|
+
throw new Error("Model ID is required.");
|
|
44
|
+
}
|
|
45
|
+
const toolPrompt = `
|
|
46
|
+
You have access to the following functions:
|
|
47
|
+
|
|
48
|
+
${JSON.stringify(tools, null, 2)}
|
|
49
|
+
|
|
50
|
+
If you choose to call a function ONLY reply in the following format with no prefix or suffix:
|
|
51
|
+
|
|
52
|
+
<function>
|
|
53
|
+
{
|
|
54
|
+
"function_name": "the name of the function you want to call"
|
|
55
|
+
"parameters": {
|
|
56
|
+
"parameter_key": "the value of the parameter"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
</function>
|
|
60
|
+
|
|
61
|
+
Example:
|
|
62
|
+
<function>
|
|
63
|
+
{
|
|
64
|
+
"function_name": "get_current_weather"
|
|
65
|
+
"parameters": {
|
|
66
|
+
"location": "Miami"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
</function>
|
|
71
|
+
|
|
72
|
+
Reminder:
|
|
73
|
+
- Function calls MUST follow the specified format, start with <function> and end with </function>
|
|
74
|
+
- Required parameters MUST be specified
|
|
75
|
+
- Only call one function at a time
|
|
76
|
+
- Put the entire function call reply on one line
|
|
77
|
+
- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls
|
|
78
|
+
`;
|
|
79
|
+
const systemMessageRegex = /(<\|start_header_id\|>system<\|end_header_id\|>\n+)([\s\S]*?)(<\|eot_id\|>)/;
|
|
80
|
+
let updatedMessages = messages;
|
|
81
|
+
const match = messages.match(systemMessageRegex);
|
|
82
|
+
if (match) {
|
|
83
|
+
updatedMessages = messages.replace(systemMessageRegex,
|
|
84
|
+
// @ts-ignore: Ignore the any type in the msg
|
|
85
|
+
(_, start, systemMessage, end) => `${start}${systemMessage}\n${toolPrompt}${end}`);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.error("Regex did not match the expected structure. Please verify the messages content.");
|
|
89
|
+
}
|
|
90
|
+
const body = JSON.stringify({
|
|
91
|
+
prompt: updatedMessages,
|
|
92
|
+
max_gen_len: max_tokens || 100,
|
|
93
|
+
temperature: temperature || 0.7,
|
|
94
|
+
top_p: 0.9,
|
|
95
|
+
});
|
|
96
|
+
const command = new client_bedrock_runtime_1.InvokeModelWithResponseStreamCommand({
|
|
97
|
+
modelId: model,
|
|
98
|
+
body,
|
|
99
|
+
contentType: "application/json",
|
|
100
|
+
});
|
|
101
|
+
try {
|
|
102
|
+
const response = await this.bedrock.send(command);
|
|
103
|
+
if (response.body) {
|
|
104
|
+
const decoder = new TextDecoder("utf-8");
|
|
105
|
+
for await (const payload of response.body) {
|
|
106
|
+
const decodedString = decoder.decode((_a = payload.chunk) === null || _a === void 0 ? void 0 : _a.bytes, {
|
|
107
|
+
stream: true,
|
|
108
|
+
});
|
|
109
|
+
try {
|
|
110
|
+
const jsonObject = JSON.parse(decodedString);
|
|
111
|
+
yield jsonObject;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
throw new Error("Failed to parse the streaming response.");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.error("Error invoking the Llama model with stream:", error);
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.default = AwsBedrockLlama3Service;
|
|
126
|
+
//# sourceMappingURL=AwsBedrockLlama3Service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwsBedrockLlama3Service.js","sourceRoot":"","sources":["../../src/services/AwsBedrockLlama3Service.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare enum Providers {
|
|
2
2
|
OPENAI = "OpenAI",
|
|
3
3
|
ANTHROPIC_BEDROCK = "AnthropicBedrock",
|
|
4
|
-
|
|
4
|
+
LLAMA_3_1_BEDROCK = "Llama3.1"
|
|
5
5
|
}
|
|
6
6
|
export type OpenAIMessagesRoles = "system" | "user" | "assistant" | "tool" | "function";
|
|
7
7
|
export interface OpenAIStreamResponse {
|
|
@@ -144,15 +144,18 @@ export interface OpenAIResponse {
|
|
|
144
144
|
system_fingerprint: string;
|
|
145
145
|
}
|
|
146
146
|
export declare enum BedrockAnthropicSupportedLLMs {
|
|
147
|
-
CLAUDE_3_SONNET = "anthropic.claude-3-sonnet-20240229-v1:0",
|
|
148
|
-
CLAUDE_3_5_SONNET_V_1 = "anthropic.claude-3-5-sonnet-20240620-v1:0",
|
|
149
|
-
CLAUDE_3_5_SONNET_V_2 = "anthropic.claude-3-5-sonnet-20241022-v2:0",
|
|
150
147
|
CLAUDE_3_OPUS = "anthropic.claude-3-opus-20240229-v1:0",
|
|
151
|
-
|
|
152
|
-
CLAUDE_V_2 = "anthropic.claude-v2\t",
|
|
148
|
+
CLAUDE_3_SONNET = "anthropic.claude-3-sonnet-20240229-v1:0",
|
|
153
149
|
CLAUDE_3_HAIKU = "anthropic.claude-3-haiku-20240307-v1:0",
|
|
150
|
+
CLAUDE_3_5_SONNET_V1 = "anthropic.claude-3-5-sonnet-20240620-v1:0",
|
|
151
|
+
CLAUDE_3_5_SONNET_V2 = "anthropic.claude-3-5-sonnet-20241022-v2:0",
|
|
154
152
|
CLAUDE_3_5_HAIKU = "anthropic.claude-3-5-haiku-20241022-v1:0",
|
|
155
|
-
|
|
153
|
+
CLAUDE_V2_1 = "anthropic.claude-v2:1",
|
|
154
|
+
CLAUDE_V2 = "anthropic.claude-v2",
|
|
155
|
+
CLAUDE_INSTANT_V1 = "anthropic.claude-instant-v1",
|
|
156
|
+
US_CLAUDE_3_HAIKU = "us.anthropic.claude-3-haiku-20240307-v1:0",
|
|
157
|
+
US_CLAUDE_3_5_HAIKU = "us.anthropic.claude-3-5-haiku-20241022-v1:0",
|
|
158
|
+
US_CLAUDE_3_5_SONNET = "us.anthropic.claude-3-5-sonnet-20240620-v1:0"
|
|
156
159
|
}
|
|
157
160
|
export declare enum BedrockAnthropicContentType {
|
|
158
161
|
TEXT = "text",
|
|
@@ -245,6 +248,11 @@ export type BedrockAnthropicParsedChunk = {
|
|
|
245
248
|
delta?: BedrockAnthropicContentBlock;
|
|
246
249
|
"amazon-bedrock-invocationMetrics"?: BedrockAnthropicMetrics;
|
|
247
250
|
};
|
|
251
|
+
export declare enum Llama3_1SupportedLLMs {
|
|
252
|
+
LLAMA_3_1_8B = "meta.llama3-1-8b-instruct-v1:0",
|
|
253
|
+
LLAMA_3_1_70B_2 = "meta.llama3-1-70b-instruct-v1:0",
|
|
254
|
+
LLAMA_3_1_405B = "meta.llama3-1-405b-instruct-v1:0"
|
|
255
|
+
}
|
|
248
256
|
export type Messages = OpenAIMessages | BedrockAnthropicMessages;
|
|
249
257
|
export type LLMResponse = OpenAIResponse | BedrockAnthropicResponse;
|
|
250
258
|
export {};
|
package/dist/types/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BedrockAnthropicContentType = exports.BedrockAnthropicSupportedLLMs = exports.OpenAISupportedLLMs = exports.Providers = void 0;
|
|
3
|
+
exports.Llama3_1SupportedLLMs = exports.BedrockAnthropicContentType = exports.BedrockAnthropicSupportedLLMs = exports.OpenAISupportedLLMs = exports.Providers = void 0;
|
|
4
4
|
// GENERAL
|
|
5
5
|
var Providers;
|
|
6
6
|
(function (Providers) {
|
|
7
7
|
Providers["OPENAI"] = "OpenAI";
|
|
8
8
|
Providers["ANTHROPIC_BEDROCK"] = "AnthropicBedrock";
|
|
9
|
-
Providers["
|
|
9
|
+
Providers["LLAMA_3_1_BEDROCK"] = "Llama3.1";
|
|
10
10
|
})(Providers || (exports.Providers = Providers = {}));
|
|
11
11
|
var OpenAISupportedLLMs;
|
|
12
12
|
(function (OpenAISupportedLLMs) {
|
|
@@ -50,15 +50,22 @@ var OpenAISupportedLLMs;
|
|
|
50
50
|
// https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html
|
|
51
51
|
var BedrockAnthropicSupportedLLMs;
|
|
52
52
|
(function (BedrockAnthropicSupportedLLMs) {
|
|
53
|
-
|
|
54
|
-
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_SONNET_V_1"] = "anthropic.claude-3-5-sonnet-20240620-v1:0";
|
|
55
|
-
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_SONNET_V_2"] = "anthropic.claude-3-5-sonnet-20241022-v2:0";
|
|
53
|
+
// Claude 3 Family
|
|
56
54
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_OPUS"] = "anthropic.claude-3-opus-20240229-v1:0";
|
|
57
|
-
BedrockAnthropicSupportedLLMs["
|
|
58
|
-
BedrockAnthropicSupportedLLMs["CLAUDE_V_2"] = "anthropic.claude-v2\t";
|
|
55
|
+
BedrockAnthropicSupportedLLMs["CLAUDE_3_SONNET"] = "anthropic.claude-3-sonnet-20240229-v1:0";
|
|
59
56
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_HAIKU"] = "anthropic.claude-3-haiku-20240307-v1:0";
|
|
57
|
+
// Claude 3.5 Family
|
|
58
|
+
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_SONNET_V1"] = "anthropic.claude-3-5-sonnet-20240620-v1:0";
|
|
59
|
+
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_SONNET_V2"] = "anthropic.claude-3-5-sonnet-20241022-v2:0";
|
|
60
60
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_HAIKU"] = "anthropic.claude-3-5-haiku-20241022-v1:0";
|
|
61
|
-
|
|
61
|
+
// Claude 2 Family
|
|
62
|
+
BedrockAnthropicSupportedLLMs["CLAUDE_V2_1"] = "anthropic.claude-v2:1";
|
|
63
|
+
BedrockAnthropicSupportedLLMs["CLAUDE_V2"] = "anthropic.claude-v2";
|
|
64
|
+
BedrockAnthropicSupportedLLMs["CLAUDE_INSTANT_V1"] = "anthropic.claude-instant-v1";
|
|
65
|
+
// US Region Specific
|
|
66
|
+
BedrockAnthropicSupportedLLMs["US_CLAUDE_3_HAIKU"] = "us.anthropic.claude-3-haiku-20240307-v1:0";
|
|
67
|
+
BedrockAnthropicSupportedLLMs["US_CLAUDE_3_5_HAIKU"] = "us.anthropic.claude-3-5-haiku-20241022-v1:0";
|
|
68
|
+
BedrockAnthropicSupportedLLMs["US_CLAUDE_3_5_SONNET"] = "us.anthropic.claude-3-5-sonnet-20240620-v1:0";
|
|
62
69
|
})(BedrockAnthropicSupportedLLMs || (exports.BedrockAnthropicSupportedLLMs = BedrockAnthropicSupportedLLMs = {}));
|
|
63
70
|
var BedrockAnthropicContentType;
|
|
64
71
|
(function (BedrockAnthropicContentType) {
|
|
@@ -67,4 +74,11 @@ var BedrockAnthropicContentType;
|
|
|
67
74
|
BedrockAnthropicContentType["TOOL_USE"] = "tool_use";
|
|
68
75
|
BedrockAnthropicContentType["TOOL_RESULT"] = "tool_result";
|
|
69
76
|
})(BedrockAnthropicContentType || (exports.BedrockAnthropicContentType = BedrockAnthropicContentType = {}));
|
|
77
|
+
// LLAMA 3.1
|
|
78
|
+
var Llama3_1SupportedLLMs;
|
|
79
|
+
(function (Llama3_1SupportedLLMs) {
|
|
80
|
+
Llama3_1SupportedLLMs["LLAMA_3_1_8B"] = "meta.llama3-1-8b-instruct-v1:0";
|
|
81
|
+
Llama3_1SupportedLLMs["LLAMA_3_1_70B_2"] = "meta.llama3-1-70b-instruct-v1:0";
|
|
82
|
+
Llama3_1SupportedLLMs["LLAMA_3_1_405B"] = "meta.llama3-1-405b-instruct-v1:0";
|
|
83
|
+
})(Llama3_1SupportedLLMs || (exports.Llama3_1SupportedLLMs = Llama3_1SupportedLLMs = {}));
|
|
70
84
|
//# sourceMappingURL=index.js.map
|
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,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,mDAAsC,CAAA;IACtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,UAAU;AACV,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,mDAAsC,CAAA;IACtC,2CAA8B,CAAA;AAChC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;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,6BAoBX;AApBD,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;AACvE,CAAC,EApBW,6BAA6B,6CAA7B,6BAA6B,QAoBxC;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,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,wEAA+C,CAAA;IAC/C,4EAAmD,CAAA;IACnD,4EAAmD,CAAA;AACrD,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const openaiToLlamaMessage = (openaiMessages) => {
|
|
4
|
+
let llamaPrompt = "<|begin_of_text|>";
|
|
5
|
+
// Explicitly type updatedMessages as an array of OpenAIMessage
|
|
6
|
+
const updatedMessages = [];
|
|
7
|
+
openaiMessages.forEach((msg) => {
|
|
8
|
+
const { role, content } = msg;
|
|
9
|
+
if (role === "function") {
|
|
10
|
+
// Add a user message with empty content
|
|
11
|
+
updatedMessages.push({ role: "user", content: "" });
|
|
12
|
+
// Add an assistant message with the content of the function message
|
|
13
|
+
updatedMessages.push({ role: "assistant", content });
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// Add the original message for other roles
|
|
17
|
+
updatedMessages.push(msg);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
updatedMessages.forEach((msg) => {
|
|
21
|
+
const { role, content } = msg;
|
|
22
|
+
const validRoles = ["system", "user", "assistant"];
|
|
23
|
+
if (!validRoles.includes(role)) {
|
|
24
|
+
throw new Error(`Invalid role: ${role}`);
|
|
25
|
+
}
|
|
26
|
+
llamaPrompt += `\n<|start_header_id|>${role}<|end_header_id|>\n${content}\n<|eot_id|>`;
|
|
27
|
+
});
|
|
28
|
+
const lastMessage = updatedMessages[updatedMessages.length - 1];
|
|
29
|
+
if ((lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.role) === "user") {
|
|
30
|
+
llamaPrompt += `\n<|start_header_id|>assistant<|end_header_id|>`;
|
|
31
|
+
}
|
|
32
|
+
return llamaPrompt;
|
|
33
|
+
};
|
|
34
|
+
exports.default = openaiToLlamaMessage;
|
|
35
|
+
//# sourceMappingURL=openAIToLlamaMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openAIToLlamaMessage.js","sourceRoot":"","sources":["../../../src/utils/inputFormatAdapterUtils/openAIToLlamaMessage.ts"],"names":[],"mappings":";;AAEA,MAAM,oBAAoB,GAAG,CAAC,cAA8B,EAAU,EAAE;IACtE,IAAI,WAAW,GAAG,mBAAmB,CAAC;IAEtC,+DAA+D;IAC/D,MAAM,eAAe,GAAoB,EAAE,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAE9B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,wCAAwC;YACxC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAEpD,oEAAoE;YACpE,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAE9B,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,WAAW,IAAI,wBAAwB,IAAI,sBAAsB,OAAO,cAAc,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,MAAK,MAAM,EAAE,CAAC;QACjC,WAAW,IAAI,iDAAiD,CAAC;IACnE,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare function convertLlamaToOpenAINonStream(chunk: any): {
|
|
2
|
+
id: any;
|
|
3
|
+
object: string;
|
|
4
|
+
created: number;
|
|
5
|
+
model: string;
|
|
6
|
+
choices: {
|
|
7
|
+
index: number;
|
|
8
|
+
message: {
|
|
9
|
+
role: string;
|
|
10
|
+
content: any;
|
|
11
|
+
};
|
|
12
|
+
logprobs: null;
|
|
13
|
+
finish_reason: any;
|
|
14
|
+
}[];
|
|
15
|
+
usage: {
|
|
16
|
+
prompt_tokens: any;
|
|
17
|
+
completion_tokens: any;
|
|
18
|
+
total_tokens: any;
|
|
19
|
+
prompt_tokens_details: {
|
|
20
|
+
cached_tokens: number;
|
|
21
|
+
};
|
|
22
|
+
completion_tokens_details: {
|
|
23
|
+
reasoning_tokens: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
system_fingerprint: any;
|
|
27
|
+
};
|
|
28
|
+
export default convertLlamaToOpenAINonStream;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// @ts-ignore: Ignore the any type in the msg
|
|
4
|
+
function convertLlamaToOpenAINonStream(chunk) {
|
|
5
|
+
return {
|
|
6
|
+
id: chunk.id || "default_id",
|
|
7
|
+
object: "text_completion",
|
|
8
|
+
created: Date.now(),
|
|
9
|
+
model: "aws-bedrock-llama",
|
|
10
|
+
choices: [
|
|
11
|
+
{
|
|
12
|
+
index: 0,
|
|
13
|
+
message: {
|
|
14
|
+
role: "assistant", // Default role since it's not provided in the input
|
|
15
|
+
content: chunk.generation.trim(), // Extract content from 'generation'
|
|
16
|
+
},
|
|
17
|
+
logprobs: null,
|
|
18
|
+
finish_reason: chunk.stop_reason || null, // Use stop reason from input if available
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
usage: {
|
|
22
|
+
prompt_tokens: chunk.prompt_token_count || 0, // Extract prompt tokens
|
|
23
|
+
completion_tokens: chunk.generation_token_count || 0, // Extract generation tokens
|
|
24
|
+
total_tokens: (chunk.prompt_token_count || 0) + (chunk.generation_token_count || 0), // Calculate total tokens
|
|
25
|
+
prompt_tokens_details: { cached_tokens: 0 }, // Placeholder details
|
|
26
|
+
completion_tokens_details: { reasoning_tokens: 0 }, // Placeholder details
|
|
27
|
+
},
|
|
28
|
+
system_fingerprint: chunk.system_fingerprint || "default_fingerprint", // Default fingerprint if not provided
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
exports.default = convertLlamaToOpenAINonStream;
|
|
32
|
+
//# sourceMappingURL=convertLlamaToOpenAINonStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertLlamaToOpenAINonStream.js","sourceRoot":"","sources":["../../../src/utils/outputFormatAdapterUtils/convertLlamaToOpenAINonStream.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,SAAS,6BAA6B,CAAC,KAAK;IAC1C,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,YAAY;QAC5B,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW,EAAE,oDAAoD;oBACvE,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,oCAAoC;iBACvE;gBACD,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE,0CAA0C;aACrF;SACF;QACD,KAAK,EAAE;YACL,aAAa,EAAE,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,wBAAwB;YACtE,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,IAAI,CAAC,EAAE,4BAA4B;YAClF,YAAY,EACV,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,CAAC,EAAE,yBAAyB;YAClG,qBAAqB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,sBAAsB;YACnE,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,sBAAsB;SAC3E;QACD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,qBAAqB,EAAE,sCAAsC;KAC9G,CAAC;AACJ,CAAC;AAED,kBAAe,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function convertLlamaToOpenAIStream(chunk) {
|
|
4
|
+
var _a;
|
|
5
|
+
const isStop = chunk.stop_reason !== null;
|
|
6
|
+
return {
|
|
7
|
+
id: chunk.id, // Use input chunk's ID
|
|
8
|
+
object: "chat.completion.chunk",
|
|
9
|
+
created: chunk.created || Math.floor(Date.now() / 1000),
|
|
10
|
+
model: "aws-bedrock-llama",
|
|
11
|
+
choices: [
|
|
12
|
+
{
|
|
13
|
+
index: 0,
|
|
14
|
+
delta: {
|
|
15
|
+
content: chunk.generation || ((_a = chunk.delta) === null || _a === void 0 ? void 0 : _a.content) || "",
|
|
16
|
+
},
|
|
17
|
+
logprobs: null,
|
|
18
|
+
finish_reason: isStop ? "stop" : null,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
logprobs: null,
|
|
22
|
+
finish_reason: chunk.stop_reason,
|
|
23
|
+
usage: isStop
|
|
24
|
+
? {
|
|
25
|
+
prompt_tokens: chunk.prompt_token_count,
|
|
26
|
+
completion_tokens: chunk.generation_token_count,
|
|
27
|
+
total_tokens: chunk.prompt_token_count + chunk.generation_token_count,
|
|
28
|
+
prompt_tokens_details: { cached_tokens: 0, audio_tokens: 0 },
|
|
29
|
+
completion_tokens_details: {
|
|
30
|
+
reasoning_tokens: 0,
|
|
31
|
+
audio_tokens: 0,
|
|
32
|
+
accepted_prediction_tokens: 0,
|
|
33
|
+
rejected_prediction_tokens: 0,
|
|
34
|
+
},
|
|
35
|
+
}
|
|
36
|
+
: null,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.default = convertLlamaToOpenAIStream;
|
|
40
|
+
//# sourceMappingURL=convertLlamaToOpenAIStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertLlamaToOpenAIStream.js","sourceRoot":"","sources":["../../../src/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStream.ts"],"names":[],"mappings":";;AAAA,SAAS,0BAA0B,CAAC,KAAU;;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAC1C,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,uBAAuB;QACrC,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACvD,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK,CAAC,UAAU,KAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,OAAO,CAAA,IAAI,EAAE;iBACxD;gBACD,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;aACtC;SACF;QACD,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,KAAK,CAAC,WAAW;QAChC,KAAK,EAAE,MAAM;YACX,CAAC,CAAC;gBACE,aAAa,EAAE,KAAK,CAAC,kBAAkB;gBACvC,iBAAiB,EAAE,KAAK,CAAC,sBAAsB;gBAC/C,YAAY,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,sBAAsB;gBACrE,qBAAqB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;gBAC5D,yBAAyB,EAAE;oBACzB,gBAAgB,EAAE,CAAC;oBACnB,YAAY,EAAE,CAAC;oBACf,0BAA0B,EAAE,CAAC;oBAC7B,0BAA0B,EAAE,CAAC;iBAC9B;aACF;YACH,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AAED,kBAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare function convertLlamaToOpenAIStreamToolCall(chunk: any): {
|
|
2
|
+
id: string;
|
|
3
|
+
object: string;
|
|
4
|
+
created: number;
|
|
5
|
+
model: string;
|
|
6
|
+
system_fingerprint: null;
|
|
7
|
+
choices: {
|
|
8
|
+
index: number;
|
|
9
|
+
delta: {
|
|
10
|
+
role: string;
|
|
11
|
+
content: null;
|
|
12
|
+
function_call: {
|
|
13
|
+
name: any;
|
|
14
|
+
arguments: string;
|
|
15
|
+
};
|
|
16
|
+
refusal: null;
|
|
17
|
+
};
|
|
18
|
+
logprobs: null;
|
|
19
|
+
finish_reason: any;
|
|
20
|
+
}[];
|
|
21
|
+
usage: null;
|
|
22
|
+
};
|
|
23
|
+
export default convertLlamaToOpenAIStreamToolCall;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// @ts-ignore: Ignore the any type in the msg
|
|
4
|
+
function convertLlamaToOpenAIStreamToolCall(chunk) {
|
|
5
|
+
// @ts-ignore: Ignore the any type in the msg
|
|
6
|
+
function parseFunctionCall(generation) {
|
|
7
|
+
const functionCallRegex = /<function>\s*\{\s*"function_name":\s*"([^"]+)",\s*"parameters":\s*(\{\s*\})?\s*\}<\/function>/;
|
|
8
|
+
const match = generation.match(functionCallRegex);
|
|
9
|
+
if (match) {
|
|
10
|
+
const functionCall = {
|
|
11
|
+
name: match[1],
|
|
12
|
+
arguments: match[2] ? JSON.stringify(JSON.parse(match[2])) : "{}",
|
|
13
|
+
};
|
|
14
|
+
return functionCall;
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const functionCall = parseFunctionCall(chunk.generation);
|
|
19
|
+
return {
|
|
20
|
+
id: `stream-${Date.now()}`,
|
|
21
|
+
object: "chat.completion.chunk",
|
|
22
|
+
created: Math.floor(Date.now() / 1000),
|
|
23
|
+
model: "aws-bedrock-llama3x",
|
|
24
|
+
system_fingerprint: null,
|
|
25
|
+
choices: [
|
|
26
|
+
{
|
|
27
|
+
index: 0,
|
|
28
|
+
delta: {
|
|
29
|
+
role: "assistant",
|
|
30
|
+
content: null,
|
|
31
|
+
function_call: functionCall || { name: null, arguments: "{}" }, // Default empty arguments
|
|
32
|
+
refusal: null,
|
|
33
|
+
},
|
|
34
|
+
logprobs: null,
|
|
35
|
+
finish_reason: chunk.stop_reason || null,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
usage: null,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
exports.default = convertLlamaToOpenAIStreamToolCall;
|
|
42
|
+
//# sourceMappingURL=convertLlamaToOpenAIStreamToolCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertLlamaToOpenAIStreamToolCall.js","sourceRoot":"","sources":["../../../src/utils/outputFormatAdapterUtils/convertLlamaToOpenAIStreamToolCall.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,SAAS,kCAAkC,CAAC,KAAK;IAC/C,6CAA6C;IAC7C,SAAS,iBAAiB,CAAC,UAAU;QACnC,MAAM,iBAAiB,GACrB,+FAA+F,CAAC;QAClG,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAElD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;aAClE,CAAC;YACF,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzD,OAAO;QACL,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,KAAK,EAAE,qBAAqB;QAC5B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI;oBACb,aAAa,EAAE,YAAY,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,0BAA0B;oBAC1F,OAAO,EAAE,IAAI;iBACd;gBACD,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;aACzC;SACF;QACD,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,kBAAe,kCAAkC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-proxy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.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",
|