@coarse fox Now implement what you've made here:
const generateImage = async () => {
try {
const openai = new OpenAI({
apiKey: settings.apiKey,
dangerouslyAllowBrowser: true
});
return await openai.images.generate({
model: 'dall-e-3',
prompt: 'a white siamese cat',
size: '1024x1024',
quality: 'standard',
n: 1
});
} catch (error) {
}
};
const generateReply = async () => {
try {
const openai = new OpenAI({
apiKey: settings.apiKey,
dangerouslyAllowBrowser: true
});
let imagePrompt = '';
state.value.messages[0] = {
role: 'system',
content: [{ type: 'text', text: settings.systemPrompt }]
};
const stream = await openai.chat.completions.create({
model: 'gpt-4-1106-preview',
messages: getTrunkatedMessages(),
max_tokens: 4096,
stream: true,
temperature: settings.temperature,
presence_penalty: settings.presencePenalty,
frequency_penalty: settings.frequencyPenalty,
tools: [
{
type: 'function',
function: {
name: 'generateImage',
description: 'Generates an image given a prompt using DALL-E-3',
parameters: {
type: 'object',
properties: {
prompt: {
type: 'string',
description: 'The description to generate the image, it has to be very detailed.'
}
},
required: ['prompt']
}
}
}
],
tool_choice: 'auto'
});
addMessage('assistant', '');
for await (const chunk of stream) {
if (chunk.choices[0].delta.content) {
addChunk(chunk.choices[0].delta.content);
}
}
} catch (error) {
}
};