|
import { OLLAMA_HOST } from '@/utils/app/const'; |
|
import { OllamaModelDetail } from '@/types/ollama'; |
|
|
|
export const config = { |
|
runtime: 'edge', |
|
}; |
|
|
|
const handler = async (req: Request): Promise<Response> => { |
|
try { |
|
let url = `${OLLAMA_HOST}/api/show`; |
|
|
|
const { name } = await req.json(); |
|
|
|
if (typeof name !== 'string' || name.trim() === '') { |
|
return new Response('Name parameter is required', { status: 400 }); |
|
} |
|
|
|
const response = await fetch(url, { |
|
method: 'POST', |
|
headers: { |
|
'Content-Type': 'application/json', |
|
}, |
|
body: JSON.stringify({ name }), |
|
}); |
|
|
|
if (response.status === 401) { |
|
return new Response(response.body, { |
|
status: 500, |
|
headers: response.headers, |
|
}); |
|
} else if (response.status !== 200) { |
|
console.error( |
|
`Ollama API returned an error ${ |
|
response.status |
|
}: ${await response.text()}`, |
|
); |
|
throw new Error('Ollama API returned an error'); |
|
} |
|
|
|
const json = await response.json(); |
|
|
|
return new Response(JSON.stringify(json), { status: 200 }); |
|
} catch (error) { |
|
console.error(error); |
|
return new Response('Error', { status: 500 }); |
|
} |
|
}; |
|
|
|
export default handler; |
|
|