From 1df46b2bb3e0a2d5aea53f269e1f17f9ad197dd6 Mon Sep 17 00:00:00 2001 From: Deshraj Yadav Date: Fri, 24 Nov 2023 09:26:59 -0800 Subject: [PATCH] [Bug fix] Fix issue of missing user directory (#975) --- embedchain/__init__.py | 3 +++ embedchain/apps/app.py | 10 +--------- embedchain/embedchain.py | 3 +-- embedchain/pipeline.py | 10 ++++------ embedchain/store/assistants.py | 5 ++++- pyproject.toml | 2 +- 6 files changed, 14 insertions(+), 19 deletions(-) diff --git a/embedchain/__init__.py b/embedchain/__init__.py index 14d913f2..5575a541 100644 --- a/embedchain/__init__.py +++ b/embedchain/__init__.py @@ -6,3 +6,6 @@ from embedchain.apps.app import App # noqa: F401 from embedchain.client import Client # noqa: F401 from embedchain.pipeline import Pipeline # noqa: F401 from embedchain.vectordb.chroma import ChromaDB # noqa: F401 + +# Setup the user directory if doesn't exist already +Client.setup_dir() diff --git a/embedchain/apps/app.py b/embedchain/apps/app.py index 56d1353e..b61acbe7 100644 --- a/embedchain/apps/app.py +++ b/embedchain/apps/app.py @@ -2,9 +2,7 @@ from typing import Optional import yaml -from embedchain.client import Client -from embedchain.config import (AppConfig, BaseEmbedderConfig, BaseLlmConfig, - ChunkerConfig) +from embedchain.config import AppConfig, BaseEmbedderConfig, BaseLlmConfig, ChunkerConfig from embedchain.config.vectordb.base import BaseVectorDbConfig from embedchain.embedchain import EmbedChain from embedchain.embedder.base import BaseEmbedder @@ -68,9 +66,6 @@ class App(EmbedChain): :type system_prompt: Optional[str], optional :raises TypeError: LLM, database or embedder or their config is not a valid class instance. """ - # Setup user directory if it doesn't exist already - Client.setup_dir() - # Type check configs if config and not isinstance(config, AppConfig): raise TypeError( @@ -134,9 +129,6 @@ class App(EmbedChain): :return: An instance of the App class. :rtype: App """ - # Setup user directory if it doesn't exist already - Client.setup_dir() - with open(yaml_path, "r") as file: config_data = yaml.safe_load(file) diff --git a/embedchain/embedchain.py b/embedchain/embedchain.py index dfd1627e..863bf1e7 100644 --- a/embedchain/embedchain.py +++ b/embedchain/embedchain.py @@ -16,8 +16,7 @@ from embedchain.embedder.base import BaseEmbedder from embedchain.helpers.json_serializable import JSONSerializable from embedchain.llm.base import BaseLlm from embedchain.loaders.base_loader import BaseLoader -from embedchain.models.data_type import (DataType, DirectDataType, - IndirectDataType, SpecialDataType) +from embedchain.models.data_type import DataType, DirectDataType, IndirectDataType, SpecialDataType from embedchain.telemetry.posthog import AnonymousTelemetry from embedchain.utils import detect_datatype, is_valid_json_string from embedchain.vectordb.base import BaseVectorDB diff --git a/embedchain/pipeline.py b/embedchain/pipeline.py index 00a8a92d..e370faa4 100644 --- a/embedchain/pipeline.py +++ b/embedchain/pipeline.py @@ -24,6 +24,10 @@ from embedchain.vectordb.base import BaseVectorDB from embedchain.vectordb.chroma import ChromaDB +# Setup the user directory if doesn't exist already +Client.setup_dir() + + @register_deserializable class Pipeline(EmbedChain): """ @@ -64,9 +68,6 @@ class Pipeline(EmbedChain): :type auto_deploy: bool, optional :raises Exception: If an error occurs while creating the pipeline """ - # Setup user directory if it doesn't exist already - Client.setup_dir() - if id and yaml_path: raise Exception("Cannot provide both id and config. Please provide only one of them.") @@ -357,9 +358,6 @@ class Pipeline(EmbedChain): :return: An instance of the Pipeline class. :rtype: Pipeline """ - # Setup user directory if it doesn't exist already - Client.setup_dir() - with open(yaml_path, "r") as file: config_data = yaml.safe_load(file) diff --git a/embedchain/store/assistants.py b/embedchain/store/assistants.py index e3bde8de..9803c083 100644 --- a/embedchain/store/assistants.py +++ b/embedchain/store/assistants.py @@ -10,7 +10,7 @@ from typing import cast from openai import OpenAI from openai.types.beta.threads import MessageContentText, ThreadMessage -from embedchain import Pipeline +from embedchain import Client, Pipeline from embedchain.config import AddConfig from embedchain.data_formatter import DataFormatter from embedchain.models.data_type import DataType @@ -19,6 +19,9 @@ from embedchain.utils import detect_datatype logging.basicConfig(level=logging.WARN) +# Setup the user directory if doesn't exist already +Client.setup_dir() + class OpenAIAssistant: def __init__( diff --git a/pyproject.toml b/pyproject.toml index f322179e..9c039de3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "embedchain" -version = "0.1.20" +version = "0.1.21" description = "Data platform for LLMs - Load, index, retrieve and sync any unstructured data" authors = [ "Taranjeet Singh ",