Spaces:
Running
Running
from langchain_community.utilities.wolfram_alpha import WolframAlphaAPIWrapper | |
from langflow.base.langchain_utilities.model import LCToolComponent | |
from langflow.field_typing import Tool | |
from langflow.inputs import MultilineInput, SecretStrInput | |
from langflow.schema import Data | |
class WolframAlphaAPIComponent(LCToolComponent): | |
display_name = "WolframAlpha API" | |
description = """Enables queries to Wolfram Alpha for computational data, facts, and calculations across various \ | |
topics, delivering structured responses.""" | |
name = "WolframAlphaAPI" | |
inputs = [ | |
MultilineInput( | |
name="input_value", display_name="Input Query", info="Example query: 'What is the population of France?'" | |
), | |
SecretStrInput(name="app_id", display_name="App ID", required=True), | |
] | |
icon = "WolframAlphaAPI" | |
def run_model(self) -> list[Data]: | |
wrapper = self._build_wrapper() | |
result_str = wrapper.run(self.input_value) | |
data = [Data(text=result_str)] | |
self.status = data | |
return data | |
def build_tool(self) -> Tool: | |
wrapper = self._build_wrapper() | |
return Tool(name="wolfram_alpha_api", description="Answers mathematical questions.", func=wrapper.run) | |
def _build_wrapper(self) -> WolframAlphaAPIWrapper: | |
return WolframAlphaAPIWrapper(wolfram_alpha_appid=self.app_id) | |