From df7b4fc5907ed5aebd7b32c3867cd3f683573360 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Sun, 24 Mar 2024 20:08:50 -0300 Subject: [PATCH] Refactor SearchApi.py to include typing and handle empty records --- .../langflow/components/tools/SearchApi.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/backend/langflow/components/tools/SearchApi.py b/src/backend/langflow/components/tools/SearchApi.py index 53da6c741..8a0bfe0ac 100644 --- a/src/backend/langflow/components/tools/SearchApi.py +++ b/src/backend/langflow/components/tools/SearchApi.py @@ -1,9 +1,14 @@ -from langflow import CustomComponent -from langchain.schema import Document -from langflow.services.database.models.base import orjson_dumps -from langchain_community.utilities.searchapi import SearchApiAPIWrapper from typing import Optional +from langchain.schema import Document +from langchain_community.utilities.searchapi import SearchApiAPIWrapper + +from langflow import CustomComponent +from langflow.schema.schema import Record +from langflow.services.database.models.base import orjson_dumps +from langflow.schema.schema import Record +from langflow.services.database.models.base import orjson_dumps + class SearchApi(CustomComponent): display_name: str = "SearchApi" @@ -35,7 +40,7 @@ class SearchApi(CustomComponent): engine: str, api_key: str, params: Optional[dict] = None, - ) -> Document: + ) -> Record: if params is None: params = {} @@ -48,4 +53,10 @@ class SearchApi(CustomComponent): document = Document(page_content=result) - return document + records = self.to_records(document) + if records: + record = records[0] + self.status = record + return record + else: + return Record()