uru commited on
Commit
5d62e8c
·
1 Parent(s): 235c220

fix-paths

Browse files
Files changed (3) hide show
  1. .gitignore +3 -0
  2. app.py +8 -1
  3. 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
- self.is_initialized = False
19
- # Папка, где будем сохранять финальные изображения
20
- self.output_dir = os.environ.get("FINAL_ANSWER_DIR", "/tmp/final_answers")
21
- os.makedirs(self.output_dir, exist_ok=True)
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