File size: 2,609 Bytes
4cc9842
 
 
 
 
 
5f0d916
4cc9842
 
 
 
5f0d916
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4cc9842
 
 
 
 
 
 
 
d24434c
9b6c202
d24434c
4cc9842
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5f0d916
 
 
 
 
 
 
 
 
 
 
4cc9842
 
 
 
5f0d916
 
 
 
 
 
 
4cc9842
5f0d916
4cc9842
 
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# -* coding:UTF-8 -*
# !/usr/bin/env python
import numpy as np
import gradio as gr

import os
from PIL import Image, ImageDraw

from codeinterpreterapi import CodeInterpreterSession


def imGreyAlpha(im):
    grey = im.convert('L') # 转成灰度
    px = grey.load() # 获取灰度数组

    im2 = Image.new(mode="RGBA", size=(w, h), color=(255,255,255,0)) # 新建图片
    draw = ImageDraw.Draw(im2) # 获取绘制句柄

    w,h = im.size # 获取图片大小

    # 遍历像素点
    for i in range(w):
        for j in range(h):
            alpha = px[i, j] # 获取灰度作为alpha值
            draw.point((i, j), fill=(0, 0, 0, 255 - alpha)) # 填充像素点
    return im2 # 返回图像


def codeinterpreter(openai_key,prompt, files):

    fileList = []
    if files != None:
        for idx, file in enumerate(files):
            fileList.append(file)

    if openai_key == "123321":
        openai_key = os.getenv("openaikey")
    else:
        return ['openai key must set!',None]

    with CodeInterpreterSession(model="gpt-3.5-turbo",openai_api_key=openai_key) as session:
    #async with CodeInterpreterSession(model="gpt-3.5-turbo",openai_api_key="") as session:
        response = session.generate_response_sync(prompt, fileList,True)

        images = []

        for _file in response.files:
            images.append(_file.get_image())

        return [response.content,images]
        

with gr.Blocks() as app:
    with gr.Tab(label="codeinterpreter"):
        with gr.Row():
            with gr.Column():
                inp1=gr.Textbox(label="openai_key")
                inp2=gr.Textbox(label="prompt",info="input the prompt")
                inp3=gr.Files()
                btn = gr.Button(value="Submit")
            with gr.Column():
                out1=gr.Textbox(label="result")
                out2=gr.Gallery()
        gr.Examples([["Plot the nvidea stock vs microsoft stock over the last 6 months."],
               ["Plot a sin wave and show it to me."],
               ["贵州茅台最近半年走势"],
               ["Plot the bitcoin chart of 2023 YTD"]],
                [inp2])
    with gr.Tab(label="image background filter"):
        with gr.Row():
            with gr.Column():
                inp10=gr.Image(label="original image")
                btn10 = gr.Button(value="Submit")
            with gr.Column():
                out10=gr.Image(label="result")
    btn.click(codeinterpreter, inputs=[inp1,inp2,inp3], outputs=[out1,out2],api_name="getresult")
    btn10.click(imGreyAlpha,inputs[inp10],outputs=[out10],api_name="imageFilter")

app.launch()