Spaces:
Paused
Paused
from langchain_community.tools.tavily_search import TavilySearchResults | |
from langchain_core.tools import tool | |
tavily_tool = TavilySearchResults(max_results=5) | |
def create_outline(points: List[str], file_name: str) -> str: | |
"""Create and save an outline.""" | |
with (WORKING_DIRECTORY / file_name).open("w") as file: | |
for i, point in enumerate(points): | |
file.write(f"{i + 1}. {point}\n") | |
return f"Outline saved to {file_name}" | |
def read_document(file_name: str, start: Optional[int] = None, end: Optional[int] = None) -> str: | |
"""Read the specified document.""" | |
with (WORKING_DIRECTORY / file_name).open("r") as file: | |
lines = file.readlines() | |
if start is not None: | |
start = 0 | |
return "\n".join(lines[start:end]) | |
def write_document(content: str, file_name: str) -> str: | |
"""Create and save a text document.""" | |
with (WORKING_DIRECTORY / file_name).open("w") as file: | |
file.write(content) | |
return f"Document saved to {file_name}" | |
def edit_document(file_name: str, inserts: Dict[int, str] = {}) -> str: | |
"""Edit a document by inserting text at specific line numbers.""" | |
with (WORKING_DIRECTORY / file_name).open("r") as file: | |
lines = file.readlines() | |
sorted_inserts = sorted(inserts.items()) | |
for line_number, text in sorted_inserts: | |
if 1 <= line_number <= len(lines) + 1: | |
lines.insert(line_number - 1, text + "\n") | |
else: | |
return f"Error: Line number {line_number} is out of range." | |
with (WORKING_DIRECTORY / file_name).open("w") as file: | |
file.writelines(lines) | |
return f"Document edited and saved to {file_name}" | |