Merge branch 'logspace-ai:dev' into dev

This commit is contained in:
Deepankar Mahapatro 2023-05-18 12:06:14 +05:30 committed by GitHub
commit fd638994cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 264 additions and 200 deletions

View file

@ -1,5 +1,5 @@
from importlib.metadata import version
import logging
from importlib.metadata import version
from fastapi import APIRouter, HTTPException

View file

@ -54,4 +54,4 @@ def post_validate_node(node_id: str, data: dict):
return json.dumps({"valid": True, "params": str(node._built_object_repr())})
except Exception as e:
logger.exception(e)
return json.dumps({"valid": False})
return json.dumps({"valid": False, "params": str(e)})

View file

@ -143,7 +143,8 @@ class DocumentLoaderNode(Node):
# This built_object is a list of documents. Maybe we should
# show how many documents are in the list?
if self._built_object:
return f"""{self.node_type}({len(self._built_object)} documents)\nDocuments: {self._built_object[:3]}..."""
return f"""{self.node_type}({len(self._built_object)} documents)
Documents: {self._built_object[:3]}..."""
return f"{self.node_type}()"

View file

@ -1,8 +1,10 @@
from typing import Dict, List, Optional
from typing import Dict, List, Optional, Type
from langflow.interface.base import LangChainTypeCreator
from langflow.interface.custom_lists import embedding_type_to_cls_dict
from langflow.settings import settings
from langflow.template.base import FrontendNode
from langflow.template.nodes import EmbeddingFrontendNode
from langflow.utils.logger import logger
from langflow.utils.util import build_template_from_class
@ -14,6 +16,10 @@ class EmbeddingCreator(LangChainTypeCreator):
def type_to_loader_dict(self) -> Dict:
return embedding_type_to_cls_dict
@property
def frontend_node_class(self) -> Type[FrontendNode]:
return EmbeddingFrontendNode
def get_signature(self, name: str) -> Optional[Dict]:
"""Get the signature of an embedding."""
try:

View file

@ -108,6 +108,7 @@ def instantiate_toolkit(node_type, class_object, params):
def instantiate_embedding(class_object, params):
params.pop("model", None)
params.pop("headers", None)
try:
return class_object(**params)
except ValidationError:

View file

@ -3,12 +3,12 @@ import io
from typing import Any, Dict, List, Tuple
from chromadb.errors import NotEnoughElementsException # type: ignore
from langchain.schema import AgentAction
from langflow.api.callback import AsyncStreamingLLMCallbackHandler, StreamingLLMCallbackHandler # type: ignore
from langflow.cache.base import compute_dict_hash, load_cache, memoize_dict
from langflow.graph.graph import Graph
from langflow.utils.logger import logger
from langchain.schema import AgentAction
def load_langchain_object(data_graph, is_first_message=False):

View file

@ -614,3 +614,11 @@ class LLMFrontendNode(FrontendNode):
elif field.name in ["model_name", "temperature"]:
field.advanced = False
field.show = True
class EmbeddingFrontendNode(FrontendNode):
@staticmethod
def format_field(field: TemplateField, name: Optional[str] = None) -> None:
FrontendNode.format_field(field, name)
if field.name == "headers":
field.show = False