Implement AWS Bedrock support (khanon/oai-reverse-proxy!45)

This commit is contained in:
khanon
2023-10-01 01:40:18 +00:00
parent 7e681a7bef
commit fa4bf468d2
38 changed files with 1438 additions and 410 deletions
+19 -20
View File
@@ -21,6 +21,7 @@ import {
createEmbeddingsPreprocessorMiddleware,
createPreprocessorMiddleware,
finalizeBody,
forceModel,
languageFilter,
limitCompletions,
stripHeaders,
@@ -246,17 +247,25 @@ openaiRouter.get("/v1/models", handleModelRequest);
openaiRouter.post(
"/v1/completions",
ipLimiter,
createPreprocessorMiddleware({ inApi: "openai-text", outApi: "openai-text" }),
createPreprocessorMiddleware({
inApi: "openai-text",
outApi: "openai-text",
service: "openai",
}),
openaiProxy
);
// turbo-instruct compatibility endpoint, accepts either prompt or messages
openaiRouter.post(
/\/v1\/turbo\-instruct\/(v1\/)?chat\/completions/,
/\/v1\/turbo-instruct\/(v1\/)?chat\/completions/,
ipLimiter,
createPreprocessorMiddleware({ inApi: "openai", outApi: "openai-text" }, [
rewriteForTurboInstruct,
]),
createPreprocessorMiddleware(
{ inApi: "openai", outApi: "openai-text", service: "openai" },
{
beforeTransform: [rewriteForTurboInstruct],
afterTransform: [forceModel("gpt-3.5-turbo-instruct")],
}
),
openaiProxy
);
@@ -264,7 +273,11 @@ openaiRouter.post(
openaiRouter.post(
"/v1/chat/completions",
ipLimiter,
createPreprocessorMiddleware({ inApi: "openai", outApi: "openai" }),
createPreprocessorMiddleware({
inApi: "openai",
outApi: "openai",
service: "openai",
}),
openaiProxy
);
@@ -276,18 +289,4 @@ openaiRouter.post(
openaiEmbeddingsProxy
);
// Redirect browser requests to the homepage.
openaiRouter.get("*", (req, res, next) => {
const isBrowser = req.headers["user-agent"]?.includes("Mozilla");
if (isBrowser) {
res.redirect("/");
} else {
next();
}
});
openaiRouter.use((req, res) => {
req.log.warn(`Blocked openai proxy request: ${req.method} ${req.path}`);
res.status(404).json({ error: "Not found" });
});
export const openai = openaiRouter;