Spaces:
Runtime error
Runtime error
import { NextRequest, NextResponse } from "next/server"; | |
export async function GET(req: NextRequest): Promise<NextResponse> { | |
const baseUrl = process.env.VLLM_URL; | |
const apiKey = process.env.VLLM_API_KEY; | |
const headers = new Headers(); | |
if (apiKey !== undefined) { | |
headers.set("Authorization", `Bearer ${apiKey}`); | |
headers.set("api-key", apiKey); | |
} | |
if (!baseUrl) { | |
throw new Error("VLLM_URL is not set"); | |
} | |
const envModel = process.env.VLLM_MODEL; | |
if (envModel) { | |
return NextResponse.json({ | |
object: "list", | |
data: [ | |
{ | |
id: envModel, | |
}, | |
], | |
}); | |
} | |
try { | |
const res = await fetch(`${baseUrl}/v1/models`, { | |
headers: headers, | |
cache: "no-store", | |
}); | |
if (res.status !== 200) { | |
const statusText = res.statusText; | |
const responseBody = await res.text(); | |
console.error(`vLLM /api/models response error: ${responseBody}`); | |
return NextResponse.json( | |
{ | |
success: false, | |
error: statusText, | |
}, | |
{ status: res.status } | |
); | |
} | |
return new NextResponse(res.body, res); | |
} catch (error) { | |
console.error(error); | |
return NextResponse.json( | |
{ | |
success: false, | |
error: error instanceof Error ? error.message : "Unknown error", | |
}, | |
{ status: 500 } | |
); | |
} | |
} | |