llm-proxy 1.0.25 → 1.0.26
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.
|
@@ -65,49 +65,111 @@ class OutputFormatAdapter {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
static adaptAnthropicBedrockResponse(response) {
|
|
68
|
-
var _a;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const openAIResponse = {
|
|
77
|
-
id: response.message.id,
|
|
68
|
+
var _a, _b;
|
|
69
|
+
// Handle streaming content blocks
|
|
70
|
+
//
|
|
71
|
+
if (response.type === "content_block_start" || response.content_block) {
|
|
72
|
+
return {
|
|
73
|
+
id: `stream-${Date.now()}`,
|
|
78
74
|
object: "text_completion",
|
|
79
75
|
created: Date.now(),
|
|
80
|
-
model:
|
|
81
|
-
choices:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
index,
|
|
76
|
+
model: "anthropic.claude-3-haiku", // This will be overwritten in complete response
|
|
77
|
+
choices: [
|
|
78
|
+
{
|
|
79
|
+
index: 0,
|
|
85
80
|
message: {
|
|
86
|
-
role:
|
|
87
|
-
content:
|
|
81
|
+
role: "assistant",
|
|
82
|
+
content: ((_a = response.content_block) === null || _a === void 0 ? void 0 : _a.text) || "",
|
|
88
83
|
},
|
|
89
84
|
logprobs: null,
|
|
90
|
-
finish_reason:
|
|
91
|
-
}
|
|
92
|
-
|
|
85
|
+
finish_reason: "null",
|
|
86
|
+
},
|
|
87
|
+
],
|
|
93
88
|
usage: {
|
|
94
|
-
prompt_tokens:
|
|
95
|
-
completion_tokens:
|
|
96
|
-
total_tokens:
|
|
97
|
-
response.message.usage.output_tokens,
|
|
89
|
+
prompt_tokens: 0,
|
|
90
|
+
completion_tokens: 0,
|
|
91
|
+
total_tokens: 0,
|
|
98
92
|
prompt_tokens_details: { cached_tokens: 0 },
|
|
99
93
|
completion_tokens_details: { reasoning_tokens: 0 },
|
|
100
94
|
},
|
|
101
95
|
system_fingerprint: "anthropic_translation",
|
|
102
96
|
};
|
|
103
|
-
return openAIResponse;
|
|
104
97
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
98
|
+
// Handle complete message response
|
|
99
|
+
if (response.message) {
|
|
100
|
+
if (!((_b = response.message) === null || _b === void 0 ? void 0 : _b.id) ||
|
|
101
|
+
!response.message.model ||
|
|
102
|
+
!response.message.content ||
|
|
103
|
+
!response.message.usage) {
|
|
104
|
+
throw new ResponseValidationError("Invalid Anthropic Bedrock response structure", response);
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
const openAIResponse = {
|
|
108
|
+
id: response.message.id,
|
|
109
|
+
object: "text_completion",
|
|
110
|
+
created: Date.now(),
|
|
111
|
+
model: response.message.model,
|
|
112
|
+
choices: response.message.content.map((contentBlock, index) => {
|
|
113
|
+
var _a;
|
|
114
|
+
return ({
|
|
115
|
+
index,
|
|
116
|
+
message: {
|
|
117
|
+
role: this.mapRole(contentBlock),
|
|
118
|
+
content: this.extractContent(contentBlock),
|
|
119
|
+
},
|
|
120
|
+
logprobs: null,
|
|
121
|
+
finish_reason: ((_a = response.message) === null || _a === void 0 ? void 0 : _a.stop_reason) || "",
|
|
122
|
+
});
|
|
123
|
+
}),
|
|
124
|
+
usage: {
|
|
125
|
+
prompt_tokens: response.message.usage.input_tokens,
|
|
126
|
+
completion_tokens: response.message.usage.output_tokens,
|
|
127
|
+
total_tokens: response.message.usage.input_tokens +
|
|
128
|
+
response.message.usage.output_tokens,
|
|
129
|
+
prompt_tokens_details: { cached_tokens: 0 },
|
|
130
|
+
completion_tokens_details: { reasoning_tokens: 0 },
|
|
131
|
+
},
|
|
132
|
+
system_fingerprint: "anthropic_translation",
|
|
133
|
+
};
|
|
134
|
+
return openAIResponse;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
throw new AdapterError("Failed to adapt Anthropic response", {
|
|
138
|
+
responseId: response.message.id,
|
|
139
|
+
originalError: error,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Handle other message types (delta updates, metrics, etc.)
|
|
144
|
+
if (response.delta) {
|
|
145
|
+
return {
|
|
146
|
+
id: `stream-${Date.now()}`,
|
|
147
|
+
object: "text_completion",
|
|
148
|
+
created: Date.now(),
|
|
149
|
+
model: "anthropic.claude-3-haiku",
|
|
150
|
+
choices: [
|
|
151
|
+
{
|
|
152
|
+
index: 0,
|
|
153
|
+
message: {
|
|
154
|
+
role: "assistant",
|
|
155
|
+
content: response.delta.text || "",
|
|
156
|
+
},
|
|
157
|
+
logprobs: null,
|
|
158
|
+
finish_reason: "null",
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
usage: {
|
|
162
|
+
prompt_tokens: 0,
|
|
163
|
+
completion_tokens: 0,
|
|
164
|
+
total_tokens: 0,
|
|
165
|
+
prompt_tokens_details: { cached_tokens: 0 },
|
|
166
|
+
completion_tokens_details: { reasoning_tokens: 0 },
|
|
167
|
+
},
|
|
168
|
+
system_fingerprint: "anthropic_translation",
|
|
169
|
+
};
|
|
110
170
|
}
|
|
171
|
+
// If none of the above conditions match, throw an error
|
|
172
|
+
throw new ResponseValidationError("Invalid Anthropic Bedrock response structure", response);
|
|
111
173
|
}
|
|
112
174
|
static mapRole(content) {
|
|
113
175
|
if (!content || !content.type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe,EAAS,OAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,YAAO,GAAP,OAAO,CAAM;QAE/C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC;AAED,MAAa,wBAAyB,SAAQ,YAAY;IACxD,YAAY,QAAgB;QAC1B,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC;AAED,MAAa,sBAAuB,SAAQ,YAAY;IACtD,YAAY,WAAmB,EAAE,OAAa;QAC5C,KAAK,CAAC,uCAAuC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AALD,wDAKC;AAED,MAAa,uBAAwB,SAAQ,YAAY;IACvD,YAAY,OAAe,EAAS,QAAc;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,aAAQ,GAAR,QAAQ,CAAM;QAEhD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,0DAKC;
|
|
1
|
+
{"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -176,7 +176,7 @@ export interface BedrockAnthropicMetrics {
|
|
|
176
176
|
firstByteLatency: number;
|
|
177
177
|
}
|
|
178
178
|
export type BedrockAnthropicParsedChunk = {
|
|
179
|
-
type:
|
|
179
|
+
type: string;
|
|
180
180
|
message?: BedrockAnthropicMessageChunk;
|
|
181
181
|
content_block?: BedrockAnthropicContentBlock;
|
|
182
182
|
delta?: BedrockAnthropicContentBlock;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-proxy",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26",
|
|
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",
|