Spaces:
Running
Running
Update src/aibom_generator/api.py
Browse files- src/aibom_generator/api.py +12 -24
src/aibom_generator/api.py
CHANGED
@@ -63,41 +63,28 @@ async def generate_form(
|
|
63 |
|
64 |
generator = AIBOMGenerator()
|
65 |
|
|
|
66 |
aibom = generator.generate_aibom(
|
67 |
model_id=model_id,
|
68 |
include_inference=include_inference,
|
69 |
use_best_practices=use_best_practices
|
70 |
)
|
|
|
|
|
71 |
enhancement_report = generator.get_enhancement_report()
|
72 |
|
|
|
|
|
|
|
|
|
73 |
filename = f"{model_id.replace('/', '_')}_aibom.json"
|
74 |
filepath = os.path.join(OUTPUT_DIR, filename)
|
75 |
-
|
76 |
with open(filepath, "w") as f:
|
77 |
json.dump(aibom, f, indent=2)
|
78 |
|
79 |
download_url = f"/output/{filename}"
|
80 |
|
81 |
-
|
82 |
-
<script>
|
83 |
-
function downloadJSON() {{
|
84 |
-
const a = document.createElement('a');
|
85 |
-
a.href = '{download_url}';
|
86 |
-
a.download = '{filename}';
|
87 |
-
document.body.appendChild(a);
|
88 |
-
a.click();
|
89 |
-
document.body.removeChild(a);
|
90 |
-
}}
|
91 |
-
</script>
|
92 |
-
"""
|
93 |
-
|
94 |
-
completeness_score = None
|
95 |
-
if hasattr(generator, 'get_completeness_score'):
|
96 |
-
try:
|
97 |
-
completeness_score = generator.get_completeness_score(model_id)
|
98 |
-
except Exception as e:
|
99 |
-
logger.error(f"Completeness score error: {str(e)}")
|
100 |
-
|
101 |
return templates.TemplateResponse(
|
102 |
"result.html",
|
103 |
{
|
@@ -106,12 +93,13 @@ async def generate_form(
|
|
106 |
"aibom": aibom,
|
107 |
"enhancement_report": enhancement_report,
|
108 |
"completeness_score": completeness_score,
|
109 |
-
"download_url": download_url
|
110 |
-
"download_script": download_script
|
111 |
}
|
112 |
)
|
|
|
113 |
except Exception as e:
|
114 |
logger.error(f"Error generating AI SBOM: {str(e)}")
|
115 |
return templates.TemplateResponse(
|
116 |
-
"error.html",
|
|
|
117 |
)
|
|
|
63 |
|
64 |
generator = AIBOMGenerator()
|
65 |
|
66 |
+
# Generate the AI SBOM
|
67 |
aibom = generator.generate_aibom(
|
68 |
model_id=model_id,
|
69 |
include_inference=include_inference,
|
70 |
use_best_practices=use_best_practices
|
71 |
)
|
72 |
+
|
73 |
+
# Obtain the enhancement report
|
74 |
enhancement_report = generator.get_enhancement_report()
|
75 |
|
76 |
+
# Obtain completeness_score properly (assuming this method exists)
|
77 |
+
completeness_score = generator.get_completeness_score(aibom)
|
78 |
+
|
79 |
+
# Save AI SBOM JSON file
|
80 |
filename = f"{model_id.replace('/', '_')}_aibom.json"
|
81 |
filepath = os.path.join(OUTPUT_DIR, filename)
|
|
|
82 |
with open(filepath, "w") as f:
|
83 |
json.dump(aibom, f, indent=2)
|
84 |
|
85 |
download_url = f"/output/{filename}"
|
86 |
|
87 |
+
# Pass all required fields to the template
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
return templates.TemplateResponse(
|
89 |
"result.html",
|
90 |
{
|
|
|
93 |
"aibom": aibom,
|
94 |
"enhancement_report": enhancement_report,
|
95 |
"completeness_score": completeness_score,
|
96 |
+
"download_url": download_url
|
|
|
97 |
}
|
98 |
)
|
99 |
+
|
100 |
except Exception as e:
|
101 |
logger.error(f"Error generating AI SBOM: {str(e)}")
|
102 |
return templates.TemplateResponse(
|
103 |
+
"error.html",
|
104 |
+
{"request": request, "error": str(e)}
|
105 |
)
|