nuxt-chatgpt
Version:
ChatGPT integration for Nuxt 3
33 lines (32 loc) • 1.03 kB
JavaScript
import OpenAI from "openai";
import { createError, defineEventHandler, readBody } from "h3";
import { defaultOptions } from "../../constants/options.js";
import { MODEL_GPT_5_MINI } from "../../constants/models.js";
import { modelMap } from "../../utils/model-map.js";
import { useRuntimeConfig } from "#imports";
export default defineEventHandler(async (event) => {
const { messages, 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,
model: !model ? modelMap[MODEL_GPT_5_MINI] : modelMap[model],
...options || defaultOptions
};
try {
const chatCompletion = await openai.chat.completions.create(requestOptions);
return chatCompletion.choices;
} catch (error) {
throw createError({
statusCode: 500,
message: error
});
}
});