Spaces:
Sleeping
Sleeping
uru commited on
Commit ·
5d62e8c
1
Parent(s): 235c220
fix-paths
Browse files- .gitignore +3 -0
- app.py +8 -1
- tools/final_answer.py +4 -7
.gitignore
CHANGED
|
@@ -3,6 +3,9 @@
|
|
| 3 |
.env.*
|
| 4 |
!.env.example
|
| 5 |
|
|
|
|
|
|
|
|
|
|
| 6 |
# ===== Python =====
|
| 7 |
__pycache__/
|
| 8 |
*.py[cod]
|
|
|
|
| 3 |
.env.*
|
| 4 |
!.env.example
|
| 5 |
|
| 6 |
+
# ===== Runtime outputs =====
|
| 7 |
+
outputs/
|
| 8 |
+
|
| 9 |
# ===== Python =====
|
| 10 |
__pycache__/
|
| 11 |
*.py[cod]
|
app.py
CHANGED
|
@@ -4,14 +4,21 @@ import requests
|
|
| 4 |
import pytz
|
| 5 |
import yaml
|
| 6 |
import shutil
|
|
|
|
| 7 |
import gradio as gr
|
| 8 |
print("Gradio version:", gr.__version__)
|
| 9 |
from tools.final_answer import FinalAnswerTool
|
| 10 |
from tools.web_search import DuckDuckGoSearchTool
|
| 11 |
from tools.visit_webpage import VisitWebpageTool
|
| 12 |
-
|
| 13 |
from src.first_agent.ui import GradioUI
|
| 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
@tool
|
| 16 |
def disk_free(path: str = "/") -> str:
|
| 17 |
"""
|
|
|
|
| 4 |
import pytz
|
| 5 |
import yaml
|
| 6 |
import shutil
|
| 7 |
+
from pathlib import Path
|
| 8 |
import gradio as gr
|
| 9 |
print("Gradio version:", gr.__version__)
|
| 10 |
from tools.final_answer import FinalAnswerTool
|
| 11 |
from tools.web_search import DuckDuckGoSearchTool
|
| 12 |
from tools.visit_webpage import VisitWebpageTool
|
|
|
|
| 13 |
from src.first_agent.ui import GradioUI
|
| 14 |
|
| 15 |
+
# --- Runtime output directory setup ---
|
| 16 |
+
BASE_DIR = Path.cwd()
|
| 17 |
+
OUTPUT_DIR = BASE_DIR / "outputs" / "final_answers"
|
| 18 |
+
if OUTPUT_DIR.exists():
|
| 19 |
+
shutil.rmtree(OUTPUT_DIR)
|
| 20 |
+
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
| 21 |
+
|
| 22 |
@tool
|
| 23 |
def disk_free(path: str = "/") -> str:
|
| 24 |
"""
|
tools/final_answer.py
CHANGED
|
@@ -15,17 +15,15 @@ class FinalAnswerTool(Tool):
|
|
| 15 |
output_type = "any"
|
| 16 |
|
| 17 |
def __init__(self, *args, **kwargs):
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
self.output_dir =
|
| 21 |
-
|
| 22 |
|
| 23 |
def forward(self, answer: Any) -> Any:
|
| 24 |
-
# Если уже нормализовано — не трогаем
|
| 25 |
if isinstance(answer, (AgentImage, AgentText, AgentAudio)):
|
| 26 |
return answer
|
| 27 |
|
| 28 |
-
# Если это PIL.Image (или PngImageFile и т.п.) — сохраним и вернем AgentImage(path)
|
| 29 |
try:
|
| 30 |
from PIL import Image # pillow обычно уже есть из-за text-to-image
|
| 31 |
if isinstance(answer, Image.Image):
|
|
@@ -34,7 +32,6 @@ class FinalAnswerTool(Tool):
|
|
| 34 |
answer.save(path, format="PNG")
|
| 35 |
return AgentImage(path)
|
| 36 |
except Exception:
|
| 37 |
-
# Если pillow не установлен или что-то пошло не так — просто вернем как есть
|
| 38 |
pass
|
| 39 |
|
| 40 |
return answer
|
|
|
|
| 15 |
output_type = "any"
|
| 16 |
|
| 17 |
def __init__(self, *args, **kwargs):
|
| 18 |
+
super().__init__(*args, **kwargs) # ВАЖНО
|
| 19 |
+
from pathlib import Path
|
| 20 |
+
self.output_dir = Path.cwd() / "outputs" / "final_answers"
|
| 21 |
+
self.output_dir.mkdir(parents=True, exist_ok=True)
|
| 22 |
|
| 23 |
def forward(self, answer: Any) -> Any:
|
|
|
|
| 24 |
if isinstance(answer, (AgentImage, AgentText, AgentAudio)):
|
| 25 |
return answer
|
| 26 |
|
|
|
|
| 27 |
try:
|
| 28 |
from PIL import Image # pillow обычно уже есть из-за text-to-image
|
| 29 |
if isinstance(answer, Image.Image):
|
|
|
|
| 32 |
answer.save(path, format="PNG")
|
| 33 |
return AgentImage(path)
|
| 34 |
except Exception:
|
|
|
|
| 35 |
pass
|
| 36 |
|
| 37 |
return answer
|