Spaces:
Running
Running
Commit
·
871a905
1
Parent(s):
4796f79
Hide API key
Browse files- screencoder/.gitignore +1 -1
- screencoder/block_parsor.py +16 -8
- screencoder/html_generator.py +7 -4
screencoder/.gitignore
CHANGED
@@ -8,4 +8,4 @@ dist/
|
|
8 |
.venv
|
9 |
|
10 |
# API keys
|
11 |
-
|
|
|
8 |
.venv
|
9 |
|
10 |
# API keys
|
11 |
+
doubao_api.txt
|
screencoder/block_parsor.py
CHANGED
@@ -130,13 +130,19 @@ def resolve_containment(bboxes: dict[str, tuple[int, int, int, int]]) -> dict[st
|
|
130 |
return {name: bbox for name, bbox in bboxes.items() if name not in removed}
|
131 |
|
132 |
# sequential version of bbox parsing: Using recursive detection with mask
|
133 |
-
def sequential_component_detection(image_path: str,
|
134 |
"""
|
135 |
Sequential processing flow: detect each component in turn, mask the image after each detection
|
136 |
"""
|
137 |
bboxes = {}
|
138 |
current_image_path = image_path
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
image = cv2.imread(image_path)
|
142 |
if image is None:
|
@@ -222,7 +228,7 @@ def main():
|
|
222 |
tmp_dir = os.path.join(base_dir, 'data', 'tmp', run_id)
|
223 |
|
224 |
image_path = os.path.join(tmp_dir, f"{run_id}.png")
|
225 |
-
api_path = os.path.join(base_dir, "doubao_api.txt")
|
226 |
json_output_path = os.path.join(tmp_dir, f"{run_id}_bboxes.json")
|
227 |
annotated_image_output_path = os.path.join(tmp_dir, f"{run_id}_with_bboxes.png")
|
228 |
|
@@ -230,9 +236,9 @@ def main():
|
|
230 |
print(f"Debug - base_dir: {base_dir}")
|
231 |
print(f"Debug - tmp_dir: {tmp_dir}")
|
232 |
print(f"Debug - image_path: {image_path}")
|
233 |
-
print(f"Debug - api_path: {api_path}")
|
234 |
print(f"Debug - image_path exists: {os.path.exists(image_path)}")
|
235 |
-
print(f"Debug - api_path exists: {os.path.exists(api_path)}")
|
236 |
|
237 |
# List contents of tmp_dir if it exists
|
238 |
if os.path.exists(tmp_dir):
|
@@ -246,15 +252,17 @@ def main():
|
|
246 |
save_bboxes_to_json({}, json_output_path)
|
247 |
exit(1)
|
248 |
|
249 |
-
|
250 |
-
|
|
|
251 |
# Create empty json file so the pipeline doesn't break
|
252 |
save_bboxes_to_json({}, json_output_path)
|
253 |
exit(1)
|
254 |
|
255 |
print(f"--- Starting BBox Parsing for run_id: {run_id} ---")
|
256 |
|
257 |
-
|
|
|
258 |
base64_image = encode_image(image_path)
|
259 |
if not base64_image:
|
260 |
print(f"Error: Failed to encode image {image_path}")
|
|
|
130 |
return {name: bbox for name, bbox in bboxes.items() if name not in removed}
|
131 |
|
132 |
# sequential version of bbox parsing: Using recursive detection with mask
|
133 |
+
def sequential_component_detection(image_path: str, temp_dir: str) -> dict[str, tuple[int, int, int, int]]:
|
134 |
"""
|
135 |
Sequential processing flow: detect each component in turn, mask the image after each detection
|
136 |
"""
|
137 |
bboxes = {}
|
138 |
current_image_path = image_path
|
139 |
+
|
140 |
+
# Check for API key - first try environment variable, then use provided path
|
141 |
+
api_key = os.environ.get('API_key')
|
142 |
+
if not api_key:
|
143 |
+
print(f"Error: API key not found in environment variable 'API_key'")
|
144 |
+
exit(1)
|
145 |
+
ark_client = Doubao(api_key)
|
146 |
|
147 |
image = cv2.imread(image_path)
|
148 |
if image is None:
|
|
|
228 |
tmp_dir = os.path.join(base_dir, 'data', 'tmp', run_id)
|
229 |
|
230 |
image_path = os.path.join(tmp_dir, f"{run_id}.png")
|
231 |
+
# api_path = os.path.join(base_dir, "doubao_api.txt")
|
232 |
json_output_path = os.path.join(tmp_dir, f"{run_id}_bboxes.json")
|
233 |
annotated_image_output_path = os.path.join(tmp_dir, f"{run_id}_with_bboxes.png")
|
234 |
|
|
|
236 |
print(f"Debug - base_dir: {base_dir}")
|
237 |
print(f"Debug - tmp_dir: {tmp_dir}")
|
238 |
print(f"Debug - image_path: {image_path}")
|
239 |
+
# print(f"Debug - api_path: {api_path}")
|
240 |
print(f"Debug - image_path exists: {os.path.exists(image_path)}")
|
241 |
+
# print(f"Debug - api_path exists: {os.path.exists(api_path)}")
|
242 |
|
243 |
# List contents of tmp_dir if it exists
|
244 |
if os.path.exists(tmp_dir):
|
|
|
252 |
save_bboxes_to_json({}, json_output_path)
|
253 |
exit(1)
|
254 |
|
255 |
+
api_key = os.environ.get('API_key')
|
256 |
+
if not api_key:
|
257 |
+
print(f"Error: API key not found in environment variable 'API_key'")
|
258 |
# Create empty json file so the pipeline doesn't break
|
259 |
save_bboxes_to_json({}, json_output_path)
|
260 |
exit(1)
|
261 |
|
262 |
print(f"--- Starting BBox Parsing for run_id: {run_id} ---")
|
263 |
|
264 |
+
# Use environment variable if available, otherwise use file path
|
265 |
+
client = Doubao(api_key)
|
266 |
base64_image = encode_image(image_path)
|
267 |
if not base64_image:
|
268 |
print(f"Error: Failed to encode image {image_path}")
|
screencoder/html_generator.py
CHANGED
@@ -299,12 +299,15 @@ def main():
|
|
299 |
|
300 |
generate_html(root, output_html_path)
|
301 |
|
302 |
-
|
303 |
-
|
304 |
-
|
|
|
|
|
305 |
exit(1)
|
306 |
|
307 |
-
|
|
|
308 |
code_dict = generate_code_parallel(root, img_path, bot, user_instruction)
|
309 |
code_substitution(output_html_path, code_dict)
|
310 |
|
|
|
299 |
|
300 |
generate_html(root, output_html_path)
|
301 |
|
302 |
+
# Check for API key - first try environment variable, then file
|
303 |
+
api_key = os.environ.get('API_key')
|
304 |
+
# api_path = os.path.join(base_dir, "doubao_api.txt")
|
305 |
+
if not api_key:
|
306 |
+
print(f"Error: API key not found in environment variable 'API_key'")
|
307 |
exit(1)
|
308 |
|
309 |
+
# Use environment variable if available, otherwise use file path
|
310 |
+
bot = Doubao(api_key, model="doubao-1.5-thinking-vision-pro-250428")
|
311 |
code_dict = generate_code_parallel(root, img_path, bot, user_instruction)
|
312 |
code_substitution(output_html_path, code_dict)
|
313 |
|