vectorvein 0.2.89__tar.gz → 0.2.91__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.
Files changed (67) hide show
  1. {vectorvein-0.2.89 → vectorvein-0.2.91}/PKG-INFO +1 -1
  2. {vectorvein-0.2.89 → vectorvein-0.2.91}/pyproject.toml +1 -1
  3. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/utils.py +12 -1
  4. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/__init__.py +4 -0
  5. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/llm_parameters.py +25 -8
  6. {vectorvein-0.2.89 → vectorvein-0.2.91}/README.md +0 -0
  7. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/__init__.py +0 -0
  8. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/api/__init__.py +0 -0
  9. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/api/client.py +0 -0
  10. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/api/exceptions.py +0 -0
  11. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/api/models.py +0 -0
  12. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/__init__.py +0 -0
  13. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/anthropic_client.py +0 -0
  14. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/baichuan_client.py +0 -0
  15. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/base_client.py +0 -0
  16. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/deepseek_client.py +0 -0
  17. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/ernie_client.py +0 -0
  18. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/gemini_client.py +0 -0
  19. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/groq_client.py +0 -0
  20. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/local_client.py +0 -0
  21. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/minimax_client.py +0 -0
  22. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/mistral_client.py +0 -0
  23. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/moonshot_client.py +0 -0
  24. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/openai_client.py +0 -0
  25. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/openai_compatible_client.py +0 -0
  26. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/py.typed +0 -0
  27. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/qwen_client.py +0 -0
  28. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/stepfun_client.py +0 -0
  29. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/xai_client.py +0 -0
  30. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/yi_client.py +0 -0
  31. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/chat_clients/zhipuai_client.py +0 -0
  32. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/py.typed +0 -0
  33. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/server/token_server.py +0 -0
  34. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/settings/__init__.py +0 -0
  35. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/settings/py.typed +0 -0
  36. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/defaults.py +0 -0
  37. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/enums.py +0 -0
  38. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/exception.py +0 -0
  39. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/py.typed +0 -0
  40. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/types/settings.py +0 -0
  41. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/utilities/media_processing.py +0 -0
  42. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/utilities/rate_limiter.py +0 -0
  43. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/utilities/retry.py +0 -0
  44. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/graph/edge.py +0 -0
  45. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/graph/node.py +0 -0
  46. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/graph/port.py +0 -0
  47. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/graph/workflow.py +0 -0
  48. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/__init__.py +0 -0
  49. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/audio_generation.py +0 -0
  50. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/control_flows.py +0 -0
  51. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/file_processing.py +0 -0
  52. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/image_generation.py +0 -0
  53. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/llms.py +0 -0
  54. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/media_editing.py +0 -0
  55. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/media_processing.py +0 -0
  56. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/output.py +0 -0
  57. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/relational_db.py +0 -0
  58. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/text_processing.py +0 -0
  59. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/tools.py +0 -0
  60. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/triggers.py +0 -0
  61. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/vector_db.py +0 -0
  62. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/video_generation.py +0 -0
  63. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/nodes/web_crawlers.py +0 -0
  64. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/utils/analyse.py +0 -0
  65. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/utils/check.py +0 -0
  66. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/utils/json_to_code.py +0 -0
  67. {vectorvein-0.2.89 → vectorvein-0.2.91}/src/vectorvein/workflow/utils/layout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vectorvein
3
- Version: 0.2.89
3
+ Version: 0.2.91
4
4
  Summary: VectorVein Python SDK
5
5
  Author-Email: Anderson <andersonby@163.com>
6
6
  License: MIT
@@ -17,7 +17,7 @@ description = "VectorVein Python SDK"
17
17
  name = "vectorvein"
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.10"
20
- version = "0.2.89"
20
+ version = "0.2.91"
21
21
 
22
22
  [project.license]
23
23
  text = "MIT"
@@ -19,6 +19,8 @@ from ..types.llm_parameters import (
19
19
  NOT_GIVEN,
20
20
  ToolParam,
21
21
  VectorVeinMessage,
22
+ VectorVeinTextMessage,
23
+ VectorVeinWorkflowMessage,
22
24
  )
23
25
 
24
26
 
