Add DALL-E to OpenAI plugin

This commit is contained in:
Cohee
2023-11-06 21:47:00 +02:00
parent 57e845d0d7
commit 1896732f17
4 changed files with 173 additions and 7 deletions

46
src/openai.js Normal file
View File

@@ -0,0 +1,46 @@
const { readSecret, SECRET_KEYS } = require("./secrets");
/**
* Registers the OpenAI endpoints.
* @param {import("express").Express} app
* @param {any} jsonParser
*/
function registerEndpoints(app, jsonParser) {
app.post('/api/openai/generate-image', jsonParser, async (request, response) => {
try {
const key = readSecret(SECRET_KEYS.OPENAI);
if (!key) {
console.log('No OpenAI key found');
return response.sendStatus(401);
}
console.log('OpenAI request', request.body);
const result = await fetch('https://api.openai.com/v1/images/generations', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${key}`,
},
body: JSON.stringify(request.body),
});
if (!result.ok) {
const text = await result.text();
console.log('OpenAI request failed', result.statusText, text);
return response.status(500).send(text);
}
const data = await result.json();
return response.json(data);
} catch (error) {
console.error(error);
response.status(500).send('Internal server error');
}
});
}
module.exports = {
registerEndpoints,
};