20 lines
567 B
TypeScript
20 lines
567 B
TypeScript
import { type JSONSerializable } from "../types";
|
|
|
|
export async function getChatCompletion(payload: JSONSerializable, apiKey: string) {
|
|
const response = await fetch("https://api.openai.com/v1/chat/completions", {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
Authorization: `Bearer ${apiKey}`,
|
|
},
|
|
body: JSON.stringify(payload),
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error(`OpenAI API request failed with status ${response.status}`);
|
|
}
|
|
|
|
const data = (await response.json()) as JSONSerializable;
|
|
return data;
|
|
}
|