from openai import OpenAI
from parea import Parea, trace, trace_insert
from parea.schemas import TraceLogImage
client = OpenAI(api_key="OPENAI_API_KEY")
p = Parea(api_key="PAREA_API_KEY")
p.wrap_openai_client(client)
@trace
def image_maker(query: str) -> str:
response = client.images.generate(prompt=query, model="dall-e-3")
image_url = response.data[0].url
# you can insert an image into the current Trace
trace_insert({"images": [TraceLogImage(url=image_url, caption=query]})
return image_url
@trace
def ask_vision(image_url: str) -> str:
# gpt-4-vision images will be automatically traced
response = client.chat.completions.create(
model="gpt-4-vision-preview",
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