nuxt-chatgpt
Version:
ChatGPT integration for Nuxt 3
33 lines (32 loc) • 1.09 kB
JavaScript
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
});
}
});