glchat-plugin 0.2.11__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- glchat_plugin/config/constant.py +18 -0
- glchat_plugin/pipeline/base_pipeline_preset_config.py +48 -2
- glchat_plugin/pipeline/pipeline_handler.py +23 -1
- glchat_plugin/pipeline/pipeline_plugin.py +6 -2
- {glchat_plugin-0.2.11.dist-info → glchat_plugin-0.3.0.dist-info}/METADATA +1 -1
- {glchat_plugin-0.2.11.dist-info → glchat_plugin-0.3.0.dist-info}/RECORD +8 -8
- {glchat_plugin-0.2.11.dist-info → glchat_plugin-0.3.0.dist-info}/WHEEL +0 -0
- {glchat_plugin-0.2.11.dist-info → glchat_plugin-0.3.0.dist-info}/top_level.txt +0 -0
glchat_plugin/config/constant.py
CHANGED
|
@@ -62,3 +62,21 @@ class SearchType(StrEnum):
|
|
|
62
62
|
stacklevel=2,
|
|
63
63
|
)
|
|
64
64
|
return cls._DEEP_RESEARCH
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class ReferenceFormatterType(StrEnum):
|
|
68
|
+
"""The type of reference formatter to use.
|
|
69
|
+
|
|
70
|
+
Attributes:
|
|
71
|
+
SIMILARITY: Use similarity based reference formatter.
|
|
72
|
+
LM: Use LM based reference formatter.
|
|
73
|
+
NONE: No reference formatter is used.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
SIMILARITY = "similarity"
|
|
77
|
+
LM = "lm"
|
|
78
|
+
NONE = "none"
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
WEB_SEARCH_BLACKLIST_DEFAULT = "[]"
|
|
82
|
+
WEB_SEARCH_WHITELIST_DEFAULT = "[]"
|
|
@@ -9,9 +9,14 @@ References:
|
|
|
9
9
|
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
|
-
from pydantic import BaseModel
|
|
12
|
+
from pydantic import BaseModel, Field
|
|
13
13
|
|
|
14
|
-
from glchat_plugin.config.constant import
|
|
14
|
+
from glchat_plugin.config.constant import (
|
|
15
|
+
WEB_SEARCH_BLACKLIST_DEFAULT,
|
|
16
|
+
WEB_SEARCH_WHITELIST_DEFAULT,
|
|
17
|
+
ReferenceFormatterType,
|
|
18
|
+
SearchType,
|
|
19
|
+
)
|
|
15
20
|
|
|
16
21
|
|
|
17
22
|
class BasePipelinePresetConfig(BaseModel):
|
|
@@ -25,6 +30,27 @@ class BasePipelinePresetConfig(BaseModel):
|
|
|
25
30
|
support_multimodal (bool): Whether the pipeline supports multimodal.
|
|
26
31
|
use_docproc (bool): Whether to use the document processor.
|
|
27
32
|
search_types (list[SearchType]): The supported search types.
|
|
33
|
+
anonymize_em (bool): Whether to anonymize before using the embedding model.
|
|
34
|
+
anonymize_lm (bool): Whether to anonymize before using the language model.
|
|
35
|
+
augment_context (bool): Whether context augmentation from the knowledge base is allowed.
|
|
36
|
+
chat_history_limit (int): The chat history limit. If the value is negative, no limit will be applied.
|
|
37
|
+
enable_guardrails (bool): Whether to enable guardrails.
|
|
38
|
+
enable_smart_search_integration (bool): Whether to enable smart search integration.
|
|
39
|
+
normal_search_top_k (int): The top k for normal search. Must be greater than or equal to 1.
|
|
40
|
+
prompt_context_char_threshold (int): The character limit above which the prompt is assumed
|
|
41
|
+
to have contained the context.
|
|
42
|
+
reference_formatter_batch_size (int): The reference formatter batch size.
|
|
43
|
+
reference_formatter_threshold (float): The reference formatter threshold.
|
|
44
|
+
reference_formatter_type (ReferenceFormatterType): The reference formatter type.
|
|
45
|
+
rerank_kwargs (str): The rerank kwargs.
|
|
46
|
+
rerank_type (str): The rerank type.
|
|
47
|
+
smart_search_top_k (int): The top k for smart search. Must be greater than or equal to 1.
|
|
48
|
+
use_cache (bool): Whether to use cache.
|
|
49
|
+
use_model_knowledge (bool): Whether to use model knowledge.
|
|
50
|
+
vector_weight (float): The vector weight. Must be between 0 and 1 (inclusive).
|
|
51
|
+
web_search_blacklist (str): The web search blacklist.
|
|
52
|
+
web_search_top_k (int): The top k for web search. Must be greater than or equal to 1.
|
|
53
|
+
web_search_whitelist (str): The web search whitelist.
|
|
28
54
|
"""
|
|
29
55
|
|
|
30
56
|
pipeline_preset_id: str
|
|
@@ -34,3 +60,23 @@ class BasePipelinePresetConfig(BaseModel):
|
|
|
34
60
|
support_multimodal: bool
|
|
35
61
|
use_docproc: bool
|
|
36
62
|
search_types: list[SearchType]
|
|
63
|
+
anonymize_em: bool
|
|
64
|
+
anonymize_lm: bool
|
|
65
|
+
augment_context: bool
|
|
66
|
+
chat_history_limit: int
|
|
67
|
+
enable_guardrails: bool = False
|
|
68
|
+
enable_smart_search_integration: bool = False
|
|
69
|
+
normal_search_top_k: int = Field(ge=1)
|
|
70
|
+
prompt_context_char_threshold: int = 32000
|
|
71
|
+
reference_formatter_batch_size: int = Field(ge=1)
|
|
72
|
+
reference_formatter_threshold: float = Field(ge=0, le=1)
|
|
73
|
+
reference_formatter_type: ReferenceFormatterType
|
|
74
|
+
rerank_kwargs: str = "{}"
|
|
75
|
+
rerank_type: str = ""
|
|
76
|
+
smart_search_top_k: int = Field(ge=1)
|
|
77
|
+
use_cache: bool
|
|
78
|
+
use_model_knowledge: bool
|
|
79
|
+
vector_weight: float = Field(ge=0, le=1)
|
|
80
|
+
web_search_blacklist: str = Field(default=WEB_SEARCH_BLACKLIST_DEFAULT)
|
|
81
|
+
web_search_top_k: int = Field(ge=1)
|
|
82
|
+
web_search_whitelist: str = Field(default=WEB_SEARCH_WHITELIST_DEFAULT)
|
|
@@ -66,6 +66,9 @@ class ChatbotPresetMapping(BaseModel):
|
|
|
66
66
|
logger = LoggerManager().get_logger(__name__)
|
|
67
67
|
|
|
68
68
|
|
|
69
|
+
INTERNAL_PIPELINES = ["preprocessing", "postprocessing"]
|
|
70
|
+
|
|
71
|
+
|
|
69
72
|
class PipelineHandler(PluginHandler):
|
|
70
73
|
"""Handler for pipeline builder plugins.
|
|
71
74
|
|
|
@@ -186,6 +189,25 @@ class PipelineHandler(PluginHandler):
|
|
|
186
189
|
plugin.lmrp_catalogs = instance._chatbot_configs[chatbot_id].lmrp_catalogs
|
|
187
190
|
instance._builders[chatbot_id] = plugin
|
|
188
191
|
|
|
192
|
+
for pipeline_type in INTERNAL_PIPELINES:
|
|
193
|
+
internal_plugin = instance._plugins.get(pipeline_type)
|
|
194
|
+
if internal_plugin:
|
|
195
|
+
try:
|
|
196
|
+
internal_plugin.prompt_builder_catalogs = instance._chatbot_configs[
|
|
197
|
+
chatbot_id
|
|
198
|
+
].prompt_builder_catalogs
|
|
199
|
+
internal_plugin.lmrp_catalogs = instance._chatbot_configs[chatbot_id].lmrp_catalogs
|
|
200
|
+
pipeline_config = instance._chatbot_configs[chatbot_id].pipeline_config.copy()
|
|
201
|
+
pipeline = await internal_plugin.build(pipeline_config)
|
|
202
|
+
pipeline_key = (chatbot_id, f"__{pipeline_type}__")
|
|
203
|
+
instance._chatbot_pipeline_keys.setdefault(chatbot_id, set()).add(pipeline_key)
|
|
204
|
+
instance._pipeline_cache[pipeline_key] = pipeline
|
|
205
|
+
except Exception as e:
|
|
206
|
+
logger.warning(f"Failed when ainit plugin {traceback.format_exc()}")
|
|
207
|
+
logger.warning(
|
|
208
|
+
f"Error building internal pipeline `{pipeline_type}` for chatbot `{chatbot_id}`: {e}"
|
|
209
|
+
)
|
|
210
|
+
|
|
189
211
|
for model in supported_models:
|
|
190
212
|
try:
|
|
191
213
|
model_id = model.get("model_id", model.get("name"))
|
|
@@ -206,7 +228,7 @@ class PipelineHandler(PluginHandler):
|
|
|
206
228
|
instance._chatbot_pipeline_keys.setdefault(chatbot_id, set()).add(pipeline_key)
|
|
207
229
|
instance._pipeline_cache[pipeline_key] = pipeline
|
|
208
230
|
except Exception as e:
|
|
209
|
-
logger.warning(f"Failed when ainit
|
|
231
|
+
logger.warning(f"Failed when ainit plugin {traceback.format_exc()}")
|
|
210
232
|
logger.warning(f"Error building pipeline for chatbot `{chatbot_id}` model `{model_id}`: {e}")
|
|
211
233
|
|
|
212
234
|
def get_pipeline_builder(self, chatbot_id: str) -> Plugin:
|
|
@@ -31,7 +31,8 @@ class PipelineBuilderPlugin(Plugin, Generic[PipelineState, PipelinePresetConfig]
|
|
|
31
31
|
name (str): The name of the plugin.
|
|
32
32
|
description (str): The description of the plugin.
|
|
33
33
|
version (str): The version of the plugin.
|
|
34
|
-
|
|
34
|
+
lmrp_catalogs (dict[str, BaseCatalog[Any]] | None): The LM request processor catalogs.
|
|
35
|
+
prompt_builder_catalogs (dict[str, BaseCatalog[Any]] | None): The prompt builder catalogs.
|
|
35
36
|
additional_config_class (Type[PipelineRuntimeConfig] | None): The additional runtime configuration class.
|
|
36
37
|
preset_config_class (Type[PipelinePresetConfig] | None): The preset configuration class.
|
|
37
38
|
"""
|
|
@@ -40,7 +41,8 @@ class PipelineBuilderPlugin(Plugin, Generic[PipelineState, PipelinePresetConfig]
|
|
|
40
41
|
description: str = "Pipeline builder plugin"
|
|
41
42
|
version: str = "0.0.0"
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
lmrp_catalogs: dict[str, BaseCatalog[Any]] | None = None
|
|
45
|
+
prompt_builder_catalogs: dict[str, BaseCatalog[Any]] | None = None
|
|
44
46
|
|
|
45
47
|
additional_config_class: Type[PipelineRuntimeConfig] | None = None
|
|
46
48
|
preset_config_class: Type[PipelinePresetConfig] | None = None
|
|
@@ -64,6 +66,7 @@ class PipelineBuilderPlugin(Plugin, Generic[PipelineState, PipelinePresetConfig]
|
|
|
64
66
|
self,
|
|
65
67
|
request_config: dict[str, Any],
|
|
66
68
|
pipeline_config: dict[str, Any],
|
|
69
|
+
previous_state: dict[str, Any] | None = None,
|
|
67
70
|
**kwargs: Any,
|
|
68
71
|
) -> PipelineState:
|
|
69
72
|
"""Build the initial pipeline state.
|
|
@@ -71,6 +74,7 @@ class PipelineBuilderPlugin(Plugin, Generic[PipelineState, PipelinePresetConfig]
|
|
|
71
74
|
Args:
|
|
72
75
|
request_config (dict[str, Any]): Request configuration.
|
|
73
76
|
pipeline_config (dict[str, Any]): Pipeline configuration.
|
|
77
|
+
previous_state (dict[str, Any] | None): Previous state.
|
|
74
78
|
kwargs (Any): Additional state arguments.
|
|
75
79
|
|
|
76
80
|
Returns:
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
glchat_plugin/__init__.py,sha256=SHSBMz7JDU6MecyIrhHu5-3NVs89JkXhyvD3ZGOkWOE,37
|
|
2
2
|
glchat_plugin/config/__init__.py,sha256=DNnX8B_TvAN89oyMgq32zG1DeaezODrihiAXTwOPT5o,39
|
|
3
3
|
glchat_plugin/config/app_config.py,sha256=9_ShYtaQ7Rp14sSkrIFLoOAMlbwVlm13EuCxzOn4NCI,426
|
|
4
|
-
glchat_plugin/config/constant.py,sha256=
|
|
4
|
+
glchat_plugin/config/constant.py,sha256=iRiY-wN7dhIHmxl8zzmYtOtE9B-oBFadThqALcnSoEE,2744
|
|
5
5
|
glchat_plugin/context/__init__.py,sha256=3Wx_apMIS6z-m6eRs6hoyOsJFLJfKmMFOkrPDkPQfJI,40
|
|
6
6
|
glchat_plugin/context/context_manager.py,sha256=0lhO0w_hd5dUdIEJQ2LOJFZsgpzitQU_aPZfTfQK3vw,1302
|
|
7
7
|
glchat_plugin/handler/__init__.py,sha256=H5DJaAfwwtRsvMcOaEzHfGMQk25H7la0E7uPfksWtoQ,40
|
|
8
8
|
glchat_plugin/handler/base_post_login_handler.py,sha256=48xSbe_LwTCjRY-lCuzWXqbnEr1ql8bAhQih1Xeh8f8,2835
|
|
9
9
|
glchat_plugin/pipeline/__init__.py,sha256=Sk-NfIGyA9VKIg0Bt5OHatNUYyWVPh9i5xhE5DFAfbo,41
|
|
10
|
-
glchat_plugin/pipeline/base_pipeline_preset_config.py,sha256=
|
|
11
|
-
glchat_plugin/pipeline/pipeline_handler.py,sha256=
|
|
12
|
-
glchat_plugin/pipeline/pipeline_plugin.py,sha256=
|
|
10
|
+
glchat_plugin/pipeline/base_pipeline_preset_config.py,sha256=F-u4WzMuNlzEmKE-xgeAG-mI8TB6d4JLTsjnh_89-Y0,3677
|
|
11
|
+
glchat_plugin/pipeline/pipeline_handler.py,sha256=aCRvhS6Dkhmqsx_Ya-2t2PbMseacw1VI6PUEOQq0RsM,25620
|
|
12
|
+
glchat_plugin/pipeline/pipeline_plugin.py,sha256=fozvxVrOphgwLIF7uPrEkF8ZQcu8xgifYAQyuxj9628,4393
|
|
13
13
|
glchat_plugin/service/__init__.py,sha256=9T4qzyYL052qLqva5el1F575OTRNaaf9tb9UvW-leTc,47
|
|
14
14
|
glchat_plugin/service/base_rate_limiter_service.py,sha256=tgKwdr4EqnGo5iDRVJPnlg8W9q0hiUzfeewAtdW4IjU,1232
|
|
15
15
|
glchat_plugin/service/base_tenant_service.py,sha256=CB-jJWXi87nTcjO1XhPoSgNMf2YA_LfXoHr30ye0VtI,734
|
|
@@ -19,7 +19,7 @@ glchat_plugin/storage/base_anonymizer_storage.py,sha256=oFwovWrsjM7v1YjeN-4p-M3O
|
|
|
19
19
|
glchat_plugin/storage/base_chat_history_storage.py,sha256=JvUUFMu_9jRBQ9yug_x7S4rQjZEA1vM5ombDvz-7zCE,11095
|
|
20
20
|
glchat_plugin/tools/__init__.py,sha256=OFotHbgQ8mZEbdlvlv5aVMdxfubPvkVWAcTwhIPdIqQ,542
|
|
21
21
|
glchat_plugin/tools/decorators.py,sha256=AvQBV18wzXWdC483RSSmpfh92zsqTyp8SzDLIkreIGU,3925
|
|
22
|
-
glchat_plugin-0.
|
|
23
|
-
glchat_plugin-0.
|
|
24
|
-
glchat_plugin-0.
|
|
25
|
-
glchat_plugin-0.
|
|
22
|
+
glchat_plugin-0.3.0.dist-info/METADATA,sha256=hl5d1CqDpK27hGQCDKYX8Uw2JlWWCshBr9rphZRvDsE,2063
|
|
23
|
+
glchat_plugin-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
24
|
+
glchat_plugin-0.3.0.dist-info/top_level.txt,sha256=fzKSXmct5dY4CAKku4-mkdHX-QPAyQVvo8vpQj8qizY,14
|
|
25
|
+
glchat_plugin-0.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|