mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-11 17:18:29 +00:00
59 lines
2.1 KiB
Markdown
59 lines
2.1 KiB
Markdown
# DirectorySearchTool
|
|
|
|
!!! note "Experimental"
|
|
We are still working on improving tools, so there might be unexpected behavior or changes in the future.
|
|
|
|
## Description
|
|
This tool is designed to perform a semantic search for queries within the content of a specified directory. Utilizing the RAG (Retrieval-Augmented Generation) methodology, it offers a powerful means to semantically navigate through the files of a given directory. The tool can be dynamically set to search any directory specified at runtime or can be pre-configured to search within a specific directory upon initialization.
|
|
|
|
## Installation
|
|
To start using the DirectorySearchTool, you need to install the crewai_tools package. Execute the following command in your terminal:
|
|
|
|
```shell
|
|
pip install 'crewai[tools]'
|
|
```
|
|
|
|
## Example
|
|
The following examples demonstrate how to initialize the DirectorySearchTool for different use cases and how to perform a search:
|
|
|
|
```python
|
|
from crewai_tools import DirectorySearchTool
|
|
|
|
# To enable searching within any specified directory at runtime
|
|
tool = DirectorySearchTool()
|
|
|
|
# Alternatively, to restrict searches to a specific directory
|
|
tool = DirectorySearchTool(directory='/path/to/directory')
|
|
```
|
|
|
|
## Arguments
|
|
- `directory` : This string argument specifies the directory within which to search. It is mandatory if the tool has not been initialized with a directory; otherwise, the tool will only search within the initialized directory.
|
|
|
|
## Custom model and embeddings
|
|
|
|
By default, the tool uses OpenAI for both embeddings and summarization. To customize the model, you can use a config dictionary as follows:
|
|
|
|
```python
|
|
tool = DirectorySearchTool(
|
|
config=dict(
|
|
llm=dict(
|
|
provider="ollama", # or google, openai, anthropic, llama2, ...
|
|
config=dict(
|
|
model="llama2",
|
|
# temperature=0.5,
|
|
# top_p=1,
|
|
# stream=true,
|
|
),
|
|
),
|
|
embedder=dict(
|
|
provider="google",
|
|
config=dict(
|
|
model="models/embedding-001",
|
|
task_type="retrieval_document",
|
|
# title="Embeddings",
|
|
),
|
|
),
|
|
)
|
|
)
|
|
```
|