You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			33 lines
		
	
	
		
			823 B
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			823 B
		
	
	
	
		
			TypeScript
		
	
| 
											9 months ago
										 | import { ModelProvider } from "@/app/constant"; | ||
|  | import { prettyObject } from "@/app/utils/format"; | ||
|  | import { NextRequest, NextResponse } from "next/server"; | ||
|  | import { auth } from "./auth"; | ||
|  | import { requestOpenai } from "./common"; | ||
|  | 
 | ||
|  | export async function handle( | ||
|  |   req: NextRequest, | ||
|  |   { params }: { params: { path: string[] } }, | ||
|  | ) { | ||
|  |   console.log("[Azure Route] params ", params); | ||
|  | 
 | ||
|  |   if (req.method === "OPTIONS") { | ||
|  |     return NextResponse.json({ body: "OK" }, { status: 200 }); | ||
|  |   } | ||
|  | 
 | ||
|  |   const subpath = params.path.join("/"); | ||
|  | 
 | ||
|  |   const authResult = auth(req, ModelProvider.GPT); | ||
|  |   if (authResult.error) { | ||
|  |     return NextResponse.json(authResult, { | ||
|  |       status: 401, | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   try { | ||
|  |     return await requestOpenai(req); | ||
|  |   } catch (e) { | ||
|  |     console.error("[Azure] ", e); | ||
|  |     return NextResponse.json(prettyObject(e)); | ||
|  |   } | ||
|  | } |