🔀 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 langflow import CustomComponent
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):
@ -20,4 +21,8 @@ class MetalRetrieverComponent(CustomComponent):
def build(
self, api_key: str, client_id: str, index_id: str, params: Optional[dict] = None
) -> 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 {})