UNPKG

nuxt-chatgpt

Version:
33 lines (32 loc) 1.09 kB
import OpenAI from "openai"; import { createError, defineEventHandler, readBody } from "h3"; import { defaultOptions } from "../../constants/options.mjs"; import { MODEL_GPT_4_MINI } from "../../constants/models.mjs"; import { modelMap } from "../../utils/model-map.mjs"; import { useRuntimeConfig } from "#imports"; export default defineEventHandler(async (event) => { const { message, model, options } = await readBody(event); if (!useRuntimeConfig().chatgpt.apiKey) { throw createError({ statusCode: 403, message: "Missing OpenAI API Key" }); } const openai = new OpenAI({ apiKey: useRuntimeConfig().chatgpt.apiKey }); const requestOptions = { messages: [{ role: "user", content: message }], model: !model ? modelMap[MODEL_GPT_4_MINI] : modelMap[model], ...options || defaultOptions }; try { const chatCompletion = await openai.chat.completions.create(requestOptions); return chatCompletion.choices[0].message?.content; } catch (error) { throw createError({ statusCode: 500, message: error }); } });