langflow/src/backend/base/langflow/components/wolframalpha/wolfram_alpha_api.py
Lucas Oliveira 169b687ed0
fix: refactor bundle and component names (#9140)
* 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>
2025-07-23 23:06:45 +00:00

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)