llm-proxy 1.4.15 → 1.4.17
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 +75 -128
- package/dist/index.js.map +1 -1
- package/dist/middleware/InputFormatAdapter.js.map +1 -1
- package/dist/middleware/OutputFormatAdapter.d.ts +3 -0
- package/dist/middleware/OutputFormatAdapter.js +61 -2
- package/dist/middleware/OutputFormatAdapter.js.map +1 -1
- package/dist/middleware/ProviderFinder.js.map +1 -1
- package/dist/services/AwsBedrockAnthropicService.js +53 -93
- package/dist/services/AwsBedrockAnthropicService.js.map +1 -1
- package/dist/services/OpenAIService.js +39 -89
- package/dist/services/OpenAIService.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/package.json +8 -4
package/dist/index.js
CHANGED
|
@@ -13,39 +13,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
13
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
26
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
27
|
-
var m = o[Symbol.asyncIterator], i;
|
|
28
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
29
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
30
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
31
|
-
};
|
|
32
|
-
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
33
|
-
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
34
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
35
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
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); }); }; }
|
|
38
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
39
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
40
|
-
function fulfill(value) { resume("next", value); }
|
|
41
|
-
function reject(value) { resume("throw", value); }
|
|
42
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
43
|
-
};
|
|
44
16
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
18
|
};
|
|
47
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.
|
|
20
|
+
exports.generateLLMResponse = generateLLMResponse;
|
|
21
|
+
exports.generateLLMStreamResponse = generateLLMStreamResponse;
|
|
49
22
|
const types_1 = require("./types");
|
|
50
23
|
const OpenAIService_1 = __importDefault(require("./services/OpenAIService"));
|
|
51
24
|
const AwsBedrockAnthropicService_1 = __importDefault(require("./services/AwsBedrockAnthropicService"));
|
|
@@ -53,113 +26,87 @@ const ProviderFinder_1 = __importDefault(require("./middleware/ProviderFinder"))
|
|
|
53
26
|
const InputFormatAdapter_1 = __importDefault(require("./middleware/InputFormatAdapter"));
|
|
54
27
|
const OutputFormatAdapter_1 = __importDefault(require("./middleware/OutputFormatAdapter"));
|
|
55
28
|
// Main function for non-streaming requests
|
|
56
|
-
function generateLLMResponse(params) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
return Promise.reject(new Error("OpenAI API key is required for OpenAI models."));
|
|
66
|
-
}
|
|
67
|
-
service = new OpenAIService_1.default(credentials.apiKey);
|
|
68
|
-
}
|
|
69
|
-
else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
|
|
70
|
-
const { awsConfig } = credentials;
|
|
71
|
-
if (!awsConfig) {
|
|
72
|
-
return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
|
|
73
|
-
}
|
|
74
|
-
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
29
|
+
async function generateLLMResponse(params) {
|
|
30
|
+
const { messages, model, functions, max_tokens, temperature, credentials } = params;
|
|
31
|
+
// Step 1: Identify the provider based on the model
|
|
32
|
+
const provider = ProviderFinder_1.default.getProvider(model);
|
|
33
|
+
// Initialize the correct service based on the provider
|
|
34
|
+
let service;
|
|
35
|
+
if (provider === types_1.Providers.OPENAI) {
|
|
36
|
+
if (!credentials.apiKey) {
|
|
37
|
+
return Promise.reject(new Error("OpenAI API key is required for OpenAI models."));
|
|
75
38
|
}
|
|
76
|
-
|
|
77
|
-
|
|
39
|
+
service = new OpenAIService_1.default(credentials.apiKey);
|
|
40
|
+
}
|
|
41
|
+
else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
|
|
42
|
+
const { awsConfig } = credentials;
|
|
43
|
+
if (!awsConfig) {
|
|
44
|
+
return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
|
|
78
45
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
46
|
+
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return Promise.reject(new Error("Unsupported provider"));
|
|
50
|
+
}
|
|
51
|
+
// Step 2: Adapt messages and extract the system prompt
|
|
52
|
+
const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.default.adaptMessages(messages, provider);
|
|
53
|
+
// Step 3: Generate the completion
|
|
54
|
+
const response = await service.generateCompletion({
|
|
55
|
+
messages: adaptedMessages, // TODO: fix this any
|
|
56
|
+
model,
|
|
57
|
+
max_tokens,
|
|
58
|
+
temperature: temperature || 0,
|
|
59
|
+
tools: functions,
|
|
60
|
+
systemPrompt: systemPrompt || "",
|
|
94
61
|
});
|
|
62
|
+
// Step 4: Adapt the response if needed
|
|
63
|
+
return provider === types_1.Providers.OPENAI
|
|
64
|
+
? response
|
|
65
|
+
: OutputFormatAdapter_1.default.adaptResponse(response, provider);
|
|
95
66
|
}
|
|
96
|
-
exports.generateLLMResponse = generateLLMResponse;
|
|
97
67
|
// Main function for streaming requests
|
|
98
|
-
function generateLLMStreamResponse(params) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (
|
|
106
|
-
|
|
107
|
-
return Promise.reject(new Error("OpenAI API key is required for OpenAI models."));
|
|
108
|
-
}
|
|
109
|
-
service = new OpenAIService_1.default(credentials.apiKey);
|
|
110
|
-
}
|
|
111
|
-
else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
|
|
112
|
-
const { awsConfig } = credentials;
|
|
113
|
-
if (!awsConfig) {
|
|
114
|
-
return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
|
|
115
|
-
}
|
|
116
|
-
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
return Promise.reject(new Error("Unsupported provider"));
|
|
68
|
+
async function generateLLMStreamResponse(params) {
|
|
69
|
+
const { messages, model, functions, max_tokens, temperature, credentials } = params;
|
|
70
|
+
// Step 1: Identify the provider based on the model
|
|
71
|
+
const provider = ProviderFinder_1.default.getProvider(model);
|
|
72
|
+
// Initialize the correct service based on the provider
|
|
73
|
+
let service;
|
|
74
|
+
if (provider === types_1.Providers.OPENAI) {
|
|
75
|
+
if (!credentials.apiKey) {
|
|
76
|
+
return Promise.reject(new Error("OpenAI API key is required for OpenAI models."));
|
|
120
77
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
max_tokens,
|
|
128
|
-
temperature: temperature || 0,
|
|
129
|
-
tools: functions,
|
|
130
|
-
systemPrompt,
|
|
131
|
-
});
|
|
132
|
-
// Step 4: Create and return the async generator
|
|
133
|
-
function streamGenerator() {
|
|
134
|
-
return __asyncGenerator(this, arguments, function* streamGenerator_1() {
|
|
135
|
-
var _a, e_1, _b, _c;
|
|
136
|
-
try {
|
|
137
|
-
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;) {
|
|
138
|
-
_c = stream_1_1.value;
|
|
139
|
-
_d = false;
|
|
140
|
-
try {
|
|
141
|
-
const chunk = _c;
|
|
142
|
-
yield yield __await(provider === types_1.Providers.OPENAI
|
|
143
|
-
? chunk
|
|
144
|
-
: OutputFormatAdapter_1.default.adaptResponse(chunk, provider));
|
|
145
|
-
}
|
|
146
|
-
finally {
|
|
147
|
-
_d = true;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
152
|
-
finally {
|
|
153
|
-
try {
|
|
154
|
-
if (!_d && !_a && (_b = stream_1.return)) yield __await(_b.call(stream_1));
|
|
155
|
-
}
|
|
156
|
-
finally { if (e_1) throw e_1.error; }
|
|
157
|
-
}
|
|
158
|
-
});
|
|
78
|
+
service = new OpenAIService_1.default(credentials.apiKey);
|
|
79
|
+
}
|
|
80
|
+
else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
|
|
81
|
+
const { awsConfig } = credentials;
|
|
82
|
+
if (!awsConfig) {
|
|
83
|
+
return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
|
|
159
84
|
}
|
|
160
|
-
|
|
85
|
+
service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return Promise.reject(new Error("Unsupported provider"));
|
|
89
|
+
}
|
|
90
|
+
// Step 2: Adapt messages and extract the system prompt
|
|
91
|
+
const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.default.adaptMessages(messages, provider);
|
|
92
|
+
// Step 3: Generate the streaming completion
|
|
93
|
+
const stream = service.generateStreamCompletion({
|
|
94
|
+
messages: adaptedMessages, // TODO: Fix this any
|
|
95
|
+
model,
|
|
96
|
+
max_tokens,
|
|
97
|
+
temperature: temperature || 0,
|
|
98
|
+
tools: functions,
|
|
99
|
+
systemPrompt: systemPrompt || "",
|
|
161
100
|
});
|
|
101
|
+
// Step 4: Create and return the async generator
|
|
102
|
+
async function* streamGenerator() {
|
|
103
|
+
for await (const chunk of stream) {
|
|
104
|
+
yield provider === types_1.Providers.OPENAI
|
|
105
|
+
? chunk
|
|
106
|
+
: OutputFormatAdapter_1.default.adaptResponse(chunk, provider);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return streamGenerator();
|
|
162
110
|
}
|
|
163
|
-
exports.generateLLMStreamResponse = generateLLMStreamResponse;
|
|
164
111
|
__exportStar(require("./types"), exports);
|
|
165
112
|
//# 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,
|
|
1
|
+
{"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,9 @@ export default class OutputFormatAdapter {
|
|
|
5
5
|
private static model;
|
|
6
6
|
private static toolName;
|
|
7
7
|
static adaptResponse(response: any, provider: Providers): LLMResponse;
|
|
8
|
+
private static adaptCompleteResponse;
|
|
9
|
+
private static mapRole;
|
|
10
|
+
private static extractContent;
|
|
8
11
|
private static adaptStreamingResponse;
|
|
9
12
|
private static createToolUseResponse;
|
|
10
13
|
private static createNonToolUseResponse;
|
|
@@ -11,6 +11,9 @@ class OutputFormatAdapter {
|
|
|
11
11
|
case types_1.Providers.OPENAI:
|
|
12
12
|
return response;
|
|
13
13
|
case types_1.Providers.ANTHROPIC_BEDROCK:
|
|
14
|
+
if (response.type === "message" && !response.delta) {
|
|
15
|
+
return this.adaptCompleteResponse(response);
|
|
16
|
+
}
|
|
14
17
|
return this.adaptStreamingResponse(response);
|
|
15
18
|
default:
|
|
16
19
|
throw new Error(`Unsupported provider: ${provider}`);
|
|
@@ -20,6 +23,62 @@ class OutputFormatAdapter {
|
|
|
20
23
|
throw new Error(`Failed to adapt response: ${error.message}`);
|
|
21
24
|
}
|
|
22
25
|
}
|
|
26
|
+
static adaptCompleteResponse(response) {
|
|
27
|
+
var _a, _b, _c, _d;
|
|
28
|
+
return {
|
|
29
|
+
id: response.id,
|
|
30
|
+
object: "text_completion",
|
|
31
|
+
created: Date.now(),
|
|
32
|
+
model: this.model || "unknown-model",
|
|
33
|
+
choices: response.content.map((contentBlock, index) => ({
|
|
34
|
+
index,
|
|
35
|
+
message: {
|
|
36
|
+
role: this.mapRole(contentBlock),
|
|
37
|
+
content: this.extractContent(contentBlock)
|
|
38
|
+
},
|
|
39
|
+
logprobs: null,
|
|
40
|
+
finish_reason: response.stop_reason || null
|
|
41
|
+
})),
|
|
42
|
+
usage: {
|
|
43
|
+
prompt_tokens: ((_a = response.usage) === null || _a === void 0 ? void 0 : _a.input_tokens) || 0,
|
|
44
|
+
completion_tokens: ((_b = response.usage) === null || _b === void 0 ? void 0 : _b.output_tokens) || 0,
|
|
45
|
+
total_tokens: (((_c = response.usage) === null || _c === void 0 ? void 0 : _c.input_tokens) || 0) +
|
|
46
|
+
(((_d = response.usage) === null || _d === void 0 ? void 0 : _d.output_tokens) || 0),
|
|
47
|
+
prompt_tokens_details: { cached_tokens: 0 },
|
|
48
|
+
completion_tokens_details: { reasoning_tokens: 0 }
|
|
49
|
+
},
|
|
50
|
+
system_fingerprint: response.system_fingerprint || "default_fingerprint"
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
static mapRole(content) {
|
|
54
|
+
if (!content || !content.type) {
|
|
55
|
+
throw new Error("Invalid content block structure");
|
|
56
|
+
}
|
|
57
|
+
switch (content.type) {
|
|
58
|
+
case types_1.BedrockAnthropicContentType.TOOL_USE:
|
|
59
|
+
case types_1.BedrockAnthropicContentType.TOOL_RESULT:
|
|
60
|
+
return "tool";
|
|
61
|
+
case types_1.BedrockAnthropicContentType.TEXT:
|
|
62
|
+
return "assistant";
|
|
63
|
+
default:
|
|
64
|
+
return "assistant";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static extractContent(content) {
|
|
68
|
+
if (!content || !content.type) {
|
|
69
|
+
throw new Error("Invalid content block structure");
|
|
70
|
+
}
|
|
71
|
+
switch (content.type) {
|
|
72
|
+
case types_1.BedrockAnthropicContentType.TEXT:
|
|
73
|
+
return content.text || "";
|
|
74
|
+
case types_1.BedrockAnthropicContentType.TOOL_RESULT:
|
|
75
|
+
return content.content || "";
|
|
76
|
+
case types_1.BedrockAnthropicContentType.TOOL_USE:
|
|
77
|
+
return content.id || "";
|
|
78
|
+
default:
|
|
79
|
+
return "";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
23
82
|
static adaptStreamingResponse(chunk) {
|
|
24
83
|
var _a, _b, _c, _d, _e;
|
|
25
84
|
const metrics = chunk["amazon-bedrock-invocationMetrics"];
|
|
@@ -66,7 +125,7 @@ class OutputFormatAdapter {
|
|
|
66
125
|
index: 0,
|
|
67
126
|
delta: {
|
|
68
127
|
function_call: {
|
|
69
|
-
name: this.toolName || "unknown_tool",
|
|
128
|
+
name: this.toolName || "unknown_tool", // Include tool name
|
|
70
129
|
arguments: chunk &&
|
|
71
130
|
chunk.type === "content_block_delta" &&
|
|
72
131
|
((_a = chunk.delta) === null || _a === void 0 ? void 0 : _a.type) === "input_json_delta"
|
|
@@ -135,7 +194,7 @@ class OutputFormatAdapter {
|
|
|
135
194
|
this.toolName = undefined;
|
|
136
195
|
}
|
|
137
196
|
}
|
|
138
|
-
exports.default = OutputFormatAdapter;
|
|
139
197
|
OutputFormatAdapter.isToolUseStream = false;
|
|
140
198
|
OutputFormatAdapter.toolArguments = [];
|
|
199
|
+
exports.default = OutputFormatAdapter;
|
|
141
200
|
//# sourceMappingURL=OutputFormatAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":";;AAAA,oCAQkB;AAElB,MAAqB,mBAAmB;IAStC,MAAM,CAAC,aAAa,CAAC,QAAa,EAAE,QAAmB;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,iBAAS,CAAC,MAAM;oBACnB,OAAO,QAAuB,CAAC;gBACjC,KAAK,iBAAS,CAAC,iBAAiB;oBAC9B,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;oBAC9C,CAAC;oBACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAE/C;oBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA8B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,QAAa;;QAChD,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe;YACpC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAC3B,CAAC,YAAqC,EAAE,KAAU,EAAE,EAAE,CAAC,CAAC;gBACtD,KAAK;gBACL,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAChC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;iBAC3C;gBACD,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;aAC5C,CAAC,CACH;YACD,KAAK,EAAE;gBACL,aAAa,EAAE,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,YAAY,KAAI,CAAC;gBAChD,iBAAiB,EAAE,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,aAAa,KAAI,CAAC;gBACrD,YAAY,EACV,CAAC,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,YAAY,KAAI,CAAC,CAAC;oBACnC,CAAC,CAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,aAAa,KAAI,CAAC,CAAC;gBACtC,qBAAqB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC3C,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE;aACnD;YACD,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,qBAAqB;SACzE,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,OAAgC;QACrD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,mCAA2B,CAAC,QAAQ,CAAC;YAC1C,KAAK,mCAA2B,CAAC,WAAW;gBAC1C,OAAO,MAAM,CAAC;YAChB,KAAK,mCAA2B,CAAC,IAAI;gBACnC,OAAO,WAAW,CAAC;YACrB;gBACE,OAAO,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAgC;QAC5D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,mCAA2B,CAAC,IAAI;gBACnC,OAAQ,OAAuC,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7D,KAAK,mCAA2B,CAAC,WAAW;gBAC1C,OAAQ,OAA6C,CAAC,OAAO,IAAI,EAAE,CAAC;YACtE,KAAK,mCAA2B,CAAC,QAAQ;gBACvC,OAAQ,OAA0C,CAAC,EAAE,IAAI,EAAE,CAAC;YAC9D;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAAU;;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC1D,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;QAEvE,iDAAiD;QACjD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,KAAI,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK,CAAA,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,CAAC;QAED,gEAAgE;QAChE,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB;YACpC,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,MAAK,UAAU,EACxC,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,KAAI,cAAc,CAAC,CAAC,oBAAoB;QACnF,CAAC;QAED,iDAAiD;QACjD,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB;YACpC,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,IAAI,MAAK,kBAAkB,EACxC,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,YAAY,KAAI,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe;gBACnC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAE1D,qDAAqD;YACrD,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,+CAA+C;QAC/C,OAAO,IAAI,CAAC,eAAe;YACzB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAClC,OAAY,EACZ,MAAe,EACf,KAAW;;QAEX,OAAO;YACL,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe;YACpC,kBAAkB,EAAE,uBAAuB;YAC3C,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,aAAa,EAAE;4BACb,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE,oBAAoB;4BAC3D,SAAS,EACP,KAAK;gCACL,KAAK,CAAC,IAAI,KAAK,qBAAqB;gCACpC,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,IAAI,MAAK,kBAAkB;gCACtC,CAAC,CAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,YAAY;gCAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;yBACpC;qBACF;oBACD,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;iBACtC;aACF;YACD,KAAK,EAAE,MAAM;gBACX,CAAC,CAAC;oBACE,aAAa,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,CAAC;oBAC5C,iBAAiB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC;oBACjD,YAAY,EACV,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,CAAC,CAAC;wBAC/B,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC,CAAC;oBAClC,qBAAqB,EAAE;wBACrB,aAAa,EAAE,CAAC;qBACjB;oBACD,yBAAyB,EAAE;wBACzB,gBAAgB,EAAE,CAAC;qBACpB;iBACF;gBACH,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,wBAAwB,CACrC,OAAY,EACZ,MAAe,EACf,KAAU;;QAEV,MAAM,OAAO,GAAG,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,MAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,IAAI,CAAA,IAAI,EAAE,CAAC;QACrE,OAAO;YACL,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe;YACpC,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,OAAO;qBACR;oBACD,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;iBACtC;aACF;YACD,KAAK,EAAE,MAAM;gBACX,CAAC,CAAC;oBACE,aAAa,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,CAAC;oBAC5C,iBAAiB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC;oBACjD,YAAY,EACV,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,CAAC,CAAC;wBAC/B,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC,CAAC;oBAClC,qBAAqB,EAAE;wBACrB,aAAa,EAAE,CAAC;qBACjB;oBACD,yBAAyB,EAAE;wBACzB,gBAAgB,EAAE,CAAC;qBACpB;iBACF;gBACH,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,UAAU;QACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;;AAtOc,mCAAe,GAAG,KAAK,CAAC;AAExB,iCAAa,GAAa,EAAE,CAAC;kBAHzB,mBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;AAAA,oCAIkB;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;
|
|
1
|
+
{"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;AAAA,oCAIkB;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,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAnBD,iCAmBC"}
|
|
@@ -1,32 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
12
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
13
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
14
|
-
var m = o[Symbol.asyncIterator], i;
|
|
15
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
16
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
17
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
18
|
-
};
|
|
19
|
-
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
20
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
21
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
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); }); }; }
|
|
24
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
25
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
26
|
-
function fulfill(value) { resume("next", value); }
|
|
27
|
-
function reject(value) { resume("throw", value); }
|
|
28
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
29
|
-
};
|
|
30
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
3
|
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
32
4
|
class AwsBedrockAnthropicService {
|
|
@@ -35,81 +7,69 @@ class AwsBedrockAnthropicService {
|
|
|
35
7
|
region,
|
|
36
8
|
credentials: {
|
|
37
9
|
accessKeyId: awsAccessKey,
|
|
38
|
-
secretAccessKey: awsSecretKey
|
|
39
|
-
}
|
|
10
|
+
secretAccessKey: awsSecretKey
|
|
11
|
+
}
|
|
40
12
|
});
|
|
41
13
|
}
|
|
42
|
-
generateCompletion(params) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
contentType: "application/json",
|
|
55
|
-
accept: "application/json",
|
|
56
|
-
});
|
|
57
|
-
const response = yield this.bedrock.send(command);
|
|
58
|
-
return JSON.parse(new TextDecoder().decode(response.body));
|
|
14
|
+
async generateCompletion(params) {
|
|
15
|
+
const { messages, model, max_tokens, temperature, systemPrompt, tools } = params;
|
|
16
|
+
if (!model) {
|
|
17
|
+
return Promise.reject(new Error("Model ID is required for AwsBedrockAnthropicService"));
|
|
18
|
+
}
|
|
19
|
+
const body = JSON.stringify({
|
|
20
|
+
anthropic_version: "bedrock-2023-05-31",
|
|
21
|
+
max_tokens,
|
|
22
|
+
temperature,
|
|
23
|
+
messages,
|
|
24
|
+
system: systemPrompt,
|
|
25
|
+
...(tools && Array.isArray(tools) && tools.length ? { tools } : {})
|
|
59
26
|
});
|
|
27
|
+
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
28
|
+
modelId: model,
|
|
29
|
+
body,
|
|
30
|
+
contentType: "application/json",
|
|
31
|
+
accept: "application/json"
|
|
32
|
+
});
|
|
33
|
+
const response = await this.bedrock.send(command);
|
|
34
|
+
return JSON.parse(new TextDecoder().decode(response.body));
|
|
60
35
|
}
|
|
61
36
|
// eslint-disable-next-line consistent-return
|
|
62
|
-
generateStreamCompletion(params) {
|
|
37
|
+
async *generateStreamCompletion(params) {
|
|
63
38
|
var _a;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
39
|
+
const { messages, model, max_tokens, temperature, tools, systemPrompt } = params;
|
|
40
|
+
if (!model) {
|
|
41
|
+
return Promise.reject(new Error("Model ID is required for AwsBedrockAnthropicService"));
|
|
42
|
+
}
|
|
43
|
+
const body = JSON.stringify({
|
|
44
|
+
anthropic_version: "bedrock-2023-05-31",
|
|
45
|
+
max_tokens,
|
|
46
|
+
temperature,
|
|
47
|
+
messages,
|
|
48
|
+
system: systemPrompt,
|
|
49
|
+
...(tools && Array.isArray(tools) && tools.length ? { tools } : {})
|
|
50
|
+
});
|
|
51
|
+
const command = new client_bedrock_runtime_1.InvokeModelWithResponseStreamCommand({
|
|
52
|
+
modelId: model,
|
|
53
|
+
body,
|
|
54
|
+
contentType: "application/json",
|
|
55
|
+
accept: "application/json"
|
|
56
|
+
});
|
|
57
|
+
const response = await this.bedrock.send(command);
|
|
58
|
+
if (response.body) {
|
|
59
|
+
const decoder = new TextDecoder("utf-8");
|
|
60
|
+
for await (const payload of response.body) {
|
|
61
|
+
const decodedString = decoder.decode((_a = payload.chunk) === null || _a === void 0 ? void 0 : _a.bytes, {
|
|
62
|
+
stream: true
|
|
63
|
+
});
|
|
82
64
|
try {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
_e = false;
|
|
86
|
-
try {
|
|
87
|
-
const payload = _d;
|
|
88
|
-
const decodedString = decoder.decode((_a = payload.chunk) === null || _a === void 0 ? void 0 : _a.bytes, {
|
|
89
|
-
stream: true,
|
|
90
|
-
});
|
|
91
|
-
try {
|
|
92
|
-
const jsonObject = JSON.parse(decodedString);
|
|
93
|
-
yield yield __await(jsonObject);
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
return yield __await(Promise.reject(error));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
finally {
|
|
100
|
-
_e = true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
65
|
+
const jsonObject = JSON.parse(decodedString);
|
|
66
|
+
yield jsonObject;
|
|
103
67
|
}
|
|
104
|
-
catch (
|
|
105
|
-
|
|
106
|
-
try {
|
|
107
|
-
if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));
|
|
108
|
-
}
|
|
109
|
-
finally { if (e_1) throw e_1.error; }
|
|
68
|
+
catch (error) {
|
|
69
|
+
return Promise.reject(error);
|
|
110
70
|
}
|
|
111
71
|
}
|
|
112
|
-
}
|
|
72
|
+
}
|
|
113
73
|
}
|
|
114
74
|
}
|
|
115
75
|
exports.default = AwsBedrockAnthropicService;
|
|
@@ -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;IAED,KAAK,CAAC,kBAAkB,CAAC,MAQxB;QACC,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,KAAK,EACN,GAAG,MAAM,CAAC;QAEX,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,EACJ,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,YAAY,EACb,GAAG,MAAM,CAAC;QAEX,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;AArHD,6CAqHC"}
|
|
@@ -1,32 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
12
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
13
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
14
|
-
var m = o[Symbol.asyncIterator], i;
|
|
15
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
16
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
17
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
18
|
-
};
|
|
19
|
-
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
20
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
21
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
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); }); }; }
|
|
24
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
25
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
26
|
-
function fulfill(value) { resume("next", value); }
|
|
27
|
-
function reject(value) { resume("throw", value); }
|
|
28
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
29
|
-
};
|
|
30
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
31
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
4
|
};
|
|
@@ -36,70 +8,48 @@ class OpenAIService {
|
|
|
36
8
|
constructor(apiKey) {
|
|
37
9
|
this.openai = new openai_1.default({ apiKey });
|
|
38
10
|
}
|
|
39
|
-
generateCompletion({ messages, model, max_tokens, temperature, tools, }) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
});
|
|
11
|
+
async generateCompletion({ messages, model, max_tokens, temperature, tools, }) {
|
|
12
|
+
if (!model) {
|
|
13
|
+
return Promise.reject(new Error("Model ID is required for OpenAIService."));
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const response = await this.openai.chat.completions.create({
|
|
17
|
+
model,
|
|
18
|
+
messages,
|
|
19
|
+
max_tokens,
|
|
20
|
+
temperature,
|
|
21
|
+
functions: tools,
|
|
22
|
+
});
|
|
23
|
+
return response;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return Promise.reject(error);
|
|
27
|
+
}
|
|
58
28
|
}
|
|
59
29
|
// eslint-disable-next-line consistent-return
|
|
60
|
-
generateStreamCompletion({ messages, model, max_tokens, temperature, tools, }) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
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;) {
|
|
80
|
-
_c = stream_1_1.value;
|
|
81
|
-
_d = false;
|
|
82
|
-
try {
|
|
83
|
-
const chunk = _c;
|
|
84
|
-
yield yield __await(chunk);
|
|
85
|
-
}
|
|
86
|
-
finally {
|
|
87
|
-
_d = true;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
92
|
-
finally {
|
|
93
|
-
try {
|
|
94
|
-
if (!_d && !_a && (_b = stream_1.return)) yield __await(_b.call(stream_1));
|
|
95
|
-
}
|
|
96
|
-
finally { if (e_1) throw e_1.error; }
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
return yield __await(Promise.reject(error));
|
|
30
|
+
async *generateStreamCompletion({ messages, model, max_tokens, temperature, tools, }) {
|
|
31
|
+
if (!model) {
|
|
32
|
+
return Promise.reject(new Error("Model ID is required for OpenAIService."));
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const stream = await this.openai.chat.completions.create({
|
|
36
|
+
model,
|
|
37
|
+
messages,
|
|
38
|
+
max_tokens,
|
|
39
|
+
temperature,
|
|
40
|
+
functions: tools,
|
|
41
|
+
stream: true,
|
|
42
|
+
stream_options: {
|
|
43
|
+
include_usage: true,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
for await (const chunk of stream) {
|
|
47
|
+
yield chunk;
|
|
101
48
|
}
|
|
102
|
-
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
return Promise.reject(error);
|
|
52
|
+
}
|
|
103
53
|
}
|
|
104
54
|
}
|
|
105
55
|
exports.default = OpenAIService;
|
|
@@ -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;IAED,KAAK,CAAC,kBAAkB,CAAC,EACvB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,GASN;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,6CAA6C;IAC7C,KAAK,CAAC,CAAC,wBAAwB,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,GAUN;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;AArFD,gCAqFC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ 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_LATEST = "chatgpt-4o-latest"
|
|
67
|
+
GPT_4_O_LATEST = "chatgpt-4o-latest",// points to the latest version of gpt-4o
|
|
68
68
|
GPT_4_O = "gpt-4o",
|
|
69
69
|
GPT_4_O_2024_11_20 = "gpt-4o-2024-11-20",
|
|
70
70
|
GPT_4_O_2024_08_06 = "gpt-4o-2024-08-06",
|
|
@@ -81,7 +81,7 @@ export declare enum OpenAISupportedLLMs {
|
|
|
81
81
|
O1_MINI_2024_09_12 = "o1-mini-2024-09-12",
|
|
82
82
|
GPT_4_TURBO = "gpt-4-turbo",
|
|
83
83
|
GPT_4_TURBO_2024_04_09 = "gpt-4-turbo-2024-04-09",
|
|
84
|
-
GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview"
|
|
84
|
+
GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview",// same as gpt-4-turbo-2024-04-09
|
|
85
85
|
GPT_4_0125_PREVIEW = "gpt-4-0125-preview",
|
|
86
86
|
GPT_4_1106_PREVIEW = "gpt-4-1106-preview",
|
|
87
87
|
GPT_4_VISION_PREVIEW = "gpt-4-vision-preview",
|
|
@@ -91,7 +91,7 @@ export declare enum OpenAISupportedLLMs {
|
|
|
91
91
|
GPT_4_32K = "gpt-4-32k",
|
|
92
92
|
GPT_4_32K_0314 = "gpt-4-32k-0314",
|
|
93
93
|
GPT_4_32K_0613 = "gpt-4-32k-0613",
|
|
94
|
-
GPT_3_5_TURBO = "gpt-3.5-turbo"
|
|
94
|
+
GPT_3_5_TURBO = "gpt-3.5-turbo",// same as gpt-3.5-turbo-0125
|
|
95
95
|
GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k",
|
|
96
96
|
GPT_3_5_TURBO_0301 = "gpt-3.5-turbo-0301",
|
|
97
97
|
GPT_3_5_TURBO_0613 = "gpt-3.5-turbo-0613",
|
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 = Providers = {}));
|
|
11
11
|
var OpenAISupportedLLMs;
|
|
12
12
|
(function (OpenAISupportedLLMs) {
|
|
13
13
|
OpenAISupportedLLMs["GPT_4_O_LATEST"] = "chatgpt-4o-latest";
|
|
@@ -44,7 +44,7 @@ var OpenAISupportedLLMs;
|
|
|
44
44
|
OpenAISupportedLLMs["GPT_3_5_TURBO_1106"] = "gpt-3.5-turbo-1106";
|
|
45
45
|
OpenAISupportedLLMs["GPT_3_5_TURBO_0125"] = "gpt-3.5-turbo-0125";
|
|
46
46
|
OpenAISupportedLLMs["GPT_3_5_TURBO_16K_0613"] = "gpt-3.5-turbo-16k-0613";
|
|
47
|
-
})(OpenAISupportedLLMs
|
|
47
|
+
})(OpenAISupportedLLMs || (exports.OpenAISupportedLLMs = OpenAISupportedLLMs = {}));
|
|
48
48
|
// AWS BEDROCK
|
|
49
49
|
// AWS BEDROCK ANTHROPIC
|
|
50
50
|
// https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html
|
|
@@ -59,12 +59,12 @@ var BedrockAnthropicSupportedLLMs;
|
|
|
59
59
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_HAIKU"] = "anthropic.claude-3-haiku-20240307-v1:0";
|
|
60
60
|
BedrockAnthropicSupportedLLMs["CLAUDE_3_5_HAIKU"] = "anthropic.claude-3-5-haiku-20241022-v1:0";
|
|
61
61
|
BedrockAnthropicSupportedLLMs["CLAUDE_INSTANT"] = "anthropic.claude-instant-v1";
|
|
62
|
-
})(BedrockAnthropicSupportedLLMs
|
|
62
|
+
})(BedrockAnthropicSupportedLLMs || (exports.BedrockAnthropicSupportedLLMs = BedrockAnthropicSupportedLLMs = {}));
|
|
63
63
|
var BedrockAnthropicContentType;
|
|
64
64
|
(function (BedrockAnthropicContentType) {
|
|
65
65
|
BedrockAnthropicContentType["TEXT"] = "text";
|
|
66
66
|
BedrockAnthropicContentType["IMAGE"] = "image";
|
|
67
67
|
BedrockAnthropicContentType["TOOL_USE"] = "tool_use";
|
|
68
68
|
BedrockAnthropicContentType["TOOL_RESULT"] = "tool_result";
|
|
69
|
-
})(BedrockAnthropicContentType
|
|
69
|
+
})(BedrockAnthropicContentType || (exports.BedrockAnthropicContentType = BedrockAnthropicContentType = {}));
|
|
70
70
|
//# 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,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,6BAUX;AAVD,WAAY,6BAA6B;IACvC,4FAA2D,CAAA;IAC3D,oGAAmE,CAAA;IACnE,oGAAmE,CAAA;IACnE,wFAAuD,CAAA;IACvD,uEAAsC,CAAA;IACtC,qEAAmC,CAAA;IACnC,0FAAyD,CAAA;IACzD,8FAA6D,CAAA;IAC7D,+EAA8C,CAAA;AAChD,CAAC,EAVW,6BAA6B,6CAA7B,6BAA6B,QAUxC;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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-proxy",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.17",
|
|
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",
|
|
7
7
|
"files": [
|
|
8
|
-
"dist/**/*"
|
|
8
|
+
"dist/**/*",
|
|
9
|
+
"package.json"
|
|
9
10
|
],
|
|
10
11
|
"scripts": {
|
|
11
12
|
"build": "tsc",
|
|
12
13
|
"prepare": "npm run build",
|
|
13
14
|
"test": "jest --config jest.config.js",
|
|
14
|
-
"dev": "ts-node src/index.ts"
|
|
15
|
+
"dev": "ts-node src/index.ts",
|
|
16
|
+
"prepublishOnly": "npm run build",
|
|
17
|
+
"semantic-release": "semantic-release"
|
|
15
18
|
},
|
|
16
19
|
"keywords": [],
|
|
17
20
|
"author": "Ahmad Jawabreh - jawabreh0",
|
|
@@ -21,6 +24,7 @@
|
|
|
21
24
|
"@types/jest": "^29.5.14",
|
|
22
25
|
"@types/node": "^22.8.6",
|
|
23
26
|
"jest": "^29.7.0",
|
|
27
|
+
"semantic-release": "^24.2.0",
|
|
24
28
|
"ts-jest": "^29.2.5",
|
|
25
29
|
"ts-node": "^10.9.2",
|
|
26
30
|
"typescript": "^5.6.3"
|
|
@@ -33,4 +37,4 @@
|
|
|
33
37
|
"llm-proxy": "^1.4.15",
|
|
34
38
|
"openai": "^4.69.0"
|
|
35
39
|
}
|
|
36
|
-
}
|
|
40
|
+
}
|