File size: 965 Bytes
87daab4
 
 
 
 
 
 
 
551db13
87daab4
 
 
 
 
 
 
551db13
87daab4
 
 
 
551db13
 
87daab4
551db13
87daab4
 
 
 
 
 
 
551db13
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import gradio as gr
import openai
import matplotlib.pyplot as plt
import io
import numpy as np
import base64
from PIL import Image

# Convert image to base64 for display in gradio
def get_image_data(plt):
    buf = io.BytesIO()
    plt.savefig(buf, format='PNG')
    buf.seek(0)
    img = Image.open(buf)
    return img

# Execute Python code and generate images
def execute_code(code):
    exec(code)
    return get_image_data(plt)

def gpt_inference(prompt, model, openai_key):
    openai.api_key = openai_key
    response = openai.Completion.create(
      engine=model, 
      prompt=prompt, 
      max_tokens=100
    )
    code = response.choices[0].text.strip()
    img = execute_code(code)
    return img

iface = gr.Interface(
    fn=gpt_inference, 
    inputs=["text", gr.inputs.Dropdown(choices=["gpt3.5-turbo", "gpt4"], label="Model"), "text"], 
    outputs=gr.outputs.Image(type="pil"),
    input_labels=["Prompt", "Model", "OpenAI Key"]
)
iface.launch()