|
@@ -2,7 +2,7 @@ from typing import Optional
|
|
|
|
|
|
import yaml
|
|
|
|
|
|
-from embedchain.config import AppConfig, BaseEmbedderConfig, BaseLlmConfig
|
|
|
+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
|
|
@@ -38,6 +38,7 @@ class App(EmbedChain):
|
|
|
embedder: BaseEmbedder = None,
|
|
|
embedder_config: Optional[BaseEmbedderConfig] = None,
|
|
|
system_prompt: Optional[str] = None,
|
|
|
+ chunker: Optional[ChunkerConfig] = None,
|
|
|
):
|
|
|
"""
|
|
|
Initialize a new `App` instance.
|
|
@@ -97,6 +98,9 @@ class App(EmbedChain):
|
|
|
if embedder is None:
|
|
|
embedder = OpenAIEmbedder(config=embedder_config)
|
|
|
|
|
|
+ self.chunker = None
|
|
|
+ if chunker:
|
|
|
+ self.chunker = ChunkerConfig(**chunker)
|
|
|
# Type check assignments
|
|
|
if not isinstance(llm, BaseLlm):
|
|
|
raise TypeError(
|
|
@@ -137,6 +141,7 @@ class App(EmbedChain):
|
|
|
llm_config_data = config_data.get("llm", {})
|
|
|
db_config_data = config_data.get("vectordb", {})
|
|
|
embedding_model_config_data = config_data.get("embedding_model", config_data.get("embedder", {}))
|
|
|
+ chunker_config_data = config_data.get("chunker", {})
|
|
|
|
|
|
app_config = AppConfig(**app_config_data.get("config", {}))
|
|
|
|
|
@@ -148,4 +153,4 @@ class App(EmbedChain):
|
|
|
|
|
|
embedder_provider = embedding_model_config_data.get("provider", "openai")
|
|
|
embedder = EmbedderFactory.create(embedder_provider, embedding_model_config_data.get("config", {}))
|
|
|
- return cls(config=app_config, llm=llm, db=db, embedder=embedder)
|
|
|
+ return cls(config=app_config, llm=llm, db=db, embedder=embedder, chunker=chunker_config_data)
|