Spaces:
Sleeping
Sleeping
| from smolagents import Tool | |
| class TextSearch(Tool): | |
| name: str = "text_search_tool" | |
| description: str = "This tool searches through a string for substrings and returns the indices of all occurances of that substring." | |
| inputs: dict[str, dict[str, str]] = { | |
| "source_text": { | |
| "type": "string", | |
| "description": "The large text to search through.", | |
| }, | |
| "search_text": { | |
| "type": "string", | |
| "description": "The text to search for within source_text.", | |
| }, | |
| } | |
| output_type: str = "array" | |
| def forward(self, source_text: str, search_text: str) -> list[int]: | |
| """ | |
| Searches for all occurances of `search_text` in `source_text` and returns the indices of all occurances. | |
| """ | |
| # drop case sensitivity | |
| source_text = source_text.lower() | |
| search_text = search_text.lower() | |
| indices = [] | |
| # Find all indices of search_text in source_text | |
| index = source_text.find(search_text) | |
| while index != -1: | |
| indices.append(index) | |
| index = source_text.find(search_text, index + 1) | |
| return indices | |