Skip to Content
Коллекция ИнструментовИнструменты Чтения Множественных Файлов

Инструмент для чтения нескольких файлов (read_many_files)

Этот документ описывает инструмент read_many_files для Qwen Code.

Описание

Используйте read_many_files для чтения содержимого из нескольких файлов, указанных по путям или по glob-паттернам. Поведение этого инструмента зависит от переданных файлов:

  • Для текстовых файлов инструмент объединяет их содержимое в одну строку.
  • Для изображений (например, PNG, JPEG), PDF, аудио (MP3, WAV) и видео (MP4, MOV) файлов он читает и возвращает данные в формате base64, при условии, что они явно запрошены по имени или расширению.

read_many_files может использоваться для выполнения таких задач, как получение общего представления о кодовой базе, поиск мест реализации определённой функциональности, просмотр документации или сбор контекста из нескольких конфигурационных файлов.

Примечание: read_many_files ищет файлы по указанным путям или glob-паттернам. Путь к директории, например "/docs", вернёт пустой результат; инструменту требуется паттерн, такой как "/docs/*" или "/docs/*.md", чтобы определить нужные файлы.

Аргументы

read_many_files принимает следующие аргументы:

  • paths (list[string], обязательный): Массив glob-паттернов или путей относительно целевой директории инструмента (например, ["src/**/*.ts"], ["README.md", "docs/*", "assets/logo.png"]).
  • exclude (list[string], опциональный): Glob-паттерны для файлов/директорий, которые нужно исключить (например, ["**/*.log", "temp/"]). Эти паттерны добавляются к стандартным исключениям, если useDefaultExcludes равен true.
  • include (list[string], опциональный): Дополнительные glob-паттерны для включения. Они объединяются с paths (например, ["*.test.ts"], чтобы специально добавить тестовые файлы, если они были исключены в более общем виде, или ["images/*.jpg"], чтобы включить определенные типы изображений).
  • recursive (boolean, опциональный): Искать ли файлы рекурсивно. В основном управляется символами ** в glob-паттернах. По умолчанию true.
  • useDefaultExcludes (boolean, опциональный): Применять ли список стандартных паттернов исключения (например, node_modules, .git, бинарные файлы, не являющиеся изображениями или PDF). По умолчанию true.
  • respect_git_ignore (boolean, опциональный): Учитывать ли паттерны из .gitignore при поиске файлов. По умолчанию true.

Как использовать read_many_files с Qwen Code

read_many_files ищет файлы, соответствующие указанным шаблонам paths и include, при этом учитывая шаблоны exclude и стандартные исключения (если включены).

  • Для текстовых файлов: инструмент читает содержимое каждого найденного файла (пытаясь пропустить бинарные файлы, если они не запрошены явно как изображения/PDF) и объединяет их в одну строку, разделяя содержимое каждого файла сепаратором --- {filePath} ---. По умолчанию используется кодировка UTF-8.
  • Для изображений и PDF-файлов: если файлы запрошены явно по имени или расширению (например, paths: ["logo.png"] или include: ["*.pdf"]), инструмент читает файл и возвращает его содержимое в виде строки в кодировке base64.
  • Инструмент пытается определить и пропустить другие бинарные файлы (которые не относятся к изображениям/PDF или не запрошены явно), проверяя наличие null-байтов в начале содержимого файла.

Использование:

read_many_files(paths=["Ваши файлы или пути здесь."], include=["Дополнительные файлы для включения."], exclude=["Файлы для исключения."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)

Примеры использования read_many_files

Чтение всех TypeScript файлов в директории src:

read_many_files(paths=["src/**/*.ts"])

Чтение основного README, всех Markdown файлов в директории docs и конкретного файла логотипа, исключая определенный файл:

read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])

Чтение всех JavaScript файлов, но с явным включением тестовых файлов и всех JPEG из папки images:

read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)

Важные замечания

  • Работа с бинарными файлами:
    • Файлы изображений/PDF/аудио/видео: Инструмент может читать распространенные типы изображений (PNG, JPEG и т.д.), PDF, аудио (mp3, wav) и видео (mp4, mov) файлы, возвращая их как данные в кодировке base64. Эти файлы должны быть явно указаны в паттернах paths или include (например, путем указания точного имени файла, как video.mp4, или паттерна вроде *.mov).
    • Другие бинарные файлы: Инструмент пытается обнаружить и пропустить другие типы бинарных файлов, проверяя наличие null-байтов в начале содержимого файла. Такие файлы исключаются из вывода инструмента.
  • Производительность: Чтение очень большого количества файлов или очень больших отдельных файлов может быть ресурсоемким.
  • Точность путей: Убедитесь, что пути и glob-паттерны указаны корректно относительно целевой директории инструмента. Для файлов изображений/PDF убедитесь, что паттерны достаточно точные, чтобы включить нужные файлы.
  • Исключения по умолчанию: Имейте в виду стандартные паттерны исключения (такие как node_modules, .git) и используйте useDefaultExcludes=False, если вам нужно их переопределить, но делайте это осмотрительно.
Last updated on