34 lines
843 B
JavaScript
34 lines
843 B
JavaScript
import { getConfig } from "@/lib/config";
|
|
|
|
export async function GET() {
|
|
try {
|
|
const result = getConfig();
|
|
|
|
if (!result.ok) {
|
|
return Response.json({ healthy: false }, { status: 500 });
|
|
}
|
|
|
|
const { OLLAMA_BASE_URL, OLLAMA_MODEL } = result.config;
|
|
|
|
// Test reachability with a short timeout
|
|
let reachable = false;
|
|
|
|
try {
|
|
const controller = new AbortController();
|
|
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
|
|
const res = await fetch(`${OLLAMA_BASE_URL}/api/tags`, {
|
|
signal: controller.signal
|
|
});
|
|
clearTimeout(timeout);
|
|
reachable = res.ok;
|
|
} catch {
|
|
reachable = false;
|
|
}
|
|
|
|
return Response.json({ healthy: reachable }, { status: reachable ? 200 : 503 });
|
|
} catch {
|
|
return Response.json({ healthy: false }, { status: 500 });
|
|
}
|
|
}
|