🔀 merge(MetalRetriever.py): merge changes from langchain/retrievers to langchain/schema to keep codebase up to date

🔀 merge(MetalRetriever.py): merge changes from metal_sdk/metal to langchain/schema to keep codebase up to date
🐛 fix(MetalRetriever.py): change BaseRetriever import from langchain.schema.retriever to langchain.schema to match updated codebase
✨ feat(MetalRetriever.py): add error handling to MetalRetriever build method to raise ValueError if connection to Metal API fails
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-08-28 07:54:59 -03:00
commit b3b0f63a1f

View file

@ -1,7 +1,8 @@
from typing import Optional from typing import Optional
from langflow import CustomComponent from langflow import CustomComponent
from langchain.retrievers import MetalRetriever from langchain.retrievers import MetalRetriever
from langchain.schema.retriever import BaseRetriever from langchain.schema import BaseRetriever
from metal_sdk.metal import Metal
class MetalRetrieverComponent(CustomComponent): class MetalRetrieverComponent(CustomComponent):
@ -20,4 +21,8 @@ class MetalRetrieverComponent(CustomComponent):
def build( def build(
self, api_key: str, client_id: str, index_id: str, params: Optional[dict] = None self, api_key: str, client_id: str, index_id: str, params: Optional[dict] = None
) -> BaseRetriever: ) -> BaseRetriever:
return MetalRetriever(api_key, client_id, index_id, params=params) try:
metal = Metal(api_key=api_key, client_id=client_id, index_id=index_id)
except Exception as e:
raise ValueError("Could not connect to Metal API.") from e
return MetalRetriever(client=metal, params=params or {})