From fb028e55b84fa73a814d4718f34751662e6b6778 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Tue, 22 Aug 2023 11:38:48 -0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(GetRequest.py):=20add=20GetReq?= =?UTF-8?q?uest=20component=20to=20make=20a=20GET=20request=20to=20a=20giv?= =?UTF-8?q?en=20URL=20=E2=9C=A8=20feat(PostRequest.py):=20add=20PostReques?= =?UTF-8?q?t=20component=20to=20make=20a=20POST=20request=20to=20a=20given?= =?UTF-8?q?=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/utilities/GetRequest.py | 29 +++++++++++++++++ .../components/utilities/PostRequest.py | 31 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 src/backend/langflow/components/utilities/GetRequest.py create mode 100644 src/backend/langflow/components/utilities/PostRequest.py diff --git a/src/backend/langflow/components/utilities/GetRequest.py b/src/backend/langflow/components/utilities/GetRequest.py new file mode 100644 index 000000000..baa2139c2 --- /dev/null +++ b/src/backend/langflow/components/utilities/GetRequest.py @@ -0,0 +1,29 @@ +from langflow import CustomComponent +from langchain.schema import Document +from langflow.database.models.base import orjson_dumps +import requests +from typing import Optional + + +class GetRequest(CustomComponent): + display_name: str = "Get Request" + description: str = "Make a GET request to the given URL" + output_types: list[str] = ["Document"] + beta = True + field_config = { + "url": {"display_name": "URL"}, + "headers": {"display_name": "Headers", "field_type": "code"}, + "code": {"show": False}, + } + + def build( + self, + url: str, + headers: Optional[dict] = None, + ) -> Document: + if headers is None: + headers = {} + with requests.get(url, headers=headers) as result: + result = result.json() + self.repr_value = result + return Document(page_content=orjson_dumps(result)) diff --git a/src/backend/langflow/components/utilities/PostRequest.py b/src/backend/langflow/components/utilities/PostRequest.py new file mode 100644 index 000000000..83ae9db34 --- /dev/null +++ b/src/backend/langflow/components/utilities/PostRequest.py @@ -0,0 +1,31 @@ +from langflow import CustomComponent +from langchain.schema import Document +from langflow.database.models.base import orjson_dumps +import requests +from typing import Optional + + +class PostRequest(CustomComponent): + display_name: str = "Post Request" + description: str = "Make a POST request to the given URL" + output_types: list[str] = ["Document"] + beta = True + field_config = { + "url": {"display_name": "URL"}, + "headers": {"display_name": "Headers", "field_type": "code"}, + "code": {"show": False}, + "document": {"display_name": "Document"}, + } + + def build( + self, + document: Document, + url: str, + headers: Optional[dict] = None, + ) -> Document: + if headers is None: + headers = {} + with requests.post(url, headers=headers, json=document.page_content) as result: + result = result.json() + self.repr_value = result + return Document(page_content=orjson_dumps(result))