Spaces:
Paused
Paused
| import { NextRequest } from "next/server"; | |
| import { getIP } from "./auth"; | |
| 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, | |
| }); | |
| } | |