llm-proxy 1.3.9 → 1.3.11
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 +45 -26
- package/dist/index.js.map +1 -1
- package/dist/middleware/InputFormatAdapter.js.map +1 -1
- package/dist/middleware/OutputFormatAdapter.js.map +1 -1
- package/dist/middleware/ProviderFinder.js.map +1 -1
- package/dist/services/AwsBedrockAnthropicService.d.ts +15 -3
- package/dist/services/AwsBedrockAnthropicService.js +27 -22
- package/dist/services/AwsBedrockAnthropicService.js.map +1 -1
- package/dist/services/ClientService.d.ts +16 -4
- package/dist/services/ClientService.js.map +1 -1
- package/dist/services/OpenAIService.d.ts +17 -3
- package/dist/services/OpenAIService.js +18 -17
- package/dist/services/OpenAIService.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/clients/AwsBedrockAnthropicClient.d.ts +0 -0
- package/dist/clients/AwsBedrockAnthropicClient.js +0 -53
- package/dist/clients/AwsBedrockAnthropicClient.js.map +0 -1
- package/dist/clients/OpenAIClient.d.ts +0 -0
- package/dist/clients/OpenAIClient.js +0 -59
- package/dist/clients/OpenAIClient.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -33,24 +33,25 @@ var __await = (this && this.__await) || function (v) { return this instanceof __
|
|
|
33
33
|
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
34
34
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
35
35
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
36
|
-
return i =
|
|
37
|
-
function
|
|
38
|
-
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
36
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
37
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
39
38
|
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
40
39
|
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
41
40
|
function fulfill(value) { resume("next", value); }
|
|
42
41
|
function reject(value) { resume("throw", value); }
|
|
43
42
|
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
44
43
|
};
|
|
44
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
+
};
|
|
45
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.generateLLMResponse =
|
|
47
|
-
exports.generateLLMStreamResponse = generateLLMStreamResponse;
|
|
48
|
+
exports.generateLLMStreamResponse = exports.generateLLMResponse = void 0;
|
|
48
49
|
const ProviderFinder_1 = require("./middleware/ProviderFinder");
|
|
49
50
|
const InputFormatAdapter_1 = require("./middleware/InputFormatAdapter");
|
|
50
51
|
const OutputFormatAdapter_1 = require("./middleware/OutputFormatAdapter");
|
|
51
|
-
const AwsBedrockAnthropicService_1 = require("./services/AwsBedrockAnthropicService");
|
|
52
|
-
const OpenAIService_1 = require("./services/OpenAIService");
|
|
53
52
|
const types_1 = require("./types");
|
|
53
|
+
const OpenAIService_1 = __importDefault(require("./services/OpenAIService"));
|
|
54
|
+
const AwsBedrockAnthropicService_1 = __importDefault(require("./services/AwsBedrockAnthropicService"));
|
|
54
55
|
// Main function for non-streaming requests
|
|
55
56
|
function generateLLMResponse(params) {
|
|
56
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -61,31 +62,38 @@ function generateLLMResponse(params) {
|
|
|
61
62
|
let service;
|
|
62
63
|
if (provider === types_1.Providers.OPENAI) {
|
|
63
64
|
if (!credentials.apiKey) {
|
|
64
|
-
|
|
65
|
+
return Promise.reject("OpenAI API key is required for OpenAI models.");
|
|
65
66
|
}
|
|
66
|
-
service = new OpenAIService_1.
|
|
67
|
+
service = new OpenAIService_1.default(credentials.apiKey);
|
|
67
68
|
}
|
|
68
69
|
else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
|
|
69
70
|
const awsConfig = credentials.awsConfig;
|
|
70
71
|
if (!awsConfig) {
|
|
71
|
-
|
|
72
|
+
return Promise.reject("AWS credentials are required for Bedrock models.");
|
|
72
73
|
}
|
|
73
|
-
service = new AwsBedrockAnthropicService_1.
|
|
74
|
+
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
74
75
|
}
|
|
75
76
|
else {
|
|
76
|
-
|
|
77
|
+
return Promise.reject("Unsupported provider");
|
|
77
78
|
}
|
|
78
79
|
// Step 2: Adapt messages and extract the system prompt
|
|
79
80
|
const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.InputFormatAdapter.adaptMessages(messages, provider);
|
|
80
81
|
// Step 3: Generate the completion
|
|
81
|
-
const response = yield service.generateCompletion(
|
|
82
|
-
|
|
82
|
+
const response = yield service.generateCompletion({
|
|
83
|
+
messages: adaptedMessages,
|
|
84
|
+
model,
|
|
85
|
+
max_tokens,
|
|
86
|
+
temperature,
|
|
87
|
+
functions,
|
|
88
|
+
systemPrompt
|
|
89
|
+
});
|
|
83
90
|
// Step 4: Adapt the response if needed
|
|
84
91
|
return provider === types_1.Providers.OPENAI
|
|
85
92
|
? response
|
|
86
93
|
: OutputFormatAdapter_1.OutputFormatAdapter.adaptResponse(response, provider);
|
|
87
94
|
});
|
|
88
95
|
}
|
|
96
|
+
exports.generateLLMResponse = generateLLMResponse;
|
|
89
97
|
// Main function for streaming requests
|
|
90
98
|
function generateLLMStreamResponse(params) {
|
|
91
99
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -96,37 +104,47 @@ function generateLLMStreamResponse(params) {
|
|
|
96
104
|
let service;
|
|
97
105
|
if (provider === types_1.Providers.OPENAI) {
|
|
98
106
|
if (!credentials.apiKey) {
|
|
99
|
-
|
|
107
|
+
return Promise.reject("OpenAI API key is required for OpenAI models.");
|
|
100
108
|
}
|
|
101
|
-
service = new OpenAIService_1.
|
|
109
|
+
service = new OpenAIService_1.default(credentials.apiKey);
|
|
102
110
|
}
|
|
103
111
|
else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
|
|
104
112
|
const awsConfig = credentials.awsConfig;
|
|
105
113
|
if (!awsConfig) {
|
|
106
|
-
|
|
114
|
+
return Promise.reject("AWS credentials are required for Bedrock models.");
|
|
107
115
|
}
|
|
108
|
-
service = new AwsBedrockAnthropicService_1.
|
|
116
|
+
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
109
117
|
}
|
|
110
118
|
else {
|
|
111
|
-
|
|
119
|
+
return Promise.reject("Unsupported provider");
|
|
112
120
|
}
|
|
113
121
|
// Step 2: Adapt messages and extract the system prompt
|
|
114
122
|
const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.InputFormatAdapter.adaptMessages(messages, provider);
|
|
115
123
|
// Step 3: Generate the streaming completion
|
|
116
|
-
const stream = service.generateStreamCompletion(
|
|
117
|
-
|
|
124
|
+
const stream = service.generateStreamCompletion({
|
|
125
|
+
messages: adaptedMessages,
|
|
126
|
+
model,
|
|
127
|
+
max_tokens,
|
|
128
|
+
temperature,
|
|
129
|
+
systemPrompt
|
|
130
|
+
});
|
|
118
131
|
// Step 4: Create and return the async generator
|
|
119
132
|
function streamGenerator() {
|
|
120
133
|
return __asyncGenerator(this, arguments, function* streamGenerator_1() {
|
|
121
134
|
var _a, e_1, _b, _c;
|
|
122
135
|
try {
|
|
123
|
-
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a;
|
|
136
|
+
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a;) {
|
|
124
137
|
_c = stream_1_1.value;
|
|
125
138
|
_d = false;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
139
|
+
try {
|
|
140
|
+
const chunk = _c;
|
|
141
|
+
yield yield __await(provider === types_1.Providers.OPENAI
|
|
142
|
+
? chunk
|
|
143
|
+
: OutputFormatAdapter_1.OutputFormatAdapter.adaptResponse(chunk, provider));
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
_d = true;
|
|
147
|
+
}
|
|
130
148
|
}
|
|
131
149
|
}
|
|
132
150
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -141,5 +159,6 @@ function generateLLMStreamResponse(params) {
|
|
|
141
159
|
return streamGenerator();
|
|
142
160
|
});
|
|
143
161
|
}
|
|
162
|
+
exports.generateLLMStreamResponse = generateLLMStreamResponse;
|
|
144
163
|
__exportStar(require("./types"), exports);
|
|
145
164
|
//# sourceMappingURL=index.js.map
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":";;;AAAA,oCAOkB;AAElB,MAAa,kBAAkB;IAC7B,MAAM,CAAC,aAAa,CAClB,QAAkB,EAClB,QAAmB;QAKnB,QAAQ,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":";;;AAAA,oCAOkB;AAElB,MAAa,kBAAkB;IAC7B,MAAM,CAAC,aAAa,CAClB,QAAkB,EAClB,QAAmB;QAKnB,QAAQ,QAAQ,EAAE;YAChB,KAAK,iBAAS,CAAC,MAAM;gBACnB,OAAO;oBACL,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACpC,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;4BAC3B,OAAO;gCACL,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,OAAO,EAAE,GAAG,CAAC,OAAO;gCACpB,IAAI,EAAG,GAA6B,CAAC,IAAI;6BAC1C,CAAC;yBACH;wBACD,OAAO;4BACL,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,OAAO,EAAE,GAAG,CAAC,OAAiB;yBAC/B,CAAC;oBACJ,CAAC,CAAmB;iBACrB,CAAC;YAEJ,KAAK,iBAAS,CAAC,iBAAiB,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;iBAClE;gBAED,iDAAiD;gBACjD,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAEjD,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAClC,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;iBACH;gBAED,MAAM,YAAY,GAAG,YAAY,CAAC,OAAiB,CAAC;gBAEpD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACjD,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;oBAChD,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,mCAA2B,CAAC,IAAI;4BACtC,IAAI,EAAE,GAAG,CAAC,OAAiB;yBAC5B;qBACF;iBACF,CAAC,CAA8B,CAAC;gBAEjC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;aAC1C;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AA3DD,gDA2DC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":";;;AAAA,oCAUkB;AAElB,MAAa,mBAAmB;IAC9B,MAAM,CAAC,aAAa,CAAC,QAAa,EAAE,QAAmB;QACrD,IAAI,CAAC,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;;AAAA,oCAIkB;AAElB,MAAa,cAAc;IACzB,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,sDAAsD;QACtD,IACE,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,KAA4B,CAAC,EACzE
|
|
1
|
+
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;;AAAA,oCAIkB;AAElB,MAAa,cAAc;IACzB,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,sDAAsD;QACtD,IACE,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,KAA4B,CAAC,EACzE;YACA,OAAO,iBAAS,CAAC,MAAM,CAAC;SACzB;QACD,iEAAiE;QACjE,IACE,MAAM,CAAC,MAAM,CAAC,qCAA6B,CAAC,CAAC,QAAQ,CACnD,KAAsC,CACvC,EACD;YACA,OAAO,iBAAS,CAAC,iBAAiB,CAAC;SACpC;QACD,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAnBD,wCAmBC"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { BedrockAnthropicParsedChunk, BedrockAnthropicResponse, Messages } from "../types";
|
|
2
2
|
import { ClientService } from "./ClientService";
|
|
3
|
-
export
|
|
3
|
+
export default class AwsBedrockAnthropicService implements ClientService {
|
|
4
4
|
private bedrock;
|
|
5
5
|
constructor(awsAccessKey: string, awsSecretKey: string, region: string);
|
|
6
|
-
generateCompletion(
|
|
7
|
-
|
|
6
|
+
generateCompletion(params: {
|
|
7
|
+
messages: Messages;
|
|
8
|
+
model: string;
|
|
9
|
+
max_tokens?: number;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
systemPrompt?: string;
|
|
12
|
+
}): Promise<BedrockAnthropicResponse>;
|
|
13
|
+
generateStreamCompletion(params: {
|
|
14
|
+
messages: Messages;
|
|
15
|
+
model: string;
|
|
16
|
+
max_tokens?: number;
|
|
17
|
+
temperature?: number;
|
|
18
|
+
systemPrompt?: string;
|
|
19
|
+
}): AsyncGenerator<BedrockAnthropicParsedChunk, void, unknown>;
|
|
8
20
|
}
|
|
@@ -19,9 +19,8 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
19
19
|
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
20
20
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
21
21
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
22
|
-
return i =
|
|
23
|
-
function
|
|
24
|
-
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
22
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
23
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
25
24
|
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
26
25
|
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
27
26
|
function fulfill(value) { resume("next", value); }
|
|
@@ -29,7 +28,6 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
|
|
|
29
28
|
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
30
29
|
};
|
|
31
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.AwsBedrockAnthropicService = void 0;
|
|
33
31
|
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
34
32
|
class AwsBedrockAnthropicService {
|
|
35
33
|
constructor(awsAccessKey, awsSecretKey, region) {
|
|
@@ -41,10 +39,11 @@ class AwsBedrockAnthropicService {
|
|
|
41
39
|
},
|
|
42
40
|
});
|
|
43
41
|
}
|
|
44
|
-
generateCompletion(
|
|
42
|
+
generateCompletion(params) {
|
|
45
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
const { messages, model, max_tokens, temperature, systemPrompt } = params;
|
|
46
45
|
if (!model) {
|
|
47
|
-
|
|
46
|
+
return Promise.reject("Model ID is required for AwsBedrockAnthropicService");
|
|
48
47
|
}
|
|
49
48
|
const body = JSON.stringify({
|
|
50
49
|
anthropic_version: "bedrock-2023-05-31",
|
|
@@ -63,12 +62,13 @@ class AwsBedrockAnthropicService {
|
|
|
63
62
|
return JSON.parse(new TextDecoder().decode(response.body));
|
|
64
63
|
});
|
|
65
64
|
}
|
|
66
|
-
generateStreamCompletion(
|
|
65
|
+
generateStreamCompletion(params) {
|
|
66
|
+
var _a;
|
|
67
67
|
return __asyncGenerator(this, arguments, function* generateStreamCompletion_1() {
|
|
68
|
-
var
|
|
69
|
-
|
|
68
|
+
var _b, e_1, _c, _d;
|
|
69
|
+
const { messages, model, max_tokens, temperature, systemPrompt } = params;
|
|
70
70
|
if (!model) {
|
|
71
|
-
|
|
71
|
+
return yield __await(Promise.reject("Model ID is required for AwsBedrockAnthropicService"));
|
|
72
72
|
}
|
|
73
73
|
const body = JSON.stringify({
|
|
74
74
|
anthropic_version: "bedrock-2023-05-31",
|
|
@@ -87,26 +87,31 @@ class AwsBedrockAnthropicService {
|
|
|
87
87
|
if (response.body) {
|
|
88
88
|
const decoder = new TextDecoder("utf-8");
|
|
89
89
|
try {
|
|
90
|
-
for (var _e = true, _f = __asyncValues(response.body), _g; _g = yield __await(_f.next()),
|
|
91
|
-
|
|
90
|
+
for (var _e = true, _f = __asyncValues(response.body), _g; _g = yield __await(_f.next()), _b = _g.done, !_b;) {
|
|
91
|
+
_d = _g.value;
|
|
92
92
|
_e = false;
|
|
93
|
-
const payload = _c;
|
|
94
|
-
const decodedString = decoder.decode((_d = payload.chunk) === null || _d === void 0 ? void 0 : _d.bytes, {
|
|
95
|
-
stream: true,
|
|
96
|
-
});
|
|
97
93
|
try {
|
|
98
|
-
const
|
|
99
|
-
|
|
94
|
+
const payload = _d;
|
|
95
|
+
const decodedString = decoder.decode((_a = payload.chunk) === null || _a === void 0 ? void 0 : _a.bytes, {
|
|
96
|
+
stream: true,
|
|
97
|
+
});
|
|
98
|
+
try {
|
|
99
|
+
const jsonObject = JSON.parse(decodedString);
|
|
100
|
+
yield yield __await(jsonObject);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return yield __await(Promise.reject(error));
|
|
104
|
+
}
|
|
100
105
|
}
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
finally {
|
|
107
|
+
_e = true;
|
|
103
108
|
}
|
|
104
109
|
}
|
|
105
110
|
}
|
|
106
111
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
107
112
|
finally {
|
|
108
113
|
try {
|
|
109
|
-
if (!_e && !
|
|
114
|
+
if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));
|
|
110
115
|
}
|
|
111
116
|
finally { if (e_1) throw e_1.error; }
|
|
112
117
|
}
|
|
@@ -114,5 +119,5 @@ class AwsBedrockAnthropicService {
|
|
|
114
119
|
});
|
|
115
120
|
}
|
|
116
121
|
}
|
|
117
|
-
exports.
|
|
122
|
+
exports.default = AwsBedrockAnthropicService;
|
|
118
123
|
//# sourceMappingURL=AwsBedrockAnthropicService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwsBedrockAnthropicService.js","sourceRoot":"","sources":["../../src/services/AwsBedrockAnthropicService.ts"],"names":[],"mappings":"
|
|
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;IAEK,kBAAkB,CAAC,MAMxB;;YACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YAE1E,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,OAAO,CAAC,MAAM,CACnB,qDAAqD,CACtD,CAAC;aACH;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,iBAAiB,EAAE,oBAAoB;gBACvC,UAAU;gBACV,WAAW;gBACX,QAAQ;gBACR,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,2CAAkB,CAAC;gBACrC,OAAO,EAAE,KAAK;gBACd,IAAI;gBACJ,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;KAAA;IAEM,wBAAwB,CAAC,MAM/B;;;;YACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YAE1E,IAAI,CAAC,KAAK,EAAE;gBACV,qBAAO,OAAO,CAAC,MAAM,CACnB,qDAAqD,CACtD,EAAC;aACH;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,iBAAiB,EAAE,oBAAoB;gBACvC,UAAU;gBACV,WAAW;gBACX,QAAQ;gBACR,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,6DAAoC,CAAC;gBACvD,OAAO,EAAE,KAAK;gBACd,IAAI;gBACJ,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,cAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC;YAElD,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;;oBAEzC,KAA4B,eAAA,KAAA,cAAA,QAAQ,CAAC,IAAI,CAAA,IAAA;wBAAb,cAAa;wBAAb,WAAa;;4BAA9B,MAAM,OAAO,KAAA,CAAA;4BACtB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK,EAAE;gCACzD,MAAM,EAAE,IAAI;6BACb,CAAC,CAAC;4BAEH,IAAI;gCACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gCAC7C,oBAAM,UAAU,CAAA,CAAC;6BAClB;4BAAC,OAAO,KAAK,EAAE;gCACd,qBAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;6BAC9B;;;;;qBACF;;;;;;;;;aACF;;KACF;CACF;AAhGD,6CAgGC"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import { BedrockAnthropicParsedChunk, LLMResponse, Messages } from "../types";
|
|
2
2
|
export interface ClientService {
|
|
3
|
-
generateCompletion(messages
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
generateCompletion({ messages, model, max_tokens, temperature, functions, systemPrompt, }: {
|
|
4
|
+
messages: Messages;
|
|
5
|
+
model?: string;
|
|
6
|
+
max_tokens?: number;
|
|
7
|
+
temperature?: number;
|
|
8
|
+
functions?: any;
|
|
9
|
+
systemPrompt?: string;
|
|
10
|
+
}): Promise<LLMResponse>;
|
|
11
|
+
generateStreamCompletion({ messages, model, max_tokens, temperature, functions, systemPrompt, }: {
|
|
12
|
+
messages: Messages;
|
|
13
|
+
model?: string;
|
|
14
|
+
max_tokens?: number;
|
|
15
|
+
temperature?: number;
|
|
16
|
+
functions?: any;
|
|
17
|
+
systemPrompt?: string;
|
|
18
|
+
}): AsyncGenerator<BedrockAnthropicParsedChunk, void, unknown>;
|
|
7
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientService.js","sourceRoot":"","sources":["../../src/services/ClientService.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ClientService.js","sourceRoot":"","sources":["../../src/services/ClientService.ts"],"names":[],"mappings":";;AAoCA,gBAAgB;AAChB,MAAM;AACN,yBAAyB;AACzB,+CAA+C;AAC/C,oDAAoD;AACpD,OAAO"}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import { OpenAIMessages, OpenAIResponse } from "../types";
|
|
2
2
|
import { ClientService } from "./ClientService";
|
|
3
|
-
export
|
|
3
|
+
export default class OpenAIService implements ClientService {
|
|
4
4
|
private openai;
|
|
5
5
|
constructor(apiKey: string);
|
|
6
|
-
generateCompletion(messages
|
|
7
|
-
|
|
6
|
+
generateCompletion({ messages, model, max_tokens, temperature, functions, }: {
|
|
7
|
+
messages: OpenAIMessages;
|
|
8
|
+
model: string;
|
|
9
|
+
max_tokens: number;
|
|
10
|
+
temperature: number;
|
|
11
|
+
systemPrompt?: string;
|
|
12
|
+
functions?: any;
|
|
13
|
+
}): Promise<OpenAIResponse>;
|
|
14
|
+
generateStreamCompletion({ messages, model, max_tokens, temperature, functions, }: {
|
|
15
|
+
messages: OpenAIMessages;
|
|
16
|
+
model: string;
|
|
17
|
+
max_tokens: number;
|
|
18
|
+
temperature: number;
|
|
19
|
+
systemPrompt?: string;
|
|
20
|
+
functions?: any;
|
|
21
|
+
}): AsyncGenerator<any, void, unknown>;
|
|
8
22
|
}
|
|
@@ -19,9 +19,8 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
19
19
|
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
20
20
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
21
21
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
22
|
-
return i =
|
|
23
|
-
function
|
|
24
|
-
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
22
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
23
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
25
24
|
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
26
25
|
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
27
26
|
function fulfill(value) { resume("next", value); }
|
|
@@ -32,20 +31,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
32
31
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
32
|
};
|
|
34
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.OpenAIService = void 0;
|
|
36
34
|
const openai_1 = __importDefault(require("openai"));
|
|
37
35
|
class OpenAIService {
|
|
38
36
|
constructor(apiKey) {
|
|
39
37
|
this.openai = new openai_1.default({ apiKey });
|
|
40
38
|
}
|
|
41
|
-
generateCompletion(messages, model, max_tokens, temperature,
|
|
39
|
+
generateCompletion({ messages, model, max_tokens, temperature, functions, }) {
|
|
42
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
41
|
if (!model) {
|
|
44
|
-
|
|
42
|
+
return Promise.reject("Model ID is required for OpenAIService.");
|
|
45
43
|
}
|
|
46
44
|
try {
|
|
47
45
|
const response = yield this.openai.chat.completions.create({
|
|
48
|
-
model,
|
|
46
|
+
model,
|
|
49
47
|
messages,
|
|
50
48
|
max_tokens,
|
|
51
49
|
temperature,
|
|
@@ -54,16 +52,15 @@ class OpenAIService {
|
|
|
54
52
|
return response;
|
|
55
53
|
}
|
|
56
54
|
catch (error) {
|
|
57
|
-
|
|
58
|
-
throw error;
|
|
55
|
+
return Promise.reject(error);
|
|
59
56
|
}
|
|
60
57
|
});
|
|
61
58
|
}
|
|
62
|
-
generateStreamCompletion(messages, model, max_tokens, temperature,
|
|
59
|
+
generateStreamCompletion({ messages, model, max_tokens, temperature, functions, }) {
|
|
63
60
|
return __asyncGenerator(this, arguments, function* generateStreamCompletion_1() {
|
|
64
61
|
var _a, e_1, _b, _c;
|
|
65
62
|
if (!model) {
|
|
66
|
-
|
|
63
|
+
return yield __await(Promise.reject("Model ID is required for OpenAIService."));
|
|
67
64
|
}
|
|
68
65
|
try {
|
|
69
66
|
const stream = yield __await(this.openai.chat.completions.create({
|
|
@@ -78,11 +75,16 @@ class OpenAIService {
|
|
|
78
75
|
},
|
|
79
76
|
}));
|
|
80
77
|
try {
|
|
81
|
-
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a;
|
|
78
|
+
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a;) {
|
|
82
79
|
_c = stream_1_1.value;
|
|
83
80
|
_d = false;
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
try {
|
|
82
|
+
const chunk = _c;
|
|
83
|
+
yield yield __await(chunk);
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
_d = true;
|
|
87
|
+
}
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -94,11 +96,10 @@ class OpenAIService {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
catch (error) {
|
|
97
|
-
|
|
98
|
-
throw error;
|
|
99
|
+
return yield __await(Promise.reject(error));
|
|
99
100
|
}
|
|
100
101
|
});
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
|
-
exports.
|
|
104
|
+
exports.default = OpenAIService;
|
|
104
105
|
//# sourceMappingURL=OpenAIService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIService.js","sourceRoot":"","sources":["../../src/services/OpenAIService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenAIService.js","sourceRoot":"","sources":["../../src/services/OpenAIService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAI5B,MAAqB,aAAa;IAGhC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEK,kBAAkB,CAAC,EACvB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,SAAS,GAQV;;YACC,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;aAClE;YAED,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACzD,KAAK;oBACL,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,SAAS;iBACV,CAAC,CAAC;gBACH,OAAO,QAA0B,CAAC;aACnC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC9B;QACH,CAAC;KAAA;IAEM,wBAAwB,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,SAAS,GAQV;;;YACC,IAAI,CAAC,KAAK,EAAE;gBACV,qBAAO,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,EAAC;aAClE;YAED,IAAI;gBACF,MAAM,MAAM,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACvD,KAAK;oBACL,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,SAAS;oBACT,MAAM,EAAE,IAAI;oBACZ,cAAc,EAAE;wBACd,aAAa,EAAE,IAAI;qBACpB;iBACF,CAAC,CAAA,CAAC;;oBAEH,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA;wBAAN,sBAAM;wBAAN,WAAM;;4BAArB,MAAM,KAAK,KAAA,CAAA;4BACpB,oBAAM,KAAK,CAAA,CAAC;;;;;qBACb;;;;;;;;;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,qBAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;aAC9B;QACH,CAAC;KAAA;CACF;AA7ED,gCA6EC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -64,11 +64,11 @@ export type OpenAIFunctionMessage = {
|
|
|
64
64
|
export type OpenAIMessage = OpenAISystemMessage | OpenAIUserMessage | OpenAIAssistantMessage | OpenAIToolMessage | OpenAIFunctionMessage;
|
|
65
65
|
export type OpenAIMessages = OpenAIMessage[];
|
|
66
66
|
export declare enum OpenAISupportedLLMs {
|
|
67
|
-
GPT_4_O_LAEST = "chatgpt-4o-latest"
|
|
67
|
+
GPT_4_O_LAEST = "chatgpt-4o-latest",
|
|
68
68
|
GPT_4_O = "gpt-4o",
|
|
69
69
|
GPT_4_O_MINI = "gpt-4o-mini",
|
|
70
70
|
GPT_4_TURBO = "gpt-4-turbo",
|
|
71
|
-
GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview"
|
|
71
|
+
GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview",
|
|
72
72
|
GPT_3_5_TURBO = "gpt-3.5-turbo"
|
|
73
73
|
}
|
|
74
74
|
export interface OpenAIChoices {
|
package/dist/types/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var Providers;
|
|
|
7
7
|
Providers["OPENAI"] = "OpenAI";
|
|
8
8
|
Providers["ANTHROPIC_BEDROCK"] = "AnthropicBedrock";
|
|
9
9
|
Providers["COHERE_BEDROCK"] = "CohereBedrock";
|
|
10
|
-
})(Providers
|
|
10
|
+
})(Providers = exports.Providers || (exports.Providers = {}));
|
|
11
11
|
var OpenAISupportedLLMs;
|
|
12
12
|
(function (OpenAISupportedLLMs) {
|
|
13
13
|
OpenAISupportedLLMs["GPT_4_O_LAEST"] = "chatgpt-4o-latest";
|
|
@@ -16,7 +16,7 @@ var OpenAISupportedLLMs;
|
|
|
16
16
|
OpenAISupportedLLMs["GPT_4_TURBO"] = "gpt-4-turbo";
|
|
17
17
|
OpenAISupportedLLMs["GPT_4_TURBO_PREVIEW"] = "gpt-4-turbo-preview";
|
|
18
18
|
OpenAISupportedLLMs["GPT_3_5_TURBO"] = "gpt-3.5-turbo";
|
|
19
|
-
})(OpenAISupportedLLMs
|
|
19
|
+
})(OpenAISupportedLLMs = exports.OpenAISupportedLLMs || (exports.OpenAISupportedLLMs = {}));
|
|
20
20
|
// AWS BEDROCK
|
|
21
21
|
// AWS BEDROCK ANTHROPIC
|
|
22
22
|
var BedrockAnthropicSupportedLLMs;
|
|
@@ -25,12 +25,12 @@ var BedrockAnthropicSupportedLLMs;
|
|
|
25
25
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_SONNET"] = "anthropic.claude-3-sonnet-20240229-v1:0";
|
|
26
26
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_OPUS"] = "anthropic.claude-3-opus-20240229-v1:0";
|
|
27
27
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_SONNET"] = "anthropic.claude-3-5-sonnet-20241022-v2:0";
|
|
28
|
-
})(BedrockAnthropicSupportedLLMs
|
|
28
|
+
})(BedrockAnthropicSupportedLLMs = exports.BedrockAnthropicSupportedLLMs || (exports.BedrockAnthropicSupportedLLMs = {}));
|
|
29
29
|
var BedrockAnthropicContentType;
|
|
30
30
|
(function (BedrockAnthropicContentType) {
|
|
31
31
|
BedrockAnthropicContentType["TEXT"] = "text";
|
|
32
32
|
BedrockAnthropicContentType["IMAGE"] = "image";
|
|
33
33
|
BedrockAnthropicContentType["TOOL_USE"] = "tool_use";
|
|
34
34
|
BedrockAnthropicContentType["TOOL_RESULT"] = "tool_result";
|
|
35
|
-
})(BedrockAnthropicContentType
|
|
35
|
+
})(BedrockAnthropicContentType = exports.BedrockAnthropicContentType || (exports.BedrockAnthropicContentType = {}));
|
|
36
36
|
//# 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,6CAAgC,CAAA;AAClC,CAAC,EAJW,SAAS,
|
|
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,6CAAgC,CAAA;AAClC,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AA8ED,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,0DAAmC,CAAA;IACnC,yCAAkB,CAAA;IAClB,mDAA4B,CAAA;IAC5B,kDAA2B,CAAA;IAC3B,kEAA2C,CAAA;IAC3C,sDAA+B,CAAA;AACjC,CAAC,EAPW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAO9B;AA6CD,cAAc;AAEd,wBAAwB;AAExB,IAAY,6BAKX;AALD,WAAY,6BAA6B;IACvC,0FAAyD,CAAA;IACzD,4FAA2D,CAAA;IAC3D,wFAAuD,CAAA;IACvD,gGAA+D,CAAA;AACjE,CAAC,EALW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAKxC;AAED,IAAY,2BAKX;AALD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,8CAAe,CAAA;IACf,oDAAqB,CAAA;IACrB,0DAA2B,CAAA;AAC7B,CAAC,EALW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAKtC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-proxy",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.11",
|
|
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",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"aws-sdk": "^2.1691.0",
|
|
31
31
|
"axios": "^1.7.7",
|
|
32
32
|
"dotenv": "^16.4.5",
|
|
33
|
-
"llm-proxy": "^1.3.
|
|
33
|
+
"llm-proxy": "^1.3.11",
|
|
34
34
|
"openai": "^4.69.0"
|
|
35
35
|
}
|
|
36
|
-
}
|
|
36
|
+
}
|
|
File without changes
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { AwsBedrockAnthropicService } from "../services/AwsBedrockAnthropicService";
|
|
3
|
-
// import { BedrockAnthropicParsedChunk, Messages, SupportedLLMs } from "../types";
|
|
4
|
-
// export class AwsBedrockAnthropicChatClient {
|
|
5
|
-
// private client: AwsBedrockAnthropicService;
|
|
6
|
-
// constructor() {
|
|
7
|
-
// this.client = new AwsBedrockAnthropicService();
|
|
8
|
-
// }
|
|
9
|
-
// async sendMessage(
|
|
10
|
-
// messages: Messages,
|
|
11
|
-
// model: SupportedLLMs,
|
|
12
|
-
// maxTokens?: number,
|
|
13
|
-
// temperature?: number,
|
|
14
|
-
// systemPrompt?: string,
|
|
15
|
-
// tools?: any
|
|
16
|
-
// ) {
|
|
17
|
-
// const response = await this.client.generateCompletion(
|
|
18
|
-
// messages,
|
|
19
|
-
// model,
|
|
20
|
-
// maxTokens,
|
|
21
|
-
// temperature,
|
|
22
|
-
// systemPrompt,
|
|
23
|
-
// tools
|
|
24
|
-
// );
|
|
25
|
-
// console.log("Response:", response);
|
|
26
|
-
// return response;
|
|
27
|
-
// }
|
|
28
|
-
// async *sendMessageStream(
|
|
29
|
-
// messages: Messages,
|
|
30
|
-
// model: SupportedLLMs,
|
|
31
|
-
// maxTokens?: number,
|
|
32
|
-
// temperature?: number,
|
|
33
|
-
// systemPrompt?: string,
|
|
34
|
-
// tools?: any
|
|
35
|
-
// ): AsyncGenerator<string, void, unknown> {
|
|
36
|
-
// const stream = this.client.generateStreamCompletion(
|
|
37
|
-
// messages,
|
|
38
|
-
// model,
|
|
39
|
-
// maxTokens,
|
|
40
|
-
// temperature,
|
|
41
|
-
// systemPrompt,
|
|
42
|
-
// tools,
|
|
43
|
-
// true
|
|
44
|
-
// );
|
|
45
|
-
// for await (const chunk of stream) {
|
|
46
|
-
// const content = chunk.delta?.text;
|
|
47
|
-
// if (content) {
|
|
48
|
-
// yield content;
|
|
49
|
-
// }
|
|
50
|
-
// }
|
|
51
|
-
// }
|
|
52
|
-
// }
|
|
53
|
-
//# sourceMappingURL=AwsBedrockAnthropicClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AwsBedrockAnthropicClient.js","sourceRoot":"","sources":["../../src/clients/AwsBedrockAnthropicClient.ts"],"names":[],"mappings":";AAAA,uFAAuF;AACvF,mFAAmF;AAEnF,+CAA+C;AAC/C,gDAAgD;AAEhD,oBAAoB;AACpB,sDAAsD;AACtD,MAAM;AAEN,uBAAuB;AACvB,0BAA0B;AAC1B,4BAA4B;AAC5B,0BAA0B;AAC1B,4BAA4B;AAC5B,6BAA6B;AAC7B,kBAAkB;AAClB,QAAQ;AACR,6DAA6D;AAC7D,kBAAkB;AAClB,eAAe;AACf,mBAAmB;AACnB,qBAAqB;AACrB,sBAAsB;AACtB,cAAc;AACd,SAAS;AACT,0CAA0C;AAC1C,uBAAuB;AACvB,MAAM;AAEN,8BAA8B;AAC9B,0BAA0B;AAC1B,4BAA4B;AAC5B,0BAA0B;AAC1B,4BAA4B;AAC5B,6BAA6B;AAC7B,kBAAkB;AAClB,+CAA+C;AAC/C,2DAA2D;AAC3D,kBAAkB;AAClB,eAAe;AACf,mBAAmB;AACnB,qBAAqB;AACrB,sBAAsB;AACtB,eAAe;AACf,aAAa;AACb,SAAS;AAET,0CAA0C;AAC1C,2CAA2C;AAC3C,uBAAuB;AACvB,yBAAyB;AACzB,UAAU;AACV,QAAQ;AACR,MAAM;AACN,IAAI"}
|
|
File without changes
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { OpenAIService } from "../services/OpenAIService";
|
|
3
|
-
// import { OpenAIMessage, OpenAIMessagesRoles, OpenAIResponse, OpenAISupportedLLMs } from "../types";
|
|
4
|
-
// export class OpenAIClient {
|
|
5
|
-
// private client: OpenAIService;
|
|
6
|
-
// private messages: OpenAIMessage[] = [];
|
|
7
|
-
// constructor(apiKey: string, systemPrompt: string) {
|
|
8
|
-
// this.client = new OpenAIService(apiKey);
|
|
9
|
-
// this.messages.push({
|
|
10
|
-
// role: OpenAIMessagesRoles.SYSTEM,
|
|
11
|
-
// content: systemPrompt,
|
|
12
|
-
// });
|
|
13
|
-
// }
|
|
14
|
-
// async sendMessage(
|
|
15
|
-
// userInput: string,
|
|
16
|
-
// model: OpenAISupportedLLMs,
|
|
17
|
-
// maxTokens: number,
|
|
18
|
-
// temperature: number
|
|
19
|
-
// ): Promise<string> {
|
|
20
|
-
// this.messages.push({ role: OpenAIMessagesRoles.USER, content: userInput });
|
|
21
|
-
// const response: OpenAIResponse = await this.client.generateCompletion(
|
|
22
|
-
// this.messages,
|
|
23
|
-
// model,
|
|
24
|
-
// maxTokens,
|
|
25
|
-
// temperature
|
|
26
|
-
// );
|
|
27
|
-
// const responseContent: string = response.choices[0].message.content;
|
|
28
|
-
// this.messages.push({
|
|
29
|
-
// role: OpenAIMessagesRoles.ASSISTANT,
|
|
30
|
-
// content: responseContent,
|
|
31
|
-
// });
|
|
32
|
-
// return responseContent;
|
|
33
|
-
// }
|
|
34
|
-
// async *sendMessageStream(
|
|
35
|
-
// userInput: string,
|
|
36
|
-
// model: OpenAISupportedLLMs,
|
|
37
|
-
// maxTokens: number,
|
|
38
|
-
// temperature: number
|
|
39
|
-
// ): AsyncGenerator<string, void, unknown> {
|
|
40
|
-
// this.messages.push({ role: OpenAIMessagesRoles.USER, content: userInput });
|
|
41
|
-
// const stream = this.client.generateStreamCompletion(
|
|
42
|
-
// this.messages,
|
|
43
|
-
// model,
|
|
44
|
-
// maxTokens,
|
|
45
|
-
// temperature
|
|
46
|
-
// );
|
|
47
|
-
// for await (const chunk of stream) {
|
|
48
|
-
// if (
|
|
49
|
-
// chunk.choices &&
|
|
50
|
-
// chunk.choices[0].delta &&
|
|
51
|
-
// chunk.choices[0].delta.content
|
|
52
|
-
// ) {
|
|
53
|
-
// const content = chunk.choices[0].delta.content;
|
|
54
|
-
// yield content;
|
|
55
|
-
// }
|
|
56
|
-
// }
|
|
57
|
-
// }
|
|
58
|
-
// }
|
|
59
|
-
//# sourceMappingURL=OpenAIClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIClient.js","sourceRoot":"","sources":["../../src/clients/OpenAIClient.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,sGAAsG;AAEtG,8BAA8B;AAC9B,mCAAmC;AACnC,4CAA4C;AAE5C,wDAAwD;AACxD,+CAA+C;AAC/C,2BAA2B;AAC3B,0CAA0C;AAC1C,+BAA+B;AAC/B,UAAU;AACV,MAAM;AAEN,uBAAuB;AACvB,yBAAyB;AACzB,kCAAkC;AAClC,yBAAyB;AACzB,0BAA0B;AAC1B,yBAAyB;AACzB,kFAAkF;AAElF,6EAA6E;AAC7E,uBAAuB;AACvB,eAAe;AACf,mBAAmB;AACnB,oBAAoB;AACpB,SAAS;AAET,2EAA2E;AAC3E,2BAA2B;AAC3B,6CAA6C;AAC7C,kCAAkC;AAClC,UAAU;AAEV,8BAA8B;AAC9B,MAAM;AAEN,8BAA8B;AAC9B,yBAAyB;AACzB,kCAAkC;AAClC,yBAAyB;AACzB,0BAA0B;AAC1B,+CAA+C;AAC/C,kFAAkF;AAElF,2DAA2D;AAC3D,uBAAuB;AACvB,eAAe;AACf,mBAAmB;AACnB,oBAAoB;AACpB,SAAS;AAET,0CAA0C;AAC1C,aAAa;AACb,2BAA2B;AAC3B,oCAAoC;AACpC,yCAAyC;AACzC,YAAY;AACZ,0DAA0D;AAC1D,yBAAyB;AACzB,UAAU;AACV,QAAQ;AACR,MAAM;AACN,IAAI"}
|