puteroapix / src /services /openAiService.js
woiceatus's picture
init
e43a4a9
raw
history blame contribute delete
655 Bytes
export function createOpenAiService({ apiKey, baseUrl, timeoutMs = 60000, fetchImpl = fetch }) {
return {
async createChatCompletion(body) {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), timeoutMs);
try {
return await fetchImpl(`${baseUrl}/chat/completions`, {
method: "POST",
headers: {
"authorization": `Bearer ${apiKey}`,
"content-type": "application/json"
},
body: JSON.stringify(body),
signal: controller.signal
});
} finally {
clearTimeout(timeout);
}
}
};
}