vectorvein 0.2.15__tar.gz → 0.2.17__tar.gz
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.
- {vectorvein-0.2.15 → vectorvein-0.2.17}/PKG-INFO +2 -2
- {vectorvein-0.2.15 → vectorvein-0.2.17}/pyproject.toml +2 -2
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/__init__.py +33 -0
- vectorvein-0.2.17/src/vectorvein/chat_clients/ernie_client.py +15 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/settings/__init__.py +11 -1
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/defaults.py +8 -1
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/enums.py +4 -1
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/settings.py +2 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/README.md +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/__init__.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/api/__init__.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/api/client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/api/exceptions.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/api/models.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/anthropic_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/baichuan_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/base_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/deepseek_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/gemini_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/groq_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/local_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/minimax_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/mistral_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/moonshot_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/openai_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/openai_compatible_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/py.typed +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/qwen_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/stepfun_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/utils.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/xai_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/yi_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/zhipuai_client.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/py.typed +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/server/token_server.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/settings/py.typed +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/__init__.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/exception.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/llm_parameters.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/types/py.typed +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/utilities/media_processing.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/utilities/rate_limiter.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/utilities/retry.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/graph/edge.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/graph/node.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/graph/port.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/graph/workflow.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/__init__.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/audio_generation.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/control_flows.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/file_processing.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/image_generation.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/llms.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/media_editing.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/media_processing.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/output.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/relational_db.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/text_processing.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/tools.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/triggers.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/vector_db.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/video_generation.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/nodes/web_crawlers.py +0 -0
- {vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/workflow/utils/json_to_code.py +0 -0
@@ -14,11 +14,11 @@ dependencies = [
|
|
14
14
|
"google-auth>=2.35.0",
|
15
15
|
"pycryptodome>=3.21.0",
|
16
16
|
]
|
17
|
-
description = "VectorVein
|
17
|
+
description = "VectorVein Python SDK"
|
18
18
|
name = "vectorvein"
|
19
19
|
readme = "README.md"
|
20
20
|
requires-python = ">=3.10"
|
21
|
-
version = "0.2.
|
21
|
+
version = "0.2.17"
|
22
22
|
|
23
23
|
[project.license]
|
24
24
|
text = "MIT"
|
@@ -10,6 +10,7 @@ from .xai_client import XAIChatClient, AsyncXAIChatClient
|
|
10
10
|
from .groq_client import GroqChatClient, AsyncGroqChatClient
|
11
11
|
from .qwen_client import QwenChatClient, AsyncQwenChatClient
|
12
12
|
from .local_client import LocalChatClient, AsyncLocalChatClient
|
13
|
+
from .ernie_client import ErnieChatClient, AsyncErnieChatClient
|
13
14
|
from .gemini_client import GeminiChatClient, AsyncGeminiChatClient
|
14
15
|
from .openai_client import OpenAIChatClient, AsyncOpenAIChatClient
|
15
16
|
from .zhipuai_client import ZhiPuAIChatClient, AsyncZhiPuAIChatClient
|
@@ -49,6 +50,7 @@ BackendMap = {
|
|
49
50
|
BackendType.Baichuan: BaichuanChatClient,
|
50
51
|
BackendType.StepFun: StepFunChatClient,
|
51
52
|
BackendType.XAI: XAIChatClient,
|
53
|
+
BackendType.Ernie: ErnieChatClient,
|
52
54
|
},
|
53
55
|
"async": {
|
54
56
|
BackendType.Anthropic: AsyncAnthropicChatClient,
|
@@ -66,6 +68,7 @@ BackendMap = {
|
|
66
68
|
BackendType.Baichuan: AsyncBaichuanChatClient,
|
67
69
|
BackendType.StepFun: AsyncStepFunChatClient,
|
68
70
|
BackendType.XAI: AsyncXAIChatClient,
|
71
|
+
BackendType.Ernie: AsyncErnieChatClient,
|
69
72
|
},
|
70
73
|
}
|
71
74
|
|
@@ -295,6 +298,21 @@ def create_chat_client(
|
|
295
298
|
) -> XAIChatClient: ...
|
296
299
|
|
297
300
|
|
301
|
+
@overload
|
302
|
+
def create_chat_client(
|
303
|
+
backend: Literal[BackendType.Ernie],
|
304
|
+
model: str | None = None,
|
305
|
+
stream: bool = False,
|
306
|
+
temperature: float | None | NotGiven = NOT_GIVEN,
|
307
|
+
context_length_control: ContextLengthControlType = defs.CONTEXT_LENGTH_CONTROL,
|
308
|
+
random_endpoint: bool = True,
|
309
|
+
endpoint_id: str = "",
|
310
|
+
http_client: httpx.Client | None = None,
|
311
|
+
settings: "Settings | SettingsDict | None" = None, # Use default settings if not provided
|
312
|
+
**kwargs,
|
313
|
+
) -> ErnieChatClient: ...
|
314
|
+
|
315
|
+
|
298
316
|
@overload
|
299
317
|
def create_chat_client(
|
300
318
|
backend: BackendType,
|
@@ -566,6 +584,21 @@ def create_async_chat_client(
|
|
566
584
|
) -> AsyncXAIChatClient: ...
|
567
585
|
|
568
586
|
|
587
|
+
@overload
|
588
|
+
def create_async_chat_client(
|
589
|
+
backend: Literal[BackendType.Ernie],
|
590
|
+
model: str | None = None,
|
591
|
+
stream: bool = False,
|
592
|
+
temperature: float | None | NotGiven = NOT_GIVEN,
|
593
|
+
context_length_control: ContextLengthControlType = defs.CONTEXT_LENGTH_CONTROL,
|
594
|
+
random_endpoint: bool = True,
|
595
|
+
endpoint_id: str = "",
|
596
|
+
http_client: httpx.AsyncClient | None = None,
|
597
|
+
settings: "Settings | SettingsDict | None" = None, # Use default settings if not provided
|
598
|
+
**kwargs,
|
599
|
+
) -> AsyncErnieChatClient: ...
|
600
|
+
|
601
|
+
|
569
602
|
@overload
|
570
603
|
def create_async_chat_client(
|
571
604
|
backend: BackendType,
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# @Author: Bi Ying
|
2
|
+
# @Date: 2024-07-26 14:48:55
|
3
|
+
from ..types.enums import BackendType
|
4
|
+
from ..types.defaults import ERNIE_DEFAULT_MODEL
|
5
|
+
from .openai_compatible_client import OpenAICompatibleChatClient, AsyncOpenAICompatibleChatClient
|
6
|
+
|
7
|
+
|
8
|
+
class ErnieChatClient(OpenAICompatibleChatClient):
|
9
|
+
DEFAULT_MODEL = ERNIE_DEFAULT_MODEL
|
10
|
+
BACKEND_NAME = BackendType.Ernie
|
11
|
+
|
12
|
+
|
13
|
+
class AsyncErnieChatClient(AsyncOpenAICompatibleChatClient):
|
14
|
+
DEFAULT_MODEL = ERNIE_DEFAULT_MODEL
|
15
|
+
BACKEND_NAME = BackendType.Ernie
|
@@ -56,6 +56,7 @@ class Backends(BaseModel):
|
|
56
56
|
baichuan: BackendSettings = Field(default_factory=BackendSettings, description="Baichuan models settings.")
|
57
57
|
stepfun: BackendSettings = Field(default_factory=BackendSettings, description="StepFun models settings.")
|
58
58
|
xai: BackendSettings = Field(default_factory=BackendSettings, description="XAI models settings.")
|
59
|
+
ernie: BackendSettings = Field(default_factory=BackendSettings, description="Baidu Ernie models settings.")
|
59
60
|
|
60
61
|
|
61
62
|
class Settings(BaseModel):
|
@@ -95,6 +96,9 @@ class Settings(BaseModel):
|
|
95
96
|
)
|
96
97
|
stepfun: Optional[BackendSettings] = Field(default_factory=BackendSettings, description="StepFun models settings.")
|
97
98
|
xai: Optional[BackendSettings] = Field(default_factory=BackendSettings, description="XAI models settings.")
|
99
|
+
ernie: Optional[BackendSettings] = Field(
|
100
|
+
default_factory=BackendSettings, description="Baidu Ernie models settings."
|
101
|
+
)
|
98
102
|
|
99
103
|
def __init__(self, **data):
|
100
104
|
model_types = {
|
@@ -113,6 +117,7 @@ class Settings(BaseModel):
|
|
113
117
|
"baichuan": defs.BAICHUAN_MODELS,
|
114
118
|
"stepfun": defs.STEPFUN_MODELS,
|
115
119
|
"xai": defs.XAI_MODELS,
|
120
|
+
"ernie": defs.ERNIE_MODELS,
|
116
121
|
}
|
117
122
|
|
118
123
|
data = deepcopy(data)
|
@@ -152,7 +157,11 @@ class Settings(BaseModel):
|
|
152
157
|
|
153
158
|
super().__init__(**data)
|
154
159
|
|
155
|
-
def load(self,
|
160
|
+
def load(self, settings: SettingsDict | "Settings"):
|
161
|
+
if isinstance(settings, Settings):
|
162
|
+
settings_dict = settings.model_dump()
|
163
|
+
else:
|
164
|
+
settings_dict = settings
|
156
165
|
self.__init__(**settings_dict)
|
157
166
|
|
158
167
|
@classmethod
|
@@ -194,6 +203,7 @@ class Settings(BaseModel):
|
|
194
203
|
"baichuan",
|
195
204
|
"stepfun",
|
196
205
|
"xai",
|
206
|
+
"ernie",
|
197
207
|
}
|
198
208
|
)
|
199
209
|
else:
|
@@ -739,7 +739,14 @@ ERNIE_MODELS: Final[Dict[str, Dict[str, Any]]] = {
|
|
739
739
|
"id": "ernie-4.0-8k-latest",
|
740
740
|
"context_length": 5120,
|
741
741
|
"max_output_tokens": 2048,
|
742
|
-
"function_call_available":
|
742
|
+
"function_call_available": True,
|
743
|
+
"response_format_available": True,
|
744
|
+
},
|
745
|
+
"ernie-4.0-8k": {
|
746
|
+
"id": "ernie-4.0-8k",
|
747
|
+
"context_length": 5120,
|
748
|
+
"max_output_tokens": 2048,
|
749
|
+
"function_call_available": True,
|
743
750
|
"response_format_available": True,
|
744
751
|
},
|
745
752
|
"ernie-4.0-turbo-8k": {
|
@@ -29,7 +29,7 @@ class BackendType(str, Enum):
|
|
29
29
|
# DeepSeek
|
30
30
|
DeepSeek = "deepseek"
|
31
31
|
|
32
|
-
# Qwen
|
32
|
+
# Aliyun Qwen
|
33
33
|
Qwen = "qwen"
|
34
34
|
|
35
35
|
# Groq
|
@@ -53,6 +53,9 @@ class BackendType(str, Enum):
|
|
53
53
|
# XAI
|
54
54
|
XAI = "xai"
|
55
55
|
|
56
|
+
# Baidu Ernie
|
57
|
+
Ernie = "ernie"
|
58
|
+
|
56
59
|
def __repr__(self):
|
57
60
|
"""Get a string representation."""
|
58
61
|
return f'"{self.value}"'
|
@@ -99,6 +99,7 @@ class BackendsDict(TypedDict):
|
|
99
99
|
baichuan: NotRequired[BackendSettingsDict]
|
100
100
|
stepfun: NotRequired[BackendSettingsDict]
|
101
101
|
xai: NotRequired[BackendSettingsDict]
|
102
|
+
ernie: NotRequired[BackendSettingsDict]
|
102
103
|
|
103
104
|
|
104
105
|
class SettingsV1Dict(TypedDict):
|
@@ -124,6 +125,7 @@ class SettingsV1Dict(TypedDict):
|
|
124
125
|
baichuan: NotRequired[BackendSettingsDict]
|
125
126
|
stepfun: NotRequired[BackendSettingsDict]
|
126
127
|
xai: NotRequired[BackendSettingsDict]
|
128
|
+
ernie: NotRequired[BackendSettingsDict]
|
127
129
|
|
128
130
|
|
129
131
|
class SettingsV2Dict(TypedDict):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vectorvein-0.2.15 → vectorvein-0.2.17}/src/vectorvein/chat_clients/openai_compatible_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|