обработка путей в 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)
|
||||
- нужно создать или изменить файл (используй write_file/edit_file)
|
||||
|
||||
Пользователь не имеет доступа к файлам напрямую, ты ОБЯЗАН ему их отправлять.
|
||||
Если пользователь просил сформировать файл - скорее всего, нужно его отправить.
|
||||
Используй этот tool без явного запроса от пользователя.
|
||||
|
||||
Args:
|
||||
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")
|
||||
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():
|
||||
return f"Ошибка: файл '{path}' не найден в /workspace"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue