🔨 refactor(loading.py): add type hinting to instantiate_agent function
🐛 fix(loading.py): fix type hinting in instantiate_embedding function 🔨 refactor(loading.py): add type hinting to instantiate_textsplitter function The changes in this commit add type hinting to the `instantiate_agent`, `instantiate_embedding`, and `instantiate_textsplitter` functions to improve code readability and maintainability. The `instantiate_embedding` function had a bug in its type hinting which has been fixed.
This commit is contained in:
parent
9510474aa6
commit
0c398fb6c5
1 changed files with 17 additions and 13 deletions
|
|
@ -16,11 +16,10 @@ from langflow.interface.toolkits.base import toolkits_creator
|
||||||
from langflow.interface.chains.base import chain_creator
|
from langflow.interface.chains.base import chain_creator
|
||||||
from langflow.interface.utils import load_file_into_dict
|
from langflow.interface.utils import load_file_into_dict
|
||||||
from langflow.utils import validate
|
from langflow.utils import validate
|
||||||
from langchain.text_splitter import TextSplitter
|
from langchain.text_splitter import TextSplitter, RecursiveCharacterTextSplitter
|
||||||
from langchain.chains.base import Chain
|
from langchain.chains.base import Chain
|
||||||
from langchain.vectorstores.base import VectorStore
|
from langchain.vectorstores.base import VectorStore
|
||||||
from langchain.document_loaders.base import BaseLoader
|
from langchain.document_loaders.base import BaseLoader
|
||||||
from langchain.embeddings.base import Embeddings
|
|
||||||
from langchain.prompts.base import BasePromptTemplate
|
from langchain.prompts.base import BasePromptTemplate
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -94,7 +93,7 @@ def instantiate_chains(node_type, class_object: Type[Chain], params: Dict):
|
||||||
return class_object(**params)
|
return class_object(**params)
|
||||||
|
|
||||||
|
|
||||||
def instantiate_agent(class_object: Type[Chain], params: Dict):
|
def instantiate_agent(class_object: Type[agent_module.Agent], params: Dict):
|
||||||
return load_agent_executor(class_object, params)
|
return load_agent_executor(class_object, params)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -134,7 +133,7 @@ def instantiate_toolkit(node_type, class_object: Type[BaseToolkit], params: Dict
|
||||||
return loaded_toolkit
|
return loaded_toolkit
|
||||||
|
|
||||||
|
|
||||||
def instantiate_embedding(class_object: Type[Embeddings], params: Dict):
|
def instantiate_embedding(class_object, params: Dict):
|
||||||
params.pop("model", None)
|
params.pop("model", None)
|
||||||
params.pop("headers", None)
|
params.pop("headers", None)
|
||||||
try:
|
try:
|
||||||
|
|
@ -193,20 +192,25 @@ def instantiate_documentloader(class_object: Type[BaseLoader], params: Dict):
|
||||||
return docs
|
return docs
|
||||||
|
|
||||||
|
|
||||||
def instantiate_textsplitter(class_object: Type[TextSplitter], params: Dict):
|
def instantiate_textsplitter(
|
||||||
|
class_object: Type[TextSplitter],
|
||||||
|
params: Dict,
|
||||||
|
):
|
||||||
try:
|
try:
|
||||||
documents = params.pop("documents")
|
documents = params.pop("documents")
|
||||||
except KeyError as e:
|
except KeyError as exc:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"The source you provided did not load correctly or was empty."
|
"The source you provided did not load correctly or was empty."
|
||||||
"Try changing the chunk_size of the Text Splitter."
|
"Try changing the chunk_size of the Text Splitter."
|
||||||
) from e
|
) from exc
|
||||||
if "separator_type" in params and params["separator_type"] == "Text":
|
|
||||||
text_splitter = class_object(**params)
|
if type(class_object) == RecursiveCharacterTextSplitter:
|
||||||
else:
|
if "separator_type" in params and params["separator_type"] == "Text":
|
||||||
params["language"] = params.pop("separator_type", None)
|
text_splitter = class_object(**params)
|
||||||
params.pop("separators", None)
|
else:
|
||||||
text_splitter = class_object.from_language(**params)
|
params["language"] = params.pop("separator_type", None)
|
||||||
|
params.pop("separators", None)
|
||||||
|
text_splitter = class_object.from_language(**params)
|
||||||
|
|
||||||
return text_splitter.split_documents(documents)
|
return text_splitter.split_documents(documents)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue