Spaces:
Runtime error
Runtime error
Enhance check_format function to disallow nested lists (let LLM self-correct) and clarify return types in documentation.
Browse files- app.py +18 -17
- system_prompt.txt +4 -3
app.py
CHANGED
|
@@ -47,28 +47,21 @@ def load_file(path: str) -> list | dict:
|
|
| 47 |
else:
|
| 48 |
return {"raw document text": text, "file path": path}
|
| 49 |
|
| 50 |
-
def check_format(answer: str | list, *args, **kwargs
|
| 51 |
-
"""
|
| 52 |
-
|
| 53 |
print("Checking format of the answer:", answer)
|
| 54 |
-
|
| 55 |
-
for item in
|
| 56 |
if isinstance(item, list):
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
return flat
|
| 64 |
-
except Exception as e:
|
| 65 |
-
if isinstance(answer, dict):
|
| 66 |
-
raise TypeError(f"Final answer must be a list, not a dict. Please check the answer format. Error: {e}")
|
| 67 |
|
| 68 |
|
| 69 |
|
| 70 |
-
|
| 71 |
-
|
| 72 |
## tools definition
|
| 73 |
@tool
|
| 74 |
def download_images(image_urls: str) -> list:
|
|
@@ -151,6 +144,14 @@ def generate_image(prompt: str, neg_prompt: str) -> Image.Image:
|
|
| 151 |
|
| 152 |
return gr.Image(value=image, label="Generated Image")
|
| 153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
|
| 155 |
## agent definition
|
| 156 |
class Agent:
|
|
|
|
| 47 |
else:
|
| 48 |
return {"raw document text": text, "file path": path}
|
| 49 |
|
| 50 |
+
def check_format(answer: str | list, *args, **kwargs) -> list:
|
| 51 |
+
"""Check if the answer is a list and not a nested list."""
|
|
|
|
| 52 |
print("Checking format of the answer:", answer)
|
| 53 |
+
if isinstance(answer, list):
|
| 54 |
+
for item in answer:
|
| 55 |
if isinstance(item, list):
|
| 56 |
+
print("list detected")
|
| 57 |
+
raise TypeError("Nested lists are not allowed in the final answer.")
|
| 58 |
+
elif isinstance(answer, str):
|
| 59 |
+
return [answer]
|
| 60 |
+
elif isinstance(answer, dict):
|
| 61 |
+
raise TypeError(f"Final answer must be a list, not a dict. Please check the answer format. Error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
|
| 64 |
|
|
|
|
|
|
|
| 65 |
## tools definition
|
| 66 |
@tool
|
| 67 |
def download_images(image_urls: str) -> list:
|
|
|
|
| 144 |
|
| 145 |
return gr.Image(value=image, label="Generated Image")
|
| 146 |
|
| 147 |
+
"""@tool
|
| 148 |
+
def generate_audio(prompt: str) -> object:
|
| 149 |
+
space = smolagents.load_tool(
|
| 150 |
+
|
| 151 |
+
)"""
|
| 152 |
+
|
| 153 |
+
|
| 154 |
+
|
| 155 |
|
| 156 |
## agent definition
|
| 157 |
class Agent:
|
system_prompt.txt
CHANGED
|
@@ -320,10 +320,11 @@ It is MANDATORY to use these rules for the 'final_answer' tool:
|
|
| 320 |
3. Any text or explanation must come after the component, as string elements in the same list.
|
| 321 |
4. If there is no component to return, return a list whose only element is the text.
|
| 322 |
5. Examples of valid returns:
|
| 323 |
-
• [gr.Image(value=“output.png”), “Here is the chart.”]
|
| 324 |
-
• [gr.File(value=“report.pdf”), “Download the report.”]
|
| 325 |
7. Any deviation (returning a dict, tuple, raw PIL image, etc.) is invalid.
|
| 326 |
-
8.
|
|
|
|
| 327 |
|
| 328 |
Now Begin!
|
| 329 |
|
|
|
|
| 320 |
3. Any text or explanation must come after the component, as string elements in the same list.
|
| 321 |
4. If there is no component to return, return a list whose only element is the text.
|
| 322 |
5. Examples of valid returns:
|
| 323 |
+
• [gr.Image(value=“output.png”), “Here is the chart.”]
|
| 324 |
+
• [gr.File(value=“report.pdf”), “Download the report.”]
|
| 325 |
7. Any deviation (returning a dict, tuple, raw PIL image, etc.) is invalid.
|
| 326 |
+
8. Nested list are forbidden.
|
| 327 |
+
9. Always put generated images in the list, do NOT create external link.
|
| 328 |
|
| 329 |
Now Begin!
|
| 330 |
|