From 8abfb7a00e75e4539657cbaa742721544126ec03 Mon Sep 17 00:00:00 2001 From: Yuki Sekiya Date: Sun, 15 Oct 2023 01:41:44 +0900 Subject: [PATCH] Add Amazon Kendra Retriver --- .../components/retrievers/AmazonKendra.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/backend/langflow/components/retrievers/AmazonKendra.py diff --git a/src/backend/langflow/components/retrievers/AmazonKendra.py b/src/backend/langflow/components/retrievers/AmazonKendra.py new file mode 100644 index 000000000..a964847df --- /dev/null +++ b/src/backend/langflow/components/retrievers/AmazonKendra.py @@ -0,0 +1,27 @@ +from langflow import CustomComponent +from langchain.retrievers import AmazonKendraRetriever +from langchain.schema import BaseRetriever + + +class AmazonKendraRetrieverComponent(CustomComponent): + display_name: str = "Amazon Kendra Retriever" + description: str = "Retriever that uses the Amazon Kendra API." + + def build_config(self): + return { + "index_id": {"display_name": "Index ID"}, + "attribute_filter": { + "attribute_filter": "Attribute Filter", + "field_type": "code", + }, + "code": {"show": False}, + } + + def build( + self, index_id: str, attribute_filter: dict + ) -> BaseRetriever: + try: + output = AmazonKendraRetriever(index_id=index_id, attribute_filter=attribute_filter) + except Exception as e: + raise ValueError("Could not connect to AmazonKendra API.") from e + return output