import OpenAI from 'openai';
import { Parea, trace, traceInsert, patchOpenAI } from 'parea-ai';
const openai = new OpenAI();
new Parea("PAREA_API_KEY"); // need to initialize Parea
patchOpenAI(openai);
const imageMaker = trace('imageMaker', async (query: string): Promise<string | undefined> => {
const response = await openai.images.generate({ prompt: query, model: 'dall-e-3' });
const image_url = response.data[0].url;
// you can insert an image into the current Trace
traceInsert({ images: [{ url: image_url, caption: query }] });
return image_url;
});
const askVision = trace('askVision', async (image_url: string): Promise<string | null> => {
// gpt-4-vision images will be automatically traced
const response = await openai.chat.completions.create({
model: 'gpt-4-turbo',
messages: [{role: 'user', content: [
{ type: 'text', text: 'What’s in this image?' },
{ type: 'image_url', image_url: { url: image_url } },
]}],
});
return response.choices[0].message.content;
});