LangChain은 로컬 파일 시스템과 상호작용하기 위한 도구를 기본적으로 제공합니다. 이 노트북에서는 그 중 일부를 살펴봅니다. 참고: 이러한 도구는 샌드박스 환경 외부에서 사용하는 것을 권장하지 않습니다!
pip install -qU langchain-community
먼저 도구를 import합니다.
from tempfile import TemporaryDirectory

from langchain_community.agent_toolkits import FileManagementToolkit

# We'll make a temporary directory to avoid clutter
working_directory = TemporaryDirectory()

FileManagementToolkit

에이전트에 모든 파일 도구를 제공하려면 toolkit을 사용하여 쉽게 수행할 수 있습니다. LLM의 작업 공간으로 임시 디렉토리를 root 디렉토리로 전달합니다. 항상 root 디렉토리를 전달하는 것이 권장됩니다. root 디렉토리가 없으면 LLM이 작업 디렉토리를 오염시키기 쉽고, 간단한 프롬프트 인젝션에 대한 검증이 이루어지지 않습니다.
toolkit = FileManagementToolkit(
    root_dir=str(working_directory.name)
)  # If you don't provide a root_dir, operations will default to the current working directory
toolkit.get_tools()
[CopyFileTool(root_dir='/tmp/tmprdvsw3tg'),
 DeleteFileTool(root_dir='/tmp/tmprdvsw3tg'),
 FileSearchTool(root_dir='/tmp/tmprdvsw3tg'),
 MoveFileTool(root_dir='/tmp/tmprdvsw3tg'),
 ReadFileTool(root_dir='/tmp/tmprdvsw3tg'),
 WriteFileTool(root_dir='/tmp/tmprdvsw3tg'),
 ListDirectoryTool(root_dir='/tmp/tmprdvsw3tg')]

File System Tools 선택하기

특정 도구만 선택하려면 toolkit을 초기화할 때 인수로 전달하거나, 원하는 도구를 개별적으로 초기화할 수 있습니다.
tools = FileManagementToolkit(
    root_dir=str(working_directory.name),
    selected_tools=["read_file", "write_file", "list_directory"],
).get_tools()
tools
[ReadFileTool(root_dir='/tmp/tmprdvsw3tg'),
 WriteFileTool(root_dir='/tmp/tmprdvsw3tg'),
 ListDirectoryTool(root_dir='/tmp/tmprdvsw3tg')]
read_tool, write_tool, list_tool = tools
write_tool.invoke({"file_path": "example.txt", "text": "Hello World!"})
'File written successfully to example.txt.'
# List files in the working directory
list_tool.invoke({})
'example.txt'

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I