parent
b14189ed05
commit
e7e186a2ac
20 changed files with 22 additions and 47 deletions
|
|
@ -5,7 +5,6 @@ from xml.etree.ElementTree import Element
|
|||
from defusedxml.ElementTree import fromstring
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.io import DropdownInput, IntInput, MessageTextInput, Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
||||
|
|
@ -160,4 +159,4 @@ class ArXivComponent(Component):
|
|||
DataFrame: A DataFrame containing the search results.
|
||||
"""
|
||||
data = self.search_papers()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ from langchain_community.utilities import BingSearchAPIWrapper
|
|||
|
||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||
from langflow.field_typing import Tool
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import IntInput, MessageTextInput, MultilineInput, SecretStrInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -49,7 +48,7 @@ class BingSearchAPIComponent(LCToolComponent):
|
|||
|
||||
def fetch_content_dataframe(self) -> DataFrame:
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
||||
def build_tool(self) -> Tool:
|
||||
if self.bing_search_url:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
from langchain_community.tools import DuckDuckGoSearchRun
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import IntInput, MessageTextInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -89,4 +88,4 @@ class DuckDuckGoSearchComponent(Component):
|
|||
DataFrame: A DataFrame containing the search results.
|
||||
"""
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ from pydantic.v1 import Field
|
|||
|
||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||
from langflow.field_typing import Tool
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import IntInput, MultilineInput, NestedDictInput, SecretStrInput, StrInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -170,4 +169,4 @@ class GleanSearchAPIComponent(LCToolComponent):
|
|||
DataFrame: A DataFrame containing the search results.
|
||||
"""
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from typing import Any
|
|||
from langchain_community.utilities.searchapi import SearchApiAPIWrapper
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import DictInput, DropdownInput, IntInput, MultilineInput, SecretStrInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -76,4 +75,4 @@ class SearchComponent(Component):
|
|||
DataFrame: A DataFrame containing the search results.
|
||||
"""
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from httpx import HTTPError
|
|||
from langchain_core.tools import ToolException
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.io import MultilineInput, Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
||||
|
|
@ -82,4 +81,4 @@ class WikidataComponent(Component):
|
|||
|
||||
def fetch_content_dataframe(self) -> DataFrame:
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
from langchain_community.utilities.wikipedia import WikipediaAPIWrapper
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import BoolInput, IntInput, MessageTextInput, MultilineInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -50,4 +49,4 @@ class WikipediaComponent(Component):
|
|||
|
||||
def fetch_content_dataframe(self) -> DataFrame:
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ from langchain_community.utilities.wolfram_alpha import WolframAlphaAPIWrapper
|
|||
|
||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||
from langflow.field_typing import Tool
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import MultilineInput, SecretStrInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -51,4 +50,4 @@ topics, delivering structured responses."""
|
|||
DataFrame: A DataFrame containing the query results.
|
||||
"""
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ from loguru import logger
|
|||
from pydantic import BaseModel, Field
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.inputs import DropdownInput, IntInput, MessageTextInput
|
||||
from langflow.io import Output
|
||||
from langflow.schema import Data, DataFrame
|
||||
|
|
@ -134,4 +133,4 @@ to access financial data and market information from Yahoo Finance."""
|
|||
|
||||
def fetch_content_dataframe(self) -> DataFrame:
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import httpx
|
|||
from loguru import logger
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.io import BoolInput, DropdownInput, MessageTextInput, Output, SecretStrInput
|
||||
from langflow.schema import Data
|
||||
from langflow.schema.dataframe import DataFrame
|
||||
|
|
@ -115,4 +114,4 @@ class TavilyExtractComponent(Component):
|
|||
|
||||
def fetch_content_dataframe(self) -> DataFrame:
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import httpx
|
|||
from loguru import logger
|
||||
|
||||
from langflow.custom import Component
|
||||
from langflow.helpers.data import data_to_dataframe
|
||||
from langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput
|
||||
from langflow.schema import Data
|
||||
from langflow.schema.dataframe import DataFrame
|
||||
|
|
@ -209,4 +208,4 @@ class TavilySearchComponent(Component):
|
|||
|
||||
def fetch_content_dataframe(self) -> DataFrame:
|
||||
data = self.fetch_content()
|
||||
return data_to_dataframe(data)
|
||||
return DataFrame(data)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from collections import defaultdict
|
|||
|
||||
from langchain_core.documents import Document
|
||||
|
||||
from langflow.schema import Data, DataFrame
|
||||
from langflow.schema import Data
|
||||
from langflow.schema.message import Message
|
||||
|
||||
|
||||
|
|
@ -139,17 +139,3 @@ def messages_to_text(template: str, messages: Message | list[Message]) -> str:
|
|||
|
||||
formated_messages = [template.format(data=message.model_dump(), **message.model_dump()) for message in messages_]
|
||||
return "\n".join(formated_messages)
|
||||
|
||||
|
||||
def data_to_dataframe(data: Data | list[Data]) -> DataFrame:
|
||||
"""Converts a Data object or a list of Data objects to a DataFrame.
|
||||
|
||||
Args:
|
||||
data (Data | list[Data]): The Data object or list of Data objects to convert.
|
||||
|
||||
Returns:
|
||||
DataFrame: The converted DataFrame.
|
||||
"""
|
||||
if isinstance(data, Data):
|
||||
return DataFrame([data.data])
|
||||
return DataFrame(data=[d.data for d in data])
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1462,7 +1462,7 @@
|
|||
"show": true,
|
||||
"title_case": false,
|
||||
"type": "code",
|
||||
"value": "from typing import Any\n\nfrom langchain_community.utilities.searchapi import SearchApiAPIWrapper\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_dataframe\nfrom langflow.inputs import DictInput, DropdownInput, IntInput, MultilineInput, SecretStrInput\nfrom langflow.io import Output\nfrom langflow.schema import Data, DataFrame\n\n\nclass SearchComponent(Component):\n display_name: str = \"Search API\"\n description: str = \"Call the searchapi.io API with result limiting\"\n documentation: str = \"https://www.searchapi.io/docs/google\"\n icon = \"SearchAPI\"\n\n inputs = [\n DropdownInput(name=\"engine\", display_name=\"Engine\", value=\"google\", options=[\"google\", \"bing\", \"duckduckgo\"]),\n SecretStrInput(name=\"api_key\", display_name=\"SearchAPI API Key\", required=True),\n MultilineInput(\n name=\"input_value\",\n display_name=\"Input\",\n tool_mode=True,\n ),\n DictInput(name=\"search_params\", display_name=\"Search parameters\", advanced=True, is_list=True),\n IntInput(name=\"max_results\", display_name=\"Max Results\", value=5, advanced=True),\n IntInput(name=\"max_snippet_length\", display_name=\"Max Snippet Length\", value=100, advanced=True),\n ]\n\n outputs = [\n Output(display_name=\"DataFrame\", name=\"dataframe\", method=\"fetch_content_dataframe\"),\n ]\n\n def _build_wrapper(self):\n return SearchApiAPIWrapper(engine=self.engine, searchapi_api_key=self.api_key)\n\n def run_model(self) -> DataFrame:\n return self.fetch_content_dataframe()\n\n def fetch_content(self) -> list[Data]:\n wrapper = self._build_wrapper()\n\n def search_func(\n query: str, params: dict[str, Any] | None = None, max_results: int = 5, max_snippet_length: int = 100\n ) -> list[Data]:\n params = params or {}\n full_results = wrapper.results(query=query, **params)\n organic_results = full_results.get(\"organic_results\", [])[:max_results]\n\n return [\n Data(\n text=result.get(\"snippet\", \"\"),\n data={\n \"title\": result.get(\"title\", \"\")[:max_snippet_length],\n \"link\": result.get(\"link\", \"\"),\n \"snippet\": result.get(\"snippet\", \"\")[:max_snippet_length],\n },\n )\n for result in organic_results\n ]\n\n results = search_func(\n self.input_value,\n self.search_params or {},\n self.max_results,\n self.max_snippet_length,\n )\n self.status = results\n return results\n\n def fetch_content_dataframe(self) -> DataFrame:\n \"\"\"Convert the search results to a DataFrame.\n\n Returns:\n DataFrame: A DataFrame containing the search results.\n \"\"\"\n data = self.fetch_content()\n return data_to_dataframe(data)\n"
|
||||
"value": "from typing import Any\n\nfrom langchain_community.utilities.searchapi import SearchApiAPIWrapper\n\nfrom langflow.custom import Component\nfrom langflow.inputs import DictInput, DropdownInput, IntInput, MultilineInput, SecretStrInput\nfrom langflow.io import Output\nfrom langflow.schema import Data, DataFrame\n\n\nclass SearchComponent(Component):\n display_name: str = \"Search API\"\n description: str = \"Call the searchapi.io API with result limiting\"\n documentation: str = \"https://www.searchapi.io/docs/google\"\n icon = \"SearchAPI\"\n\n inputs = [\n DropdownInput(name=\"engine\", display_name=\"Engine\", value=\"google\", options=[\"google\", \"bing\", \"duckduckgo\"]),\n SecretStrInput(name=\"api_key\", display_name=\"SearchAPI API Key\", required=True),\n MultilineInput(\n name=\"input_value\",\n display_name=\"Input\",\n tool_mode=True,\n ),\n DictInput(name=\"search_params\", display_name=\"Search parameters\", advanced=True, is_list=True),\n IntInput(name=\"max_results\", display_name=\"Max Results\", value=5, advanced=True),\n IntInput(name=\"max_snippet_length\", display_name=\"Max Snippet Length\", value=100, advanced=True),\n ]\n\n outputs = [\n Output(display_name=\"DataFrame\", name=\"dataframe\", method=\"fetch_content_dataframe\"),\n ]\n\n def _build_wrapper(self):\n return SearchApiAPIWrapper(engine=self.engine, searchapi_api_key=self.api_key)\n\n def run_model(self) -> DataFrame:\n return self.fetch_content_dataframe()\n\n def fetch_content(self) -> list[Data]:\n wrapper = self._build_wrapper()\n\n def search_func(\n query: str, params: dict[str, Any] | None = None, max_results: int = 5, max_snippet_length: int = 100\n ) -> list[Data]:\n params = params or {}\n full_results = wrapper.results(query=query, **params)\n organic_results = full_results.get(\"organic_results\", [])[:max_results]\n\n return [\n Data(\n text=result.get(\"snippet\", \"\"),\n data={\n \"title\": result.get(\"title\", \"\")[:max_snippet_length],\n \"link\": result.get(\"link\", \"\"),\n \"snippet\": result.get(\"snippet\", \"\")[:max_snippet_length],\n },\n )\n for result in organic_results\n ]\n\n results = search_func(\n self.input_value,\n self.search_params or {},\n self.max_results,\n self.max_snippet_length,\n )\n self.status = results\n return results\n\n def fetch_content_dataframe(self) -> DataFrame:\n \"\"\"Convert the search results to a DataFrame.\n\n Returns:\n DataFrame: A DataFrame containing the search results.\n \"\"\"\n data = self.fetch_content()\n return DataFrame(data)\n"
|
||||
},
|
||||
"engine": {
|
||||
"_input_type": "DropdownInput",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue