Spaces:
Running
Running
import { NextRequest } from "next/server"; | |
const OPENAI_URL = "api.openai.com"; | |
const DEFAULT_PROTOCOL = "https"; | |
const PROTOCOL = process.env.PROTOCOL ?? DEFAULT_PROTOCOL; | |
const BASE_URL = process.env.BASE_URL ?? OPENAI_URL; | |
export async function requestOpenai(req: NextRequest) { | |
const authValue = req.headers.get("Authorization") ?? ""; | |
const openaiPath = `${req.nextUrl.pathname}${req.nextUrl.search}`.replaceAll( | |
"/api/openai/", | |
"", | |
); | |
let baseUrl = BASE_URL; | |
if (!baseUrl.startsWith("http")) { | |
baseUrl = `${PROTOCOL}://${baseUrl}`; | |
} | |
console.log("[Proxy] ", openaiPath); | |
console.log("[Base Url]", baseUrl); | |
if (process.env.OPENAI_ORG_ID) { | |
console.log("[Org ID]", process.env.OPENAI_ORG_ID); | |
} | |
if (!authValue || !authValue.startsWith("Bearer sk-")) { | |
console.error("[OpenAI Request] invalid api key provided", authValue); | |
} | |
return fetch(`${baseUrl}/${openaiPath}`, { | |
headers: { | |
"Content-Type": "application/json", | |
Authorization: authValue, | |
...(process.env.OPENAI_ORG_ID && { | |
"OpenAI-Organization": process.env.OPENAI_ORG_ID, | |
}), | |
}, | |
cache: "no-store", | |
method: req.method, | |
body: req.body, | |
}); | |
} | |
export async function requestLemur(req: NextRequest) { | |
return fetch('http://lemurchat.anfans.cn/api/chat/conversation-trial', { | |
headers: { | |
"Content-Type": "application/json" | |
}, | |
cache: "no-store", | |
method: req.method, | |
body: req.body, | |
}); | |
} | |