Spaces:
Sleeping
Sleeping
from typing import Any, Optional | |
from smolagents.tools import Tool | |
class FinalAnswerTool(Tool): | |
name = "final_answer" | |
description = "Provides the final comprehensive travel information to the user." | |
inputs = {'answer': {'type': 'string', 'description': 'The final answer to return to the user.'}} | |
output_type = "string" | |
def __init__(self): | |
super().__init__() | |
def forward(self, answer: str) -> str: | |
# Format the answer for better readability | |
if "Travel summary" not in answer and "Detailed travel information" not in answer: | |
# Add structure if not already present | |
sections = answer.split("\n\n") | |
formatted_answer = "### Travel summary (short version):\n" | |
if len(sections) > 0: | |
formatted_answer += sections[0] + "\n\n" | |
formatted_answer += "### Detailed travel information:\n" | |
if len(sections) > 1: | |
formatted_answer += "\n".join(sections[1:]) + "\n\n" | |
formatted_answer += "### Practical tips and recommendations:\n" | |
# Look for tips keywords in the answer | |
tip_keywords = ["tip", "recommend", "bring", "pack", "don't forget", "suggestion"] | |
tip_lines = [] | |
for line in answer.split("\n"): | |
if any(keyword in line.lower() for keyword in tip_keywords): | |
tip_lines.append(line) | |
if tip_lines: | |
formatted_answer += "\n".join(tip_lines) | |
else: | |
formatted_answer += "Safe travels! Remember to check local regulations and customs before your trip." | |
return formatted_answer | |
return answer # Return as is if already formatted | |