vectorvein 0.2.51__tar.gz → 0.2.53__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 (66) hide show
  1. {vectorvein-0.2.51 → vectorvein-0.2.53}/PKG-INFO +1 -1
  2. {vectorvein-0.2.51 → vectorvein-0.2.53}/pyproject.toml +1 -1
  3. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/openai_compatible_client.py +0 -15
  4. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/utils.py +17 -18
  5. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/utils/check.py +4 -2
  6. {vectorvein-0.2.51 → vectorvein-0.2.53}/README.md +0 -0
  7. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/__init__.py +0 -0
  8. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/api/__init__.py +0 -0
  9. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/api/client.py +0 -0
  10. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/api/exceptions.py +0 -0
  11. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/api/models.py +0 -0
  12. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/__init__.py +0 -0
  13. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/anthropic_client.py +0 -0
  14. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/baichuan_client.py +0 -0
  15. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/base_client.py +0 -0
  16. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/deepseek_client.py +0 -0
  17. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/ernie_client.py +0 -0
  18. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/gemini_client.py +0 -0
  19. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/groq_client.py +0 -0
  20. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/local_client.py +0 -0
  21. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/minimax_client.py +0 -0
  22. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/mistral_client.py +0 -0
  23. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/moonshot_client.py +0 -0
  24. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/openai_client.py +0 -0
  25. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/py.typed +0 -0
  26. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/qwen_client.py +0 -0
  27. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/stepfun_client.py +0 -0
  28. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/xai_client.py +0 -0
  29. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/yi_client.py +0 -0
  30. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/chat_clients/zhipuai_client.py +0 -0
  31. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/py.typed +0 -0
  32. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/server/token_server.py +0 -0
  33. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/settings/__init__.py +0 -0
  34. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/settings/py.typed +0 -0
  35. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/__init__.py +0 -0
  36. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/defaults.py +0 -0
  37. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/enums.py +0 -0
  38. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/exception.py +0 -0
  39. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/llm_parameters.py +0 -0
  40. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/py.typed +0 -0
  41. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/types/settings.py +0 -0
  42. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/utilities/media_processing.py +0 -0
  43. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/utilities/rate_limiter.py +0 -0
  44. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/utilities/retry.py +0 -0
  45. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/graph/edge.py +0 -0
  46. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/graph/node.py +0 -0
  47. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/graph/port.py +0 -0
  48. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/graph/workflow.py +0 -0
  49. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/__init__.py +0 -0
  50. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/audio_generation.py +0 -0
  51. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/control_flows.py +0 -0
  52. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/file_processing.py +0 -0
  53. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/image_generation.py +0 -0
  54. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/llms.py +0 -0
  55. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/media_editing.py +0 -0
  56. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/media_processing.py +0 -0
  57. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/output.py +0 -0
  58. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/relational_db.py +0 -0
  59. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/text_processing.py +0 -0
  60. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/tools.py +0 -0
  61. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/triggers.py +0 -0
  62. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/vector_db.py +0 -0
  63. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/video_generation.py +0 -0
  64. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/nodes/web_crawlers.py +0 -0
  65. {vectorvein-0.2.51 → vectorvein-0.2.53}/src/vectorvein/workflow/utils/json_to_code.py +0 -0
  66. {vectorvein-0.2.51 → vectorvein-0.2.53}/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.51
3
+ Version: 0.2.53
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.51"
20
+ version = "0.2.53"
21
21
 
22
22
  [project.license]
23
23
  text = "MIT"
@@ -331,11 +331,6 @@ class OpenAICompatibleChatClient(BaseChatClient):
331
331
  else:
332
332
  max_tokens = self.model_setting.context_length - token_counts - 64
333
333
 
334
- if response_format and self.model_setting.response_format_available:
335
- self.response_format = {"response_format": response_format}
336
- else:
337
- self.response_format = {}
338
-
339
334
  self._acquire_rate_limit(self.endpoint, self.model, messages)
