* Changed Youtube to YouTube * Updated AIML to AI/ML API * Updated AI/ML Model name * Changed Anthropic description * updated arXiv name * Set Astra Vectorize as legacy * Updated get env var * Updates firecrawl names * Updated Icon for Google Gen AI embeddings * Add Space on Home Assistant * Updated Hugging Face name * Updated Maritalk Name * Updated Not Diamond name * Updated ScrapeGraph names * Changed SearchApi Name * Changed TwelveLabs naming * Updated AstraDB naming * Updated VertexAI naming * Updated Wolfram * Updated Yahoo naming * Updated Yahoo Finance name * Updated Yahoo Finance * [autofix.ci] apply automated fixes * Update google serper bundle * updated ai ml icon name * Updated maritalk * Changed ai ml api name * removed openai from base url * Revert components-bundles changes * revert changes on components-vector-stores * Revert changes on deployment-hugging-face-spaces * Revert changes on integrations-nvidia-ingest * Revert changes on release-notes * Update changes on sequential agent * [autofix.ci] apply automated fixes * fixed filterSidebar test * updated filter edge test * updated shard 11 test with new sidebar names --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
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.inputs import MultilineInput, SecretStrInput
|
|
from langflow.io import Output
|
|
from langflow.schema.data import Data
|
|
from langflow.schema.dataframe import DataFrame
|
|
|
|
|
|
class WolframAlphaAPIComponent(LCToolComponent):
|
|
display_name = "WolframAlpha API"
|
|
description = """Enables queries to WolframAlpha for computational data, facts, and calculations across various \
|
|
topics, delivering structured responses."""
|
|
name = "WolframAlphaAPI"
|
|
|
|
outputs = [
|
|
Output(display_name="DataFrame", name="dataframe", method="fetch_content_dataframe"),
|
|
]
|
|
|
|
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) -> DataFrame:
|
|
return self.fetch_content_dataframe()
|
|
|
|
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)
|
|
|
|
def fetch_content(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 fetch_content_dataframe(self) -> DataFrame:
|
|
"""Convert the WolframAlpha results to a DataFrame.
|
|
|
|
Returns:
|
|
DataFrame: A DataFrame containing the query results.
|
|
"""
|
|
data = self.fetch_content()
|
|
return DataFrame(data)
|