vectorvein 0.2.30__tar.gz → 0.2.32__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.30 → vectorvein-0.2.32}/PKG-INFO +1 -1
- {vectorvein-0.2.30 → vectorvein-0.2.32}/pyproject.toml +1 -1
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/utils.py +25 -1
- {vectorvein-0.2.30 → vectorvein-0.2.32}/README.md +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/__init__.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/api/__init__.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/api/client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/api/exceptions.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/api/models.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/__init__.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/anthropic_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/baichuan_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/base_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/deepseek_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/ernie_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/gemini_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/groq_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/local_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/minimax_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/mistral_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/moonshot_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/openai_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/openai_compatible_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/py.typed +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/qwen_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/stepfun_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/xai_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/yi_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/chat_clients/zhipuai_client.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/py.typed +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/server/token_server.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/settings/__init__.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/settings/py.typed +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/__init__.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/defaults.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/enums.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/exception.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/llm_parameters.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/py.typed +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/types/settings.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/utilities/media_processing.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/utilities/rate_limiter.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/utilities/retry.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/graph/edge.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/graph/node.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/graph/port.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/graph/workflow.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/__init__.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/audio_generation.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/control_flows.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/file_processing.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/image_generation.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/llms.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/media_editing.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/media_processing.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/output.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/relational_db.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/text_processing.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/tools.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/triggers.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/vector_db.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/video_generation.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/nodes/web_crawlers.py +0 -0
- {vectorvein-0.2.30 → vectorvein-0.2.32}/src/vectorvein/workflow/utils/json_to_code.py +0 -0
@@ -559,6 +559,7 @@ def format_workflow_messages(message: dict, content: str, backend: BackendType):
|
|
559
559
|
def transform_from_openai_message(message: ChatCompletionMessageParam, backend: BackendType):
|
560
560
|
role = message.get("role", "user")
|
561
561
|
content = message.get("content", "")
|
562
|
+
tool_calls = message.get("tool_calls", [])
|
562
563
|
|
563
564
|
if backend == BackendType.Anthropic:
|
564
565
|
if role == "tool":
|
@@ -582,9 +583,32 @@ def transform_from_openai_message(message: ChatCompletionMessageParam, backend:
|
|
582
583
|
formatted_content.append(format_image_message(item["image_url"]["url"], backend))
|
583
584
|
else:
|
584
585
|
formatted_content.append(item)
|
586
|
+
if tool_calls:
|
587
|
+
for tool_call in tool_calls:
|
588
|
+
formatted_content.append(
|
589
|
+
{
|
590
|
+
"type": "tool_use",
|
591
|
+
"id": tool_call["id"],
|
592
|
+
"name": tool_call["function"]["name"],
|
593
|
+
"input": json.loads(tool_call["function"]["arguments"]),
|
594
|
+
}
|
595
|
+
)
|
585
596
|
return {"role": role, "content": formatted_content}
|
586
597
|
else:
|
587
|
-
|
598
|
+
if tool_calls:
|
599
|
+
formatted_content = [{"type": "text", "text": content}]
|
600
|
+
for tool_call in tool_calls:
|
601
|
+
formatted_content.append(
|
602
|
+
{
|
603
|
+
"type": "tool_use",
|
604
|
+
"id": tool_call["id"],
|
605
|
+
"name": tool_call["function"]["name"],
|
606
|
+
"input": json.loads(tool_call["function"]["arguments"]),
|
607
|
+
}
|
608
|
+
)
|
609
|
+
return {"role": role, "content": formatted_content}
|
610
|
+
else:
|
611
|
+
return {"role": role, "content": content}
|
588
612
|
else:
|
589
613
|
return message # 对于其他后端,保持原样
|
590
614
|
|
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
|
{vectorvein-0.2.30 → vectorvein-0.2.32}/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
|
File without changes
|
File without changes
|
File without changes
|