340
335
 
341
336
  if self.stream:
@@ -797,16 +792,6 @@ class AsyncOpenAICompatibleChatClient(BaseAsyncChatClient):
797
792
  else:
798
793
  tools_params = {}
799
794
 
800
- if response_format and self.model_setting.response_format_available:
801
- self.response_format = {"response_format": response_format}
802
- else:
803
- self.response_format = {}
804
-
805
- if stream_options:
806
- _stream_options_params = {"stream_options": stream_options}
807
- else:
808
- _stream_options_params = {}
809
-
810
795
  if max_tokens is None:
811
796
  max_output_tokens = self.model_setting.max_output_tokens
812
797
  token_counts = get_message_token_counts(messages=messages, tools=tools, model=self.model)
@@ -55,30 +55,29 @@ class ToolCallContentProcessor:
55
55
  return {}
56
56
  tool_calls_matches = re.findall(self.tool_use_re, self.content)
57
57
  if tool_calls_matches:
58
- tool_call_data = {}
59
- for match in tool_calls_matches:
58
+ tool_calls = []
59
+ for idx, match in enumerate(tool_calls_matches):
60
60
  try:
61
61
  tool_call_data = json.loads(match)
62
+ arguments = json.dumps(tool_call_data["arguments"], ensure_ascii=False)
63
+ tool_calls.append(
64
+ {
65
+ "index": idx,
66
+ "id": f"call_{idx}",
67
+ "function": {
68
+ "arguments": arguments,
69
+ "name": tool_call_data["name"],
70
+ },
71
+ "type": "function",
72
+ }
73
+ )
62
74
  except json.JSONDecodeError:
63
75
  print(f"Failed to parse tool call data:\nContent: {self.content}\nMatch: {match}")
64
76
 
65
- if not tool_call_data:
77
+ if not tool_calls:
66
78
  return {}
67
79
 
68
- arguments = json.dumps(tool_call_data["arguments"], ensure_ascii=False)
69
- return {
70
- "tool_calls": [
71
- {
72
- "index": 0,
73
- "id": "call_0",
74
- "function": {
75
- "arguments": arguments,
76
- "name": tool_call_data["name"],
77
- },
78
- "type": "function",
79
- }
80
- ]
81
- }
80
+ return {"tool_calls": tool_calls}
82
81
  else:
83
82
  return {}
84
83
 
@@ -127,7 +126,7 @@ def get_token_counts(text: str | dict, model: str = "", use_token_server_first:
127
126
  text = str(text)
128
127
  if model == "gpt-3.5-turbo":
129
128
  return len(get_gpt_35_encoding().encode(text))
130
- elif model.startswith(("gpt-4o", "o1-")):
129
+ elif model.startswith(("gpt-4o", "o1-", "o3-")):
131
130
  return len(get_gpt_4o_encoding().encode(text))
132
131
  elif model.startswith(("abab", "MiniMax")):
133
132
  backend_setting = settings.get_backend(BackendType.MiniMax).models[model]
@@ -139,10 +139,12 @@ def check_ui(workflow: "Workflow") -> UIWarning:
139
139
  # 检查是否为输出节点
140
140
  if hasattr(node, "category") and node.category == "outputs":
141
141
  warnings["has_output_nodes"] = True
142
+ continue # 输出节点不检查连接覆盖问题
142
143
 
143
144
  # 检查节点的输入端口
144
- for port_name in node.ports.keys() if hasattr(node, "ports") else []:
145
- port = node.ports.get(port_name)
145
+ ports = node.ports if hasattr(node, "ports") else {}
146
+ for port_name in ports.keys():
147
+ port = ports.get(port_name)
146
148
  # 确保是输入端口且设置为显示
147
149
  if hasattr(port, "show") and getattr(port, "show", False) and isinstance(port, InputPort):
148
150
  has_shown_input_ports = True
File without changes