adding file writer tool and documentation

This commit is contained in:
Carlos Antunes
2024-05-20 22:00:34 -03:00
parent 53c7d815ae
commit 1f08d74015
2 changed files with 57 additions and 0 deletions

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)}"