Merge pull request #41 from antunsz/feature/add-folder-file-writer

adding file writer tool and documentation
This commit is contained in:
João Moura
2024-08-10 19:40:24 -07:00
committed by GitHub
4 changed files with 59 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ from .tools import (
DOCXSearchTool,
EXASearchTool,
FileReadTool,
FileWriterTool
FirecrawlCrawlWebsiteTool,
FirecrawlScrapeWebsiteTool,
FirecrawlSearchTool,

View File

@@ -9,6 +9,7 @@ from .directory_search_tool.directory_search_tool import DirectorySearchTool
from .docx_search_tool.docx_search_tool import DOCXSearchTool
from .exa_tools.exa_search_tool import EXASearchTool
from .file_read_tool.file_read_tool import FileReadTool
from .file_writer_tool.file_writer_tool import FileWriterTool
from .firecrawl_crawl_website_tool.firecrawl_crawl_website_tool import (
FirecrawlCrawlWebsiteTool,
)

View File

@@ -0,0 +1,35 @@
Here's the rewritten README for the `FileWriterTool`:
# FileWriterTool Documentation
## Description
The `FileWriterTool` is a component of the crewai_tools package, designed to simplify the process of writing content to files. It is particularly useful in scenarios such as generating reports, saving logs, creating configuration files, and more. This tool supports creating new directories if they don't exist, making it easier to organize your output.
## Installation
Install the crewai_tools package to use the `FileWriterTool` in your projects:
```shell
pip install 'crewai[tools]'
```
## Example
To get started with the `FileWriterTool`:
```python
from crewai_tools import FileWriterTool
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run('example.txt', 'This is a test content.', 'test_directory')
print(result)
```
## Arguments
- `filename`: The name of the file you want to create or overwrite.
- `content`: The content to write into the file.
- `directory` (optional): The path to the directory where the file will be created. Defaults to the current directory (`.`). If the directory does not exist, it will be created.
## Conclusion
By integrating the `FileWriterTool` into your crews, the agents can execute the process of writing content to files and creating directories. This tool is essential for tasks that require saving output data, creating structured file systems, and more. By adhering to the setup and usage guidelines provided, incorporating this tool into projects is straightforward and efficient.

View File

@@ -0,0 +1,22 @@
import os
from crewai_tools import BaseTool
class FileWriterTool(BaseTool):
name: str = "File Writer Tool"
description: str = "A tool to write content to a specified file. Accepts filename, content, and optionally a directory path as input."
def _run(self, filename: str, content: str, directory: str = '.') -> str:
try:
# Create the directory if it doesn't exist
if directory and not os.path.exists(directory):
os.makedirs(directory)
# Construct the full path
filepath = os.path.join(directory, filename)
# Write content to the file
with open(filepath, 'w') as file:
file.write(content)
return f"Content successfully written to {filepath}"
except Exception as e:
return f"An error occurred while writing to the file: {str(e)}"