common.ts 993 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { NextRequest } from "next/server";
  2. const OPENAI_URL = "api.openai.com";
  3. const DEFAULT_PROTOCOL = "https";
  4. const PROTOCOL = process.env.PROTOCOL ?? DEFAULT_PROTOCOL;
  5. const BASE_URL = process.env.BASE_URL ?? OPENAI_URL;
  6. export async function requestOpenai(req: NextRequest) {
  7. const apiKey = req.headers.get("token");
  8. const openaiPath = req.headers.get("path");
  9. let baseUrl = BASE_URL;
  10. if (!baseUrl.startsWith("http")) {
  11. baseUrl = `${PROTOCOL}://${baseUrl}`;
  12. }
  13. console.log("[Proxy] ", openaiPath);
  14. console.log("[Base Url]", baseUrl);
  15. if (process.env.OPENAI_ORG_ID) {
  16. console.log("[Org ID]", process.env.OPENAI_ORG_ID);
  17. }
  18. return fetch(`${baseUrl}/${openaiPath}`, {
  19. headers: {
  20. "Content-Type": "application/json",
  21. Authorization: `Bearer ${apiKey}`,
  22. ...(process.env.OPENAI_ORG_ID && {
  23. "OpenAI-Organization": process.env.OPENAI_ORG_ID,
  24. }),
  25. },
  26. cache: "no-store",
  27. method: req.method,
  28. body: req.body,
  29. });
  30. }