Spaces:
Sleeping
Sleeping
| import os | |
| from config import Config | |
| from tools.base_tool import BaseTool | |
| from langchain.schema import HumanMessage | |
| from langchain_google_genai import ChatGoogleGenerativeAI | |
| class LLMInstructionTool(BaseTool): | |
| def __init__(self): | |
| super().__init__( | |
| name="llm_instruction", | |
| description=( | |
| "Handles creative and instructional tasks using an LLM. " | |
| "Use this tool for tasks like summarizing, rewriting, poem generation, storytelling, or following general instructions " | |
| "when no specific tool is applicable." | |
| ) | |
| ) | |
| self.llm = ChatGoogleGenerativeAI( | |
| google_api_key=os.environ["GOOGLE_API_KEY"], | |
| model=Config.LLM_MODEL, | |
| temperature=Config.TEMPERATURE | |
| ) | |
| def run(self, input_data: str) -> str: | |
| if not input_data.strip(): | |
| return "Error: Empty input for LLM tool." | |
| try: | |
| response = self.llm.invoke([HumanMessage(content=input_data)]) | |
| return response.content.strip() | |
| except Exception as e: | |
| return f"Failed to run LLM tool: {str(e)}" | |
| # === For standalone testing === | |
| if __name__ == "__main__": | |
| tool = LLMInstructionTool() | |
| test_input = "Rewrite this in a more formal tone.. Hey there! Just wanted to say thanks for your help yesterday. It really meant a lot." | |
| result = tool.run(test_input) | |
| print(result) | |