Spaces:
Running
Running
add
Browse files
app.py
CHANGED
@@ -194,9 +194,9 @@ print("hello")
|
|
194 |
async def generate_viz(file: UploadFile = File(...), query: str = Form(...)):
|
195 |
print("hello")
|
196 |
try:
|
197 |
-
contents = await file.read()
|
198 |
-
excel_file = io.BytesIO(contents)
|
199 |
-
df = pd.read_excel(excel_file)
|
200 |
|
201 |
if query not in VALID_PLOTS:
|
202 |
return JSONResponse(content={"error": f"Type de graphique invalide. Choisissez parmi : {', '.join(VALID_PLOTS)}"}, status_code=400)
|
@@ -230,11 +230,17 @@ plt.close()
|
|
230 |
outputs = codegen_model.generate(**inputs, max_new_tokens=120, pad_token_id=codegen_tokenizer.eos_token_id)
|
231 |
generated_code = codegen_tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
|
232 |
|
|
|
|
|
|
|
|
|
|
|
233 |
generated_code = re.sub(r"(import matplotlib.pyplot as plt\nimport seaborn as sns\n)+", "import matplotlib.pyplot as plt\nimport seaborn as sns\n", generated_code)
|
|
|
234 |
if generated_code.strip().endswith("sns."):
|
235 |
generated_code = generated_code.rsplit("\n", 1)[0]
|
236 |
|
237 |
-
print("🔹 Code généré
|
238 |
|
239 |
try:
|
240 |
compile(generated_code, "<string>", "exec")
|
|
|
194 |
async def generate_viz(file: UploadFile = File(...), query: str = Form(...)):
|
195 |
print("hello")
|
196 |
try:
|
197 |
+
contents = await file.read()
|
198 |
+
excel_file = io.BytesIO(contents)
|
199 |
+
df = pd.read_excel(excel_file)
|
200 |
|
201 |
if query not in VALID_PLOTS:
|
202 |
return JSONResponse(content={"error": f"Type de graphique invalide. Choisissez parmi : {', '.join(VALID_PLOTS)}"}, status_code=400)
|
|
|
230 |
outputs = codegen_model.generate(**inputs, max_new_tokens=120, pad_token_id=codegen_tokenizer.eos_token_id)
|
231 |
generated_code = codegen_tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
|
232 |
|
233 |
+
# 🔥 Nettoyage : couper si répétition du prompt
|
234 |
+
if "### Génère uniquement du code Python fonctionnel" in generated_code[1:]:
|
235 |
+
generated_code = generated_code.split("### Génère uniquement du code Python fonctionnel")[0]
|
236 |
+
|
237 |
+
# 🔥 Nettoyage : éviter doublon imports
|
238 |
generated_code = re.sub(r"(import matplotlib.pyplot as plt\nimport seaborn as sns\n)+", "import matplotlib.pyplot as plt\nimport seaborn as sns\n", generated_code)
|
239 |
+
|
240 |
if generated_code.strip().endswith("sns."):
|
241 |
generated_code = generated_code.rsplit("\n", 1)[0]
|
242 |
|
243 |
+
print("🔹 Code généré propre :\n", generated_code)
|
244 |
|
245 |
try:
|
246 |
compile(generated_code, "<string>", "exec")
|