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.
Files changed (20) hide show
  1. {opengradient-0.3.13 → opengradient-0.3.14}/PKG-INFO +1 -1
  2. {opengradient-0.3.13 → opengradient-0.3.14}/pyproject.toml +1 -1
  3. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/__init__.py +1 -1
  4. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/llm/chat.py +23 -8
  5. {opengradient-0.3.13 → opengradient-0.3.14}/.gitignore +0 -0
  6. {opengradient-0.3.13 → opengradient-0.3.14}/LICENSE +0 -0
  7. {opengradient-0.3.13 → opengradient-0.3.14}/README.md +0 -0
  8. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/abi/inference.abi +0 -0
  9. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/account.py +0 -0
  10. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/cli.py +0 -0
  11. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/client.py +0 -0
  12. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/defaults.py +0 -0
  13. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/exceptions.py +0 -0
  14. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/llm/__init__.py +0 -0
  15. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/__init__.py +0 -0
  16. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/infer.proto +0 -0
  17. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/infer_pb2.py +0 -0
  18. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/proto/infer_pb2_grpc.py +0 -0
  19. {opengradient-0.3.13 → opengradient-0.3.14}/src/opengradient/types.py +0 -0
  20. {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.13
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.13"
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"}
@@ -5,7 +5,7 @@ from .defaults import DEFAULT_INFERENCE_CONTRACT_ADDRESS, DEFAULT_RPC_URL
5
5
  from .types import InferenceMode, LLM
6
6
  from . import llm
7
7
 
8
- __version__ = "0.3.13"
8
+ __version__ = "0.3.14"
9
9
 
10
10
  _client = None
11
11
 
@@ -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
- chat_messages = []
76
+
77
+ sdk_messages = []
74
78
  for message in messages:
75
79
  if isinstance(message, SystemMessage):
76
- chat_messages.append({"role": "system", "content": message.content})
80
+ sdk_messages.append({"role": "system", "content": message.content})
77
81
  elif isinstance(message, HumanMessage):
78
- chat_messages.append({"role": "user", "content": message.content})
82
+ sdk_messages.append({"role": "user", "content": message.content})
79
83
  elif isinstance(message, AIMessage):
80
- chat_messages.append({"role": "assistant", "content": message.content})
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
- tx_hash, finish_reason, chat_response = self.client.llm_chat(
97
+ _, finish_reason, chat_response = self.client.llm_chat(
83
98
  model_cid=self.model_cid,
84
- messages=chat_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