mirror of
https://github.com/JezzWTF/vibepod.git
synced 2026-06-01 15:22:14 +00:00
75b84b211b
Add CUDA inference hot-path optimizations, safer attention fallback handling, and generation profiling hooks. Improve SSE streaming, browser buffering telemetry, and playback recovery while preserving default audio quality settings.
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { NextResponse } from "next/server";
|
|
|
|
const OFFLINE_RESPONSE = { status: "offline" };
|
|
const COMMON_OPTIONS = { headers: { "Cache-Control": "no-store" } };
|
|
|
|
export async function GET() {
|
|
const pythonServerUrl =
|
|
process.env.VIBEVOICE_SERVER_URL ?? "http://localhost:8000";
|
|
|
|
try {
|
|
const res = await fetch(`${pythonServerUrl}/health`, {
|
|
method: "GET",
|
|
signal: AbortSignal.timeout(4000),
|
|
// Don't cache health checks
|
|
cache: "no-store",
|
|
});
|
|
|
|
if (res.ok) {
|
|
const data = await res.json().catch(() => ({}));
|
|
// Pass through the exact status the Python server reports:
|
|
// "online" | "loading" | "error"
|
|
const status: string = data.status ?? "online";
|
|
return NextResponse.json(
|
|
{
|
|
status,
|
|
device: data.device ?? null,
|
|
message: data.message,
|
|
progress: data.progress ?? null,
|
|
voices: data.voices ?? [],
|
|
config: data.config ?? null,
|
|
},
|
|
COMMON_OPTIONS
|
|
);
|
|
}
|
|
return NextResponse.json(OFFLINE_RESPONSE, COMMON_OPTIONS);
|
|
} catch {
|
|
return NextResponse.json(OFFLINE_RESPONSE, COMMON_OPTIONS);
|
|
}
|
|
}
|