| import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from '@/utils/app/const'; | |
| import { OllamaError, OllamaStream } from '@/utils/server'; | |
| import { ChatBody, Message } from '@/types/chat'; | |
| export const config = { | |
| runtime: 'edge', | |
| }; | |
| const handler = async (req: Request): Promise<Response> => { | |
| try { | |
| const { model, system, options, prompt } = (await req.json()) as ChatBody; | |
| let promptToSend = system; | |
| if (!promptToSend) { | |
| promptToSend = DEFAULT_SYSTEM_PROMPT; | |
| } | |
| let temperatureToUse = options?.temperature; | |
| if (temperatureToUse == null) { | |
| temperatureToUse = DEFAULT_TEMPERATURE; | |
| } | |
| const stream = await OllamaStream (model, promptToSend, temperatureToUse, prompt); | |
| return new Response(stream); | |
| } catch (error) { | |
| console.error(error); | |
| if (error instanceof OllamaError) { | |
| return new Response('Error', { status: 500, statusText: error.message }); | |
| } else { | |
| return new Response('Error', { status: 500 }); | |
| } | |
| } | |
| }; | |
| export default handler; | |