@@ -436,7 +438,7 @@ def format_image_message(image: str, backend: BackendType = BackendType.OpenAI,
436
438
  return {"type": "image_url", "image_url": {"url": image}}
437
439
 
438
440
 
439
- def format_workflow_messages(message: VectorVeinMessage, content: str, backend: BackendType):
441
+ def format_workflow_messages(message: VectorVeinWorkflowMessage, content: str, backend: BackendType):
440
442
  formatted_messages = []
441
443
 
442
444
  # 工具调用消息
@@ -654,13 +656,22 @@ def format_messages(
654
656
  for message in messages:
655
657
  if is_vectorvein_message(message):
656
658
  message = cast(VectorVeinMessage, message)
659
+ match message["content_type"]:
660
+ case "TXT":
661
+ message = cast(VectorVeinTextMessage, message)
662
+ case "WKF":
663
+ message = cast(VectorVeinWorkflowMessage, message)
664
+ case _:
665
+ raise ValueError(f"Unsupported message type: {message['content_type']}")
657
666
  # 处理 VectorVein 格式的消息
658
667
  content = message["content"]["text"]
659
668
  if message["content_type"] == "TXT":
669
+ message = cast(VectorVeinTextMessage, message)
660
670
  role = "user" if message["author_type"] == "U" else "assistant"
661
671
  formatted_message = format_text_message(content, role, message.get("attachments", []), backend, native_multimodal, process_image)
662
672
  formatted_messages.append(formatted_message)
663
673
  elif message["content_type"] == "WKF" and message["status"] in ("S", "R"):
674
+ message = cast(VectorVeinWorkflowMessage, message)
664
675
  formatted_messages.extend(format_workflow_messages(message, content, backend))
665
676
  else:
666
677
  # 处理 OpenAI 格式的消息
@@ -56,6 +56,8 @@ from .llm_parameters import (
56
56
  OPENAI_NOT_GIVEN,
57
57
  ANTHROPIC_NOT_GIVEN,
58
58
  VectorVeinMessage,
59
+ VectorVeinTextMessage,
60
+ VectorVeinWorkflowMessage,
59
61
  )
60
62
  from .settings import (
61
63
  RedisConfigDict,
@@ -129,6 +131,8 @@ __all__ = [
129
131
  "OPENAI_NOT_GIVEN",
130
132
  "ANTHROPIC_NOT_GIVEN",
131
133
  "VectorVeinMessage",
134
+ "VectorVeinTextMessage",
135
+ "VectorVeinWorkflowMessage",
132
136
  "NotGiven",
133
137
  "NOT_GIVEN",
134
138
  "OpenAIToolParam",
@@ -1,7 +1,7 @@
1
1
  # @Author: Bi Ying
2
2
  # @Date: 2024-07-26 23:48:04
3
3
  from typing import List, Dict, Optional, Union, Iterable, Literal
4
- from typing_extensions import TypedDict
4
+ from typing_extensions import TypedDict, NotRequired
5
5
 
6
6
  import httpx
7
7
  from pydantic import BaseModel, Field
@@ -27,16 +27,31 @@ from . import defaults as defs
27
27
  from .settings import EndpointOptionDict
28
28
 
29
29
 
30
- class VectorVeinMessage(TypedDict):
31
- mid: str
32
- author_type: str # "U" for user, "A" for assistant
33
- content_type: str # "TXT" for text, "WKF" for workflow
30
+ class VectorVeinTextMessage(TypedDict):
31
+ mid: NotRequired[str]
32
+ author_type: Literal["U", "A"] # "U" for user, "A" for assistant
33
+ content_type: Literal["TXT"]
34
+ status: NotRequired[str]
35
+ create_time: NotRequired[int]
36
+ update_time: NotRequired[int]
37
+ metadata: NotRequired[dict]
38
+ content: Dict[str, str]
39
+ attachments: NotRequired[List[str]]
40
+
41
+
42
+ class VectorVeinWorkflowMessage(TypedDict):
43
+ mid: NotRequired[str]
44
+ author_type: Literal["U", "A"] # "U" for user, "A" for assistant
45
+ content_type: Literal["WKF"]
34
46
  status: str
35
- create_time: int
36
- update_time: int
47
+ create_time: NotRequired[int]
48
+ update_time: NotRequired[int]
37
49
  metadata: dict
38
50
  content: Dict[str, str]
39
- attachments: List[str]
51
+ attachments: NotRequired[List[str]]
52
+
53
+
54
+ VectorVeinMessage = Union[VectorVeinTextMessage, VectorVeinWorkflowMessage]
40
55
 
41
56
 
42
57
  class EndpointSetting(BaseModel):
@@ -229,4 +244,6 @@ __all__ = [
229
244
  "ThinkingConfigParam",
230
245
  "ThinkingConfigEnabledParam",
231
246
  "VectorVeinMessage",
247
+ "VectorVeinTextMessage",
248
+ "VectorVeinWorkflowMessage",
232
249
  ]
File without changes