Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -5,6 +5,7 @@ import base64
|
|
5 |
from io import BytesIO
|
6 |
from PIL import Image
|
7 |
import numpy as np
|
|
|
8 |
|
9 |
# Initialize the Together client
|
10 |
api_key = os.environ.get('TOGETHER_API_KEY')
|
@@ -31,24 +32,13 @@ def generate_gradio_app(image):
|
|
31 |
img_str = base64.b64encode(buffered.getvalue()).decode()
|
32 |
|
33 |
# Prepare the messages for the API call
|
34 |
-
system_message = "
|
35 |
-
|
36 |
user_message = f"""
|
37 |
<image>
|
38 |
data:image/png;base64,{img_str}
|
39 |
</image>
|
40 |
|
41 |
-
Analyze this wireframe image and generate a complete Python code using Gradio that recreates all the main elements seen in the image.
|
42 |
-
1. Use appropriate Gradio components that best represent each UI element in the wireframe.
|
43 |
-
2. Include all necessary imports at the beginning of the code.
|
44 |
-
3. Implement placeholder functions for any interactive elements (buttons, inputs, etc.).
|
45 |
-
4. Use gr.Blocks() to create a layout that matches the wireframe as closely as possible.
|
46 |
-
5. Add appropriate labels and descriptions for all components.
|
47 |
-
6. Include the gr.Blocks().launch() call at the end of the code.
|
48 |
-
7. Provide a complete, runnable Gradio application that can be executed as-is.
|
49 |
-
8. Add comments explaining the purpose of each major section or component.
|
50 |
-
|
51 |
-
Please generate the entire code, including all necessary parts to make it a fully functional Gradio application.
|
52 |
"""
|
53 |
|
54 |
messages = [
|
@@ -60,24 +50,29 @@ def generate_gradio_app(image):
|
|
60 |
response = client.chat.completions.create(
|
61 |
model="meta-llama/Llama-Vision-Free",
|
62 |
messages=messages,
|
63 |
-
max_tokens=
|
64 |
temperature=0.7,
|
65 |
top_p=0.7,
|
66 |
top_k=50,
|
67 |
repetition_penalty=1,
|
68 |
-
stop=["<|im_end|>"],
|
69 |
-
stream=True
|
70 |
)
|
71 |
|
72 |
-
#
|
73 |
-
generated_code =
|
74 |
-
for chunk in response:
|
75 |
-
if chunk.choices[0].delta.content is not None:
|
76 |
-
generated_code += chunk.choices[0].delta.content
|
77 |
-
|
78 |
return generated_code
|
|
|
79 |
except Exception as e:
|
80 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
with gr.Blocks() as demo:
|
83 |
gr.Markdown("# Turn your wireframe into a Gradio app")
|
|
|
5 |
from io import BytesIO
|
6 |
from PIL import Image
|
7 |
import numpy as np
|
8 |
+
import json
|
9 |
|
10 |
# Initialize the Together client
|
11 |
api_key = os.environ.get('TOGETHER_API_KEY')
|
|
|
32 |
img_str = base64.b64encode(buffered.getvalue()).decode()
|
33 |
|
34 |
# Prepare the messages for the API call
|
35 |
+
system_message = "You are an AI assistant that can analyze wireframe images and generate detailed Gradio code based on their content."
|
|
|
36 |
user_message = f"""
|
37 |
<image>
|
38 |
data:image/png;base64,{img_str}
|
39 |
</image>
|
40 |
|
41 |
+
Analyze this wireframe image and generate a complete Python code using Gradio that recreates all the main elements seen in the image. Provide a complete, runnable Gradio application.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
"""
|
43 |
|
44 |
messages = [
|
|
|
50 |
response = client.chat.completions.create(
|
51 |
model="meta-llama/Llama-Vision-Free",
|
52 |
messages=messages,
|
53 |
+
max_tokens=5000,
|
54 |
temperature=0.7,
|
55 |
top_p=0.7,
|
56 |
top_k=50,
|
57 |
repetition_penalty=1,
|
|
|
|
|
58 |
)
|
59 |
|
60 |
+
# Extract the generated code from the response
|
61 |
+
generated_code = response.choices[0].message.content
|
|
|
|
|
|
|
|
|
62 |
return generated_code
|
63 |
+
|
64 |
except Exception as e:
|
65 |
+
error_message = str(e)
|
66 |
+
if "400" in error_message:
|
67 |
+
return "Error 400: Bad Request. The API request was invalid. Please check your input and try again."
|
68 |
+
elif "401" in error_message:
|
69 |
+
return "Error 401: Unauthorized. Please check your API key and ensure it's correctly set."
|
70 |
+
elif "429" in error_message:
|
71 |
+
return "Error 429: Too Many Requests. Please wait a moment and try again."
|
72 |
+
elif "500" in error_message:
|
73 |
+
return "Error 500: Internal Server Error. There's an issue with the API service. Please try again later."
|
74 |
+
else:
|
75 |
+
return f"An unexpected error occurred: {error_message}\nPlease try again or contact support if the issue persists."
|
76 |
|
77 |
with gr.Blocks() as demo:
|
78 |
gr.Markdown("# Turn your wireframe into a Gradio app")
|