opengradient 0.3.13__tar.gz → 0.3.14__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.
- {opengradient-0.3.13 → opengradient-0.3.14}/PKG-INFO +1 -1
- {opengradient-0.3.13 → opengradient-0.3.14}/pyproject.toml +1 -1
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/__init__.py +1 -1
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/llm/chat.py +23 -8
- {opengradient-0.3.13 → opengradient-0.3.14}/.gitignore +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/LICENSE +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/README.md +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/abi/inference.abi +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/account.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/cli.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/client.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/defaults.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/exceptions.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/llm/__init__.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/__init__.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/infer.proto +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/infer_pb2.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/infer_pb2_grpc.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/types.py +0 -0
- {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: opengradient
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.14
|
|
4
4
|
Summary: Python SDK for OpenGradient decentralized model management & inference services
|
|
5
5
|
Project-URL: Homepage, https://opengradient.ai
|
|
6
6
|
Author-email: OpenGradient <oliver@opengradient.ai>
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opengradient"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.14"
|
|
8
8
|
description = "Python SDK for OpenGradient decentralized model management & inference services"
|
|
9
9
|
authors = [{name = "OpenGradient", email = "oliver@opengradient.ai"}]
|
|
10
10
|
license = {file = "LICENSE"}
|
|
@@ -10,6 +10,9 @@ from langchain.schema import (
|
|
|
10
10
|
ChatResult,
|
|
11
11
|
ChatGeneration,
|
|
12
12
|
)
|
|
13
|
+
from langchain_core.messages.tool import (
|
|
14
|
+
ToolMessage
|
|
15
|
+
)
|
|
13
16
|
from langchain_core.callbacks.manager import CallbackManagerForLLMRun
|
|
14
17
|
from langchain_core.tools import BaseTool
|
|
15
18
|
from langchain_core.messages import ToolCall
|
|
@@ -70,24 +73,36 @@ class OpenGradientChatModel(BaseChatModel):
|
|
|
70
73
|
run_manager: Optional[CallbackManagerForLLMRun] = None,
|
|
71
74
|
**kwargs: Any,
|
|
72
75
|
) -> ChatResult:
|
|
73
|
-
|
|
76
|
+
|
|
77
|
+
sdk_messages = []
|
|
74
78
|
for message in messages:
|
|
75
79
|
if isinstance(message, SystemMessage):
|
|
76
|
-
|
|
80
|
+
sdk_messages.append({"role": "system", "content": message.content})
|
|
77
81
|
elif isinstance(message, HumanMessage):
|
|
78
|
-
|
|
82
|
+
sdk_messages.append({"role": "user", "content": message.content})
|
|
79
83
|
elif isinstance(message, AIMessage):
|
|
80
|
-
|
|
84
|
+
sdk_messages.append({
|
|
85
|
+
"role": "assistant",
|
|
86
|
+
"content": message.content,
|
|
87
|
+
"tool_calls": [{
|
|
88
|
+
"id": call["id"],
|
|
89
|
+
"name": call["name"],
|
|
90
|
+
"arguments": json.dumps(call["args"])
|
|
91
|
+
} for call in message.tool_calls]})
|
|
92
|
+
elif isinstance(message, ToolMessage):
|
|
93
|
+
sdk_messages.append({"role": "tool", "content": message.content, "tool_call_id": message.tool_call_id})
|
|
94
|
+
else:
|
|
95
|
+
raise ValueError(f"Unexpected message type: {message}")
|
|
81
96
|
|
|
82
|
-
|
|
97
|
+
_, finish_reason, chat_response = self.client.llm_chat(
|
|
83
98
|
model_cid=self.model_cid,
|
|
84
|
-
messages=
|
|
99
|
+
messages=sdk_messages,
|
|
85
100
|
stop_sequence=stop,
|
|
86
101
|
max_tokens=self.max_tokens,
|
|
87
102
|
tools=self.tools
|
|
88
103
|
)
|
|
89
104
|
|
|
90
|
-
if "tool_calls" in chat_response:
|
|
105
|
+
if "tool_calls" in chat_response and chat_response["tool_calls"]:
|
|
91
106
|
tool_calls = []
|
|
92
107
|
for tool_call in chat_response["tool_calls"]:
|
|
93
108
|
tool_calls.append(
|
|
@@ -104,7 +119,7 @@ class OpenGradientChatModel(BaseChatModel):
|
|
|
104
119
|
)
|
|
105
120
|
else:
|
|
106
121
|
message = AIMessage(content=chat_response["content"])
|
|
107
|
-
|
|
122
|
+
|
|
108
123
|
return ChatResult(
|
|
109
124
|
generations=[ChatGeneration(
|
|
110
125
|
message=message,
|
|
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
|