обработка путей в send_file для минимизации неудачных отправок
This commit is contained in:
parent
2d4a5d73c7
commit
62de4ff36c
1 changed files with 10 additions and 1 deletions
|
|
@ -20,6 +20,10 @@ async def send_file(path: str) -> str:
|
||||||
- пользователь просто хочет прочитать содержимое файла (используй read_file)
|
- пользователь просто хочет прочитать содержимое файла (используй read_file)
|
||||||
- нужно создать или изменить файл (используй write_file/edit_file)
|
- нужно создать или изменить файл (используй write_file/edit_file)
|
||||||
|
|
||||||
|
Пользователь не имеет доступа к файлам напрямую, ты ОБЯЗАН ему их отправлять.
|
||||||
|
Если пользователь просил сформировать файл - скорее всего, нужно его отправить.
|
||||||
|
Используй этот tool без явного запроса от пользователя.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
path: Путь к файлу относительно /workspace (например: 'report.pdf', 'docs/readme.txt', 'output/data.json')
|
path: Путь к файлу относительно /workspace (например: 'report.pdf', 'docs/readme.txt', 'output/data.json')
|
||||||
|
|
||||||
|
|
@ -27,7 +31,12 @@ async def send_file(path: str) -> str:
|
||||||
Подтверждение отправки или сообщение об ошибке
|
Подтверждение отправки или сообщение об ошибке
|
||||||
"""
|
"""
|
||||||
workspace = os.environ.get("WORKSPACE_DIR", "/workspace")
|
workspace = os.environ.get("WORKSPACE_DIR", "/workspace")
|
||||||
full_path = Path(workspace) / path
|
|
||||||
|
input_path = Path(path).as_posix().lstrip("/")
|
||||||
|
if input_path.startswith("workspace/"):
|
||||||
|
input_path = input_path[len("workspace/"):]
|
||||||
|
|
||||||
|
full_path = Path(workspace) / input_path
|
||||||
|
|
||||||
if not full_path.exists():
|
if not full_path.exists():
|
||||||
return f"Ошибка: файл '{path}' не найден в /workspace"
|
return f"Ошибка: файл '{path}' не найден в /workspace"